private Bindings getBindings(Execution execution, JCRSessionWrapper session) throws RepositoryException { EnvironmentImpl environment = EnvironmentImpl.getCurrent(); final Map<String, Object> vars = ((ExecutionImpl) execution).getVariables(); Locale locale = (Locale) vars.get("locale"); final Bindings bindings = new MyBindings(environment); ResourceBundle resourceBundle = JahiaResourceBundle.lookupBundle( "org.jahia.services.workflow." + ((ExecutionImpl) execution).getProcessDefinition().getKey(), locale); bindings.put("bundle", resourceBundle); JahiaUser jahiaUser = ServicesRegistry.getInstance() .getJahiaUserManagerService() .lookupUserByKey((String) vars.get("user")); bindings.put("user", jahiaUser); bindings.put("date", new DateTool()); bindings.put("submissionDate", Calendar.getInstance()); bindings.put("locale", locale); bindings.put("workspace", vars.get("workspace")); List<JCRNodeWrapper> nodes = new LinkedList<JCRNodeWrapper>(); @SuppressWarnings("unchecked") List<String> stringList = (List<String>) vars.get("nodeIds"); for (String s : stringList) { JCRNodeWrapper nodeByUUID = session.getNodeByUUID(s); if (!nodeByUUID.isNodeType("jnt:translation")) { nodes.add(nodeByUUID); } } bindings.put("nodes", nodes); return bindings; }
public boolean isOlder(Date receivedDate, Date lastReceivedDate) { // now we check to see if the timestamp of this message is newer than that of // the last received date, so we are getting new google voice messages only Calendar newMsgReceivedDate = Calendar.getInstance(TimeZone.getDefault()); Calendar oldReceivedDate = Calendar.getInstance(TimeZone.getDefault()); newMsgReceivedDate.setTime(receivedDate); oldReceivedDate.setTime(lastReceivedDate); if (log.isDebugEnabled()) log.debug( String.format( "Calendar Message age check. Sent date %s %s, received date %s %s", newMsgReceivedDate.getTime().getTime(), newMsgReceivedDate.getTime(), oldReceivedDate.getTime().getTime(), oldReceivedDate.getTime())); if (newMsgReceivedDate.getTime().compareTo(oldReceivedDate.getTime()) <= 0) return true; if (log.isDebugEnabled()) log.debug( String.format( "Calendar explicit equal check: Seconds %s %s \n, minutes %s %s \n, hours %s %s", newMsgReceivedDate.get(Calendar.SECOND), oldReceivedDate.get(Calendar.SECOND), newMsgReceivedDate.get(Calendar.MINUTE), oldReceivedDate.get(Calendar.MINUTE), newMsgReceivedDate.get(Calendar.HOUR), oldReceivedDate.get(Calendar.HOUR))); // need to an explicit check if two dates are equal return newMsgReceivedDate.get(Calendar.SECOND) == oldReceivedDate.get(Calendar.SECOND) && newMsgReceivedDate.get(Calendar.MINUTE) == oldReceivedDate.get(Calendar.MINUTE) && newMsgReceivedDate.get(Calendar.HOUR) == oldReceivedDate.get(Calendar.HOUR) && newMsgReceivedDate.get(Calendar.DAY_OF_YEAR) == oldReceivedDate.get(Calendar.DAY_OF_YEAR) && newMsgReceivedDate.get(Calendar.YEAR) == oldReceivedDate.get(Calendar.YEAR); }