List of usage examples for org.joda.time Seconds secondsBetween
public static Seconds secondsBetween(ReadablePartial start, ReadablePartial end)
Seconds
representing the number of whole seconds between the two specified partial datetimes. From source file:org.traccar.protocol.SmokeyProtocolDecoder.java
License:Apache License
private static void sendResponse(Channel channel, SocketAddress remoteAddress, ChannelBuffer id, int index, int report) { if (channel != null) { ChannelBuffer response = ChannelBuffers.dynamicBuffer(); response.writeBytes("SM".getBytes(StandardCharsets.US_ASCII)); response.writeByte(3); // protocol version response.writeByte(MSG_DATE_RECORD_ACK); response.writeBytes(id);//w w w .j a va 2 s . co m response.writeInt(Seconds.secondsBetween(new DateTime(2000, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(DateTimeZone.UTC)).getSeconds()); response.writeByte(index); response.writeByte(report - 0x200); short checksum = (short) 0xF5A0; for (int i = 0; i < response.readableBytes(); i += 2) { checksum ^= ChannelBuffers.swapShort(response.getShort(i)); } response.writeShort(checksum); channel.write(response, remoteAddress); } }
From source file:playground.johannes.gsv.synPop.invermo.Date2TimeTask.java
License:Open Source License
@Override public void apply(ProxyPlan plan) { LocalDateTime reference = null; for (ProxyObject leg : plan.getLegs()) { String start = leg.getAttribute(CommonKeys.LEG_START_TIME); if (start != null) { if (reference == null) { reference = getReference(start); }/*from w ww . j a va2 s.c o m*/ LocalDateTime startDate = SplitPlanTask.formatter.parseLocalDateTime(start); Seconds secs = Seconds.secondsBetween(reference, startDate); leg.setAttribute(CommonKeys.LEG_START_TIME, String.valueOf(secs.getSeconds())); if (!leg.getAttributes().containsKey(MIDKeys.PERSON_MONTH)) { setPlanDate(startDate, plan); } } String end = leg.getAttribute(CommonKeys.LEG_END_TIME); if (end != null) { if (reference == null) { reference = getReference(end); } LocalDateTime endDate = SplitPlanTask.formatter.parseLocalDateTime(end); Seconds secs = Seconds.secondsBetween(reference, endDate); leg.setAttribute(CommonKeys.LEG_END_TIME, String.valueOf(secs.getSeconds())); if (!leg.getAttributes().containsKey(MIDKeys.PERSON_MONTH)) { setPlanDate(endDate, plan); } } } }
From source file:projectresurrection.Eve.java
public static void main(String args[]) { init();/*from ww w . ja va 2 s . c om*/ listener = new Listener(); voice = new VoiceSynthesis(); clock = new Clock(Clock.BRAIN, Clock.UPDATE, (String) preferences.get("time zone")); gui = new GUI(GUI.DEFAULT); gui.start(GUI.DEFAULT); while (true) { if (!commands.isEmpty()) { String command = commands.poll(); prevCommands.add(command); switch (command) { case "what is the current weather": Clock.addCommand("kill"); List currentWeather = Weather.getCurrent(); sb = "The Current Tempurature is " + currentWeather.get(1) + " degrees fahrenheit and " + ((currentWeather.get(2).equals("Thunderstorm In Vicinity")) ? "there is a " : "is ") + currentWeather.get(2); if (!currentWeather.get(3).equals("0")) { sb += ", with wind traveling at " + currentWeather.get(3) + " miles per hour "; switch ((String) currentWeather.get(5)) { case "N": sb += "North"; break; case "NNE": sb += "North North East"; break; case "NE": sb += "North East"; break; case "ENE": sb += "East North East"; break; case "E": sb += "East"; break; case "ESE": sb += "East South East"; break; case "SE": sb += "South East"; break; case "SSE": sb += "South South East"; break; case "S": sb += "South"; break; case "SSW": sb += "South South West"; break; case "SW": sb += "South West"; break; case "WSW": sb += "West South West"; break; case "W": sb += "West"; break; case "WNW": sb += "West North West"; break; case "NW": sb += "North West"; break; case "NNW": sb += "North North West"; break; } } voice.say(sb); break; case "what time is it": date = new DateTime(clock.getCurrent()); voice.say( "It is " + date.getHourOfDay() % 12 + ":" + ((date.getMinuteOfHour() < 10) ? "oh " : "") + date.getMinuteOfHour() + ((date.getHourOfDay() > 12) ? " P.M." : " A.M.")); break; case "what is the date": date = new DateTime(clock.getCurrent()); sb = "It is the "; switch (date.getDayOfMonth()) { case 1: sb += "first"; break; case 2: sb += "second"; break; case 3: sb += "third"; break; case 4: sb += "fourth"; break; case 5: sb += "fifth"; break; case 6: sb += "sixth"; break; case 7: sb += "seventh"; break; case 8: sb += "eighth"; break; case 9: sb += "ninth"; break; case 10: sb += "tenth"; break; case 11: sb += "eleventh"; break; case 12: sb += "twelth"; break; case 13: sb += "thirteenth"; break; case 14: sb += "fourteenth"; break; case 15: sb += "fifteenth"; break; case 16: sb += "sixteenth"; break; case 17: sb += "seventeenth"; break; case 18: sb += "eighteenth"; break; case 19: sb += "nineteenth"; break; case 20: sb += "twentieth"; break; case 21: sb += "twenty-first"; break; case 22: sb += "twenty-second"; break; case 23: sb += "twenty-third"; break; case 24: sb += "twenty-fourth"; break; case 25: sb += "twenty-fifth"; break; case 26: sb += "twenty-sixth"; break; case 27: sb += "twenty-seventh"; break; case 28: sb += "twenty-eighth"; break; case 29: sb += "twenty-ninth"; break; case 30: sb += "thirtieth"; break; case 31: sb += "thirty-first"; break; } sb += " of "; switch (date.getMonthOfYear()) { case 1: sb += "January"; break; case 2: sb += "Feburary"; break; case 3: sb += "March"; break; case 4: sb += "April"; break; case 5: sb += "May"; break; case 6: sb += "June"; break; case 7: sb += "July"; break; case 8: sb += "August"; break; case 9: sb += "September"; break; case 10: sb += "October"; break; case 11: sb += "November"; break; case 12: sb += "December"; break; } sb += ", " + date.getYear(); voice.say(sb); break; case "what day is it": date = new DateTime(clock.getCurrent()); sb = "Today is "; switch (date.getDayOfWeek()) { case (1): sb += "Mondaay"; break; case (2): sb += "Tuesdaay"; break; case (3): sb += "Wednesdaay"; break; case (4): sb += "Thursdaay"; break; case (5): sb += "Fridaay"; break; case (6): sb += "Saturdaay"; break; case (7): sb += "Sundaay"; break; } voice.say(sb); break; case "create a reminder": break; case "how old are you": sb = "I am "; DateTime current = clock.getCurrent(); Period diff = new Period(birth, current); int days = Days.daysBetween(birth, current).getDays(); int hours = Hours.hoursBetween(birth, current).getHours() % 24; int minutes = Minutes.minutesBetween(birth, current).getMinutes() % 60; int seconds = Seconds.secondsBetween(birth, current).getSeconds() % 60; switch (days) { case 0: sb += ""; break; case 1: if (hours == 0 && minutes == 0 && seconds == 0) { sb += days + " day old."; } else { sb += days + " day, "; } break; default: if (hours == 0 && minutes == 0 && seconds == 0) { sb += days + " days old."; } else { sb += days + " days, "; } break; } switch (hours) { case 0: sb += ""; break; case 1: if (minutes == 0 && seconds == 0) { sb += "and " + hours + " hour old."; } else { sb += hours + " hour, "; break; } break; default: if (minutes == 0 && seconds == 0) { sb += "and " + hours + " hours old."; } else { sb += hours + " hours, "; } break; } switch (minutes) { case 0: sb += ""; break; case 1: if (seconds == 0) { sb += "and " + minutes + " minute old."; } else { sb += minutes + " minute, "; } break; default: if (seconds == 0) { sb += "and " + minutes + " minutes old."; } else { sb += minutes + " minutes, "; } break; } switch (seconds) { case 0: sb += ""; break; case 1: sb += "and " + seconds + " second old."; default: sb += "and " + seconds + " seconds old."; break; } voice.say(sb); break; case "change preferences": updatePref(); break; case "": voice.say("Lee dul lee dul lee dul leeee"); break; case "repeat": voice.repeatSlow(); break; default: voice.say(command); break; } } else { try { Thread.sleep(1000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } }
From source file:ro.nextreports.server.api.ReportWebService.java
License:Apache License
/** * Run a report with parameters.//www .ja va2 s .c om * Path is relative to nextserver root ('/nextServer'). Ex: '/reports/test' <=> '/nextServer/reports/test' * * @param runReportMetaData runReportMetaData * @return documentUrl */ @POST @Path("runReport") public String runReport(RunReportMetaData runReportMetaData) { if (LOG.isDebugEnabled()) { LOG.debug("Run report web service"); LOG.debug("reportId = " + runReportMetaData.getReportId()); LOG.debug("reportFormat = " + runReportMetaData.getFormat()); LOG.debug( "parametersValues = " + ReportUtil.getDebugParameters(runReportMetaData.getParametersValues())); } Report report = null; Date startDate = new Date(); boolean error = false; String message = "Ok"; String url = ""; try { report = (Report) storageService.getEntityById(runReportMetaData.getReportId()); ReportRuntime runtime = new ReportRuntime(); runtime.setOutputType(runReportMetaData.getFormat()); if (runReportMetaData.getParametersValues() == null) { runReportMetaData.setParametersValues(new HashMap<String, Object>()); } runtime.setParametersValues(runReportMetaData.getParametersValues(), null); String[] result = reportService.reportToURL(report, runtime, "webservice", UUID.randomUUID().toString()); if (result == null) { return ""; } if (LOG.isDebugEnabled()) { LOG.debug("url = " + result[1]); } url = result[1]; return url; } catch (NotFoundException e) { error = true; message = e.getMessage(); LOG.error(message, e); throw new WebApplicationException(new Exception(e.getMessage()), ErrorCodes.NOT_FOUND); } catch (NoDataFoundException e) { error = false; message = "No Data"; throw new WebApplicationException(new Exception(e.getMessage()), ErrorCodes.NO_DATA_FOUND); } catch (Exception e) { error = true; message = e.getMessage(); LOG.error(message, e); throw new WebApplicationException(new Exception(e.getMessage()), ErrorCodes.RUN_ERROR); } finally { // save history if (report != null) { User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); String runnerId = user.getId(); RunReportHistory runHistory = new RunReportHistory(); String name = UUID.randomUUID().toString(); runHistory.setName(name); String path = report.getPath() + StorageConstants.PATH_SEPARATOR + "runHistory" + StorageConstants.PATH_SEPARATOR + name; runHistory.setPath(path); if (LOG.isDebugEnabled()) { LOG.debug("Create run history '" + runHistory.getPath() + "'"); } runHistory.setRunnerId(runnerId); runHistory.setRunnerType(RunReportHistory.WEB_SERVICE); runHistory.setStartDate(startDate); runHistory.setEndDate(new Date()); runHistory.setDuration(Seconds.secondsBetween(new DateTime(runHistory.getStartDate()), new DateTime(runHistory.getEndDate())).getSeconds()); runHistory.setError(error); runHistory.setMessage(message); runHistory.setUrl(url); runHistory.setParametersValues(runReportMetaData.getParametersValues(), null); try { storageService.addEntity(runHistory); } catch (Exception e) { e.printStackTrace(); LOG.error(e.getMessage(), e); } } } }
From source file:ro.nextreports.server.schedule.RunReportJob.java
License:Apache License
private void executeOneReport(JobExecutionContext context, ResourceBundle bundle, IdName batchValue) { JobDataMap dataMap = context.getMergedJobDataMap(); SchedulerJob schedulerJob = (SchedulerJob) dataMap.get(SCHEDULER_JOB); Report report = schedulerJob.getReport(); ReportService reportService = (ReportService) dataMap.get(REPORT_SERVICE); DataSourceService dataSourceService = (DataSourceService) dataMap.get(DATASOURCE_SERVICE); StorageService storageService = (StorageService) dataMap.get(STORAGE_SERVICE); final SecurityService securityService = (SecurityService) dataMap.get(SECURITY_SERVICE); List<Destination> destinations = schedulerJob.getDestinations(); final JavaMailSenderImpl mailSender = (JavaMailSenderImpl) dataMap.get(MAIL_SENDER); final String mailFrom = storageService.getSettings().getMailServer().getFrom(); String reportsPath = new File(storageService.getSettings().getReportsHome()).getAbsolutePath(); Auditor auditor = (Auditor) dataMap.get(AUDITOR); AuditEvent auditEvent = (AuditEvent) dataMap.get(AUDIT_EVENT); String runnerType = dataMap.getString(RUNNER_TYPE); String runnerId = dataMap.getString(RUNNER_ID); String creator = ""; AclEntry[] granted = securityService.getGrantedById(report.getId()); if (RunReportHistory.SCHEDULER.equals(runnerType)) { creator = schedulerJob.getCreatedBy(); } else if (RunReportHistory.USER.equals(runnerType)) { try {//from www . jav a 2 s.c o m creator = storageService.getEntityById(runnerId).getName(); } catch (Exception e) { e.printStackTrace(); LOG.error(e.getMessage(), e); } } String key = dataMap.getString(RUNNER_KEY); boolean error = false; String message = "Ok"; String url = ""; String fileName = null; Connection connection = null; try { /* try { Thread.sleep(2 * 60 * 1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } */ // for Scheduled reports // take care for INTERVAL template values // and set start_date and end_date accordingly if (!schedulerJob.isRunNow()) { ReportRuntimeTemplate template = schedulerJob.getTemplate(); if (template != null) { ShortcutType type = template.getShortcutType(); if ((type != null) && !ShortcutType.NONE.equals(type)) { Date[] dates = type.getTimeShortcutType().getDates(); Map<String, Object> map = schedulerJob.getReportRuntime().getParametersValues(); if (map.containsKey(QueryParameter.INTERVAL_START_DATE_NAME)) { Object start = map.get(QueryParameter.INTERVAL_START_DATE_NAME); Object value = null; if (start instanceof Date) { value = dates[0]; } else if (start instanceof Timestamp) { value = new Timestamp(dates[0].getTime()); } else if (start instanceof Time) { value = new Time(dates[0].getTime()); } if (value != null) { schedulerJob.getReportRuntime().updateParameterValue( QueryParameter.INTERVAL_START_DATE_NAME, (Serializable) value); } } if (map.containsKey(QueryParameter.INTERVAL_END_DATE_NAME)) { Object start = map.get(QueryParameter.INTERVAL_END_DATE_NAME); Object value = null; if (start instanceof Date) { value = dates[1]; } else if (start instanceof Timestamp) { value = new Timestamp(dates[1].getTime()); } else if (start instanceof Time) { value = new Time(dates[1].getTime()); } if (value != null) { schedulerJob.getReportRuntime().updateParameterValue( QueryParameter.INTERVAL_END_DATE_NAME, (Serializable) value); } } } } } if (LOG.isDebugEnabled()) { LOG.debug("Run report '" + report.getPath() + "'"); // debug runtime parameters Map<String, Object> parametersValues = schedulerJob.getReportRuntime().getParametersValues(); StringBuilder sb = new StringBuilder("\r\nRuntime parameters for '"); sb.append(report.getPath()); sb.append("'\r\n"); sb.append(ReportUtil.getDebugParameters(parametersValues)); LOG.debug(sb.toString()); } String[] result = new String[2]; if (report.isAlarmType() || report.isIndicatorType() || report.isDisplayType()) { // for alarm alert there is no url ro.nextreports.engine.Report nextReport = NextUtil.getNextReport(storageService.getSettings(), (NextContent) report.getContent()); final ReportRunner reportRunner = new ReportRunner(); reportRunner.setParameterValues(schedulerJob.getReportRuntime().getParametersValues()); reportRunner.setReport(nextReport); if (report.isAlarmType()) { reportRunner.setFormat(ReportRunner.ALARM_FORMAT); } else if (report.isDisplayType()) { reportRunner.setFormat(ReportRunner.DISPLAY_FORMAT); } else { reportRunner.setFormat(ReportRunner.INDICATOR_FORMAT); } try { connection = ConnectionUtil.createConnection(storageService, report.getDataSource()); } catch (RepositoryException e) { throw new ReportRunnerException("Cannot connect to database", e); } reportRunner.setConnection(connection); List<SmtpAlertDestination> alertDestinations = getAlertDestinations(destinations); if (alertDestinations.size() == 0) { LOG.error("Alarm '" + report.getPath() + "' has no alert destination."); ConnectionUtil.closeConnection(connection); return; } List<Alert> alerts = new ArrayList<Alert>(); for (final SmtpAlertDestination alertDestination : alertDestinations) { alerts.add(new Alert() { protected boolean isActive(Object value) { ConditionalExpression ce = new ConditionalExpression(alertDestination.getOperator()); ce.setRightOperand(ce.getOperand(alertDestination.getRightOperand())); ce.setRightOperand2(ce.getOperand(alertDestination.getRightOperand2())); ce.setLeftOperand((Serializable) value); try { boolean result = ce.evaluate(); return result; } catch (ConditionalException e) { e.printStackTrace(); } return false; } protected void run(Object value, String message) { Distributor alertDistributor = DistributorFactory .getDistributor(DestinationType.ALERT.toString()); try { DistributionContext distributionContext = new DistributionContext(); distributionContext.setSecurityService(securityService); distributionContext.setMailFrom(mailFrom); distributionContext.setMailSender(mailSender); String sValue = (value == null) ? "" : value.toString(); String mailMessage = alertDestination.getMailBody().replaceAll("\\$\\{val\\}", sValue); distributionContext.setMessage(mailMessage); alertDestination.setMailBody(mailMessage); distributionContext.setAlertMessage(message); alertDistributor.distribute(null, alertDestination, distributionContext); } catch (DistributionException e) { String failedMessage = "Distribution " + alertDestination.getName(); message += "\r\n" + failedMessage + " : " + e.getMessage(); LOG.error(message, e); e.printStackTrace(); } } }); } reportRunner.setAlerts(alerts); reportRunner.run(); } else { // not null when run String author = schedulerJob.getCreator(); if (author == null) { // when schedule author = schedulerJob.getCreatedBy(); } result = reportService.reportToURL(report, schedulerJob.getReportRuntime(), author, key); if (result == null) { fileName = ""; url = ReportConstants.ETL_FORMAT; } else { fileName = result[0]; url = result[1]; } } } catch (ReportEngineException e) { error = true; message = e.getMessage(); LOG.error(message, e); e.printStackTrace(); } catch (FormatNotSupportedException e) { error = true; message = e.getMessage(); LOG.error(message, e); e.printStackTrace(); } catch (NoDataFoundException e) { error = false; message = bundle.getString("ActionContributor.Run.nodata"); } catch (InterruptedException e) { error = true; message = bundle.getString("ActionContributor.Run.interrupted"); } catch (Throwable t) { error = true; if (t instanceof OutOfMemoryError) { message = bundle.getString("ActionContributor.Run.toomany"); } else { message = t.getMessage(); } LOG.error(message, t); t.printStackTrace(); } finally { ConnectionUtil.closeConnection(connection); if (RunReportHistory.USER.equals(runnerType)) { String eventMessage = error ? bundle.getString("ActionContributor.Run.error") : message; String dynamicUrl = ""; if (!error) { String fName = url.substring(url.lastIndexOf("/") + 1); dynamicUrl = reportService.getReportURL(fName); } ReportResultEvent event = new ReportResultEvent(creator, report.getName(), dynamicUrl, eventMessage); reportService.notifyReportListener(event); integrationPost(storageService.getSettings(), event); } } List<Distributor> distributors = new ArrayList<Distributor>(); DistributionContext distributionContext = new DistributionContext(); distributionContext.setSecurityService(securityService); distributionContext.setStorageService(storageService); distributionContext.setDataSource(report.getDataSource()); distributionContext.setError(error); distributionContext.setMailFrom(mailFrom); distributionContext.setMailSender(mailSender); distributionContext.setMessage(message); distributionContext.setReportsPath(reportsPath); distributionContext.setUrl(url); distributionContext.setReportName(report.getName()); distributionContext.setParameterValues(schedulerJob.getReportRuntime().getHistoryParametersValues()); // contains also the dynamic values if (batchMailMap != null) { distributionContext.setBatchMailMap(batchMailMap); } if (batchValue != null) { distributionContext.setBatchValue(batchValue.getId()); } if (fileName != null) { int errors = 0; File exportedFile = new File(reportsPath, fileName); for (Destination destination : destinations) { Distributor distributor = DistributorFactory.getDistributor(destination.getType()); distributors.add(distributor); try { distributor.distribute(exportedFile, destination, distributionContext); } catch (DistributionException e) { LOG.error(e.getMessage(), e); String s = bundle.getString("ActionContributor.Run.distributionFailed"); String failedMessage = MessageFormat.format(s, destination.getName()); error = true; if (errors == 0) { message = failedMessage + " : " + e.getMessage(); } else { message += "\r\n" + failedMessage + " : " + e.getMessage(); } errors++; } } } else { if (!report.isAlarmType() && !report.isIndicatorType() && !report.isDisplayType()) { // if 'No data' the email is not sent // send error through mail if (error) { for (Destination destination : destinations) { if (DestinationType.SMTP.toString().equals(destination.getType())) { Distributor distributor = DistributorFactory.getDistributor(destination.getType()); distributors.add(distributor); try { distributor.distribute(null, destination, distributionContext); } catch (DistributionException e) { String s = bundle.getString("ActionContributor.Run.distributionFailed"); String failedMessage = MessageFormat.format(s, destination.getName()); error = true; message += "\r\n" + failedMessage + " : " + e.getMessage(); } } } } } } // save history RunReportHistory runHistory = new RunReportHistory(); String name = UUID.randomUUID().toString(); runHistory.setName(name); String path = null; try { if (!StorageUtil.isVersion(report)) { path = storageService.getEntityById(report.getId()).getPath(); } else { String versionId = StorageUtil.getVersionableId(report); path = storageService.getEntityById(versionId).getPath(); } } catch (Exception e) { e.printStackTrace(); LOG.error(e.getMessage(), e); } path += StorageConstants.PATH_SEPARATOR + "runHistory" + StorageConstants.PATH_SEPARATOR + name; runHistory.setPath(path); if (LOG.isDebugEnabled()) { LOG.debug("Create run history '" + runHistory.getPath() + "'"); } runHistory.setRunnerId(runnerId); runHistory.setRunnerType(runnerType); runHistory.setStartDate(context.getScheduledFireTime()); runHistory.setEndDate(new Date()); runHistory.setDuration(Seconds .secondsBetween(new DateTime(runHistory.getStartDate()), new DateTime(runHistory.getEndDate())) .getSeconds()); runHistory.setError(error); runHistory.setMessage(message); runHistory.setUrl(url); runHistory.setParametersValues(schedulerJob.getReportRuntime().getHistoryParametersValues(), schedulerJob.getReportRuntime().getHistoryParametersDisplayNames()); // audit report runs auditEvent.setDate(runHistory.getStartDate()); auditEvent.getContext().put("DURATION", runHistory.getDuration()); if (error) { auditEvent.setErrorMessage(message); } auditor.logEvent(auditEvent); if (!report.isAlarmType() && !report.isIndicatorType() && !report.isIndicatorType()) { try { storageService.addEntity(runHistory); } catch (Exception e) { e.printStackTrace(); LOG.error(e.getMessage(), e); } // after distribute // for send mail distributor : update acl for run report history for (Distributor distributor : distributors) { distributor.afterDistribute(runHistory, distributionContext); } // create full permissions for the creator if (creator != null) { try { securityService.grantUser(path, creator, PermissionUtil.getFullPermissions(), false); } catch (Exception e) { e.printStackTrace(); LOG.error(e.getMessage(), e); } } } // security breach? (reports with data filtered by user) // create permissions for those who have permission on report // if (granted != null) { // for (AclEntry aclEntry : granted) { // try { // if (aclEntry.getType() == AclEntry.USER_TYPE) { // securityService.grantUser(path, aclEntry.getName(), aclEntry.getPermissions(), false); // } else if (aclEntry.getType() == AclEntry.GROUP_TYPE) { // securityService.grantGroup(path, aclEntry.getName(), aclEntry.getPermissions(), false); // } // } catch (Exception e) { // e.printStackTrace(); // LOG.error(e.getMessage(), e); // } // } // } }
From source file:ro.nextreports.server.service.DefaultSchedulerService.java
License:Apache License
@Transactional(readOnly = true) @Secured("AFTER_ACL_COLLECTION_READ") public SchedulerJob[] getActiveSchedulerJobs() { List<SchedulerJob> activeJobs = new ArrayList<SchedulerJob>(); SchedulerJob[] schedulerJobs = getSchedulerJobs(); for (SchedulerJob job : schedulerJobs) { boolean active = false; Date now = new Date(); if (ScheduleConstants.ONCE_TYPE.equals(job.getTime().getType())) { active = (job.getTime().getRunDate().compareTo(now) >= 0) || job.isRunning(); } else {//from w w w . j a v a 2s. co m active = ((job.getTime().getStartActivationDate().compareTo(now) <= 0) && (job.getTime().getEndActivationDate().compareTo(now) >= 0)) || job.isRunning(); } if (active) { activeJobs.add(job); Map<String, JobExecutionContext> runningJobs; try { runningJobs = QuartzUtil.getRunningJobs(scheduler); } catch (SchedulerException e) { throw new RuntimeException(e); } JobExecutionContext executionContext = runningJobs.get(job.getPath()); if (executionContext != null) { Date fireTime = executionContext.getFireTime(); job.setRunTime(Seconds.secondsBetween(new DateTime(fireTime), new DateTime()).getSeconds()); } } } schedulerJobs = activeJobs.toArray(new SchedulerJob[activeJobs.size()]); return schedulerJobs; }
From source file:ro.nextreports.server.service.DefaultSchedulerService.java
License:Apache License
public ReportJobInfo[] getReportJobInfos() { User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); List<JobDetail> jobs;/*from w ww . ja v a 2 s. c om*/ List<Trigger> triggers; Map<String, JobExecutionContext> runningJobs; try { jobs = QuartzUtil.getAllJobDetails(scheduler); triggers = QuartzUtil.getAllTriggers(scheduler); runningJobs = QuartzUtil.getRunningJobs(scheduler); } catch (SchedulerException e) { throw new RuntimeException(e); } List<ReportJobInfo> jobInfos = new ArrayList<ReportJobInfo>(triggers.size()); for (JobDetail job : jobs) { if (!isJobOfUser(job, user)) { continue; } ReportJobInfo jobInfo = new ReportJobInfo(); String jobName = job.getKey().getName(); jobInfo.setJobName(jobName); jobInfo.setRunner(getUser(job).getUsername()); jobInfo.setRunnerKey((String) job.getJobDataMap().get(RunReportJob.RUNNER_KEY)); jobInfo.setReportType((String) job.getJobDataMap().get(RunReportJob.REPORT_TYPE)); if (runningJobs.containsKey(jobName)) { jobInfo.setRunning(true); JobExecutionContext executionContext = runningJobs.get(jobName); Date fireTime = executionContext.getFireTime(); jobInfo.setRunTime(Seconds.secondsBetween(new DateTime(fireTime), new DateTime()).getSeconds()); jobInfo.setNextRun(executionContext.getNextFireTime()); jobInfo.setStartDate(fireTime); } else { Trigger trigger; try { TriggerKey triggerKey = new TriggerKey(job.getKey().getName(), job.getKey().getGroup()); trigger = scheduler.getTrigger(triggerKey); } catch (SchedulerException e) { throw new RuntimeException(e); } // a report runned with Run action can have the trigger null if we enter the dashboard if (trigger != null) { jobInfo.setNextRun(trigger.getNextFireTime()); } } jobInfos.add(jobInfo); } return jobInfos.toArray(new ReportJobInfo[jobInfos.size()]); }
From source file:tv.icntv.recommend.algorithm.cf.ViewTimeReducer.java
License:CDDL license
public long check(String from, String end, long time) { int se = Seconds.secondsBetween(DateUtils.getDateTime(from.split("\\|")[0]), DateUtils.getDateTime(end.split("\\|")[0])).getSeconds(); return se < time ? se : time; }
From source file:viability.LogFile.java
/** * Get all signal in the last two seconds on list from statistics request DateTime * @param daterequest statistics request DateTime * @return /*from w w w .j a v a 2 s . c om*/ */ public void averageSignalWeekForDistrict(DateTime daterequest, DateTime dateTimeCreationDB) { //WE ASSUME A WEEK = 15 MINUTES FOR DEMO LinkedList<String> listdistricts = getListDistrict(); Iterator iteratorDistricts = listdistricts.iterator(); //for each District on List while (iteratorDistricts.hasNext()) { double average = 0; int countDistrict = 0; String tempdistrict = (String) iteratorDistricts.next(); Iterator iterator = listSignal.iterator(); while (iterator.hasNext()) { Signal temp = (Signal) iterator.next(); if (temp.getDistrict().equalsIgnoreCase(tempdistrict)) { countDistrict++; } } //get weeks between DB creation date and statistics request date int seconds = Seconds.secondsBetween(dateTimeCreationDB, daterequest).getSeconds(); double countWeeks = seconds / 15; //calculate average for this District average = countDistrict / countWeeks; System.out.println("Average Signal Week for District " + tempdistrict + " is " + average); } }
From source file:viability.LogFile.java
/** * Get all signal in the last 30 seconds on list from statistics request DateTime * @param daterequest statistics request DateTime * @return //w w w . j av a2 s .c om */ public void averageSignalMonthForDistrict(DateTime daterequest, DateTime dateTimeCreationDB) { //WE ASSUME A MONTH = 120 SECONDS FOR DEMO LinkedList<String> listdistricts = getListDistrict(); Iterator iteratorDistricts = listdistricts.iterator(); //for each District on List while (iteratorDistricts.hasNext()) { double average = 0; int countDistrict = 0; String tempdistrict = (String) iteratorDistricts.next(); Iterator iterator = listSignal.iterator(); while (iterator.hasNext()) { Signal temp = (Signal) iterator.next(); if (temp.getDistrict().equalsIgnoreCase(tempdistrict)) { countDistrict++; } } //get weeks between DB creation date and statistics request date int seconds = Seconds.secondsBetween(dateTimeCreationDB, daterequest).getSeconds(); double countWeeks = seconds / 120; //calculate average for this District average = countDistrict / countWeeks; System.out.println("Average Signal Month for District " + tempdistrict + " is " + average); } }