Example usage for org.joda.time.format ISODateTimeFormat dateOptionalTimeParser

List of usage examples for org.joda.time.format ISODateTimeFormat dateOptionalTimeParser

Introduction

In this page you can find the example usage for org.joda.time.format ISODateTimeFormat dateOptionalTimeParser.

Prototype

public static DateTimeFormatter dateOptionalTimeParser() 

Source Link

Document

Returns a generic ISO datetime parser where the date is mandatory and the time is optional.

Usage

From source file:org.grails.plugins.elasticsearch.conversion.unmarshall.DomainClassUnmarshaller.java

License:Apache License

private Object unmarshallProperty(GrailsDomainClass domainClass, String propertyName, Object propertyValue,
        DefaultUnmarshallingContext unmarshallingContext) {
    // TODO : adapt behavior if the mapping option "component" or "reference" are set
    // below is considering the "component" behavior
    if (LOG.isDebugEnabled()) {
        //yeah, it's ugly to use +
        LOG.debug("Unmarshalling property " + propertyName + " with value " + propertyValue + " "
                + (propertyValue != null ? propertyValue.getClass().getName() : ""));
    }/*from   w  ww  .  j  a  v a 2 s .c  o  m*/
    SearchableClassPropertyMapping scpm = elasticSearchContextHolder.getMappingContext(domainClass)
            .getPropertyMapping(propertyName);
    Object parseResult = null;
    if (null == scpm) {
        // TODO: unhandled property exists in index
        LOG.error("Index contains a unhandled property which will be ignored. Property name" + propertyName
                + " with value " + propertyValue);
        return null;
    }
    if (null != scpm && propertyValue instanceof Map) {

        @SuppressWarnings({ "unchecked" })
        Map<String, Object> data = (Map<String, Object>) propertyValue;

        // Handle cycle reference
        if (data.containsKey("ref")) {
            unmarshallingContext.addCycleRef(propertyValue);
            return null;
        }

        // Searchable reference.
        if (scpm.getReference() != null) {
            Class<?> refClass = scpm.getBestGuessReferenceType();
            GrailsDomainClass refDomainClass = null;
            for (GrailsClass dClazz : grailsApplication.getArtefacts(DomainClassArtefactHandler.TYPE)) {
                if (dClazz.getClazz().equals(refClass)) {
                    refDomainClass = (GrailsDomainClass) dClazz;
                    break;
                }
            }
            if (refDomainClass == null) {
                throw new IllegalStateException("Found reference to non-domain class: " + refClass);
            }
            return unmarshallReference(refDomainClass, data, unmarshallingContext);
        }

        if (data.containsKey("class")) {
            // Embedded instance.
            if (!scpm.isComponent()) {
                // maybe ignore?
                throw new IllegalStateException("Property " + domainClass.getName() + "." + propertyName
                        + " is not mapped as [component], but broken search hit found.");
            }
            GrailsDomainClass nestedDomainClass = (GrailsDomainClass) grailsApplication
                    .getArtefact(DomainClassArtefactHandler.TYPE, (String) data.get("class"));
            if (domainClass != null) {
                // Unmarshall 'component' instance.
                if (!scpm.isComponent()) {
                    throw new IllegalStateException("Object " + data.get("class") + " found in index, but ["
                            + propertyName + "] is not mapped as component.");
                }
                parseResult = unmarshallDomain(nestedDomainClass, data.get("id"), data, unmarshallingContext);
            }
        }
    } else if (propertyValue instanceof Collection) {
        List<Object> results = new ArrayList<Object>();
        int index = 0;
        for (Object innerValue : (Collection) propertyValue) {
            unmarshallingContext.getUnmarshallingStack().push(String.valueOf(index));
            Object parseItem = unmarshallProperty(domainClass, propertyName, innerValue, unmarshallingContext);
            if (parseItem != null) {
                results.add(parseItem);
            }
            index++;
            unmarshallingContext.getUnmarshallingStack().pop();
        }
        parseResult = results;
    } else if (scpm.getPropertyType() == Date.class) {
        //TODO: this is a quick fix as the unmarshalling of dates doesn't work
        DateTimeFormatter dtf = ISODateTimeFormat.dateOptionalTimeParser();
        try {
            DateTime dateTime = dtf.parseDateTime(propertyValue.toString());
            parseResult = dateTime.toDate();
        } catch (Exception e) {
            LOG.error("Failed to parse the value " + propertyValue + "as date for property " + propertyName, e);
        }
    } else {
        // consider any custom property editors here.
        if (scpm.getConverter() != null) {
            LOG.debug("Using a converter for property" + propertyName);
            if (scpm.getConverter() instanceof Class) {
                try {
                    PropertyEditor propertyEditor = (PropertyEditor) ((Class) scpm.getConverter())
                            .newInstance();
                    propertyEditor.setAsText((String) propertyValue);
                    parseResult = propertyEditor.getValue();
                } catch (Exception e) {
                    throw new IllegalArgumentException(
                            "Unable to unmarshall " + propertyName + " using " + scpm.getConverter(), e);
                }
            }
        } else if (scpm.getReference() != null) {

            // This is a reference and it MUST be null because it's not a Map.
            if (propertyValue != null) {
                throw new IllegalStateException("Found searchable reference which is not a Map: " + domainClass
                        + "." + propertyName + " = " + propertyValue);
            }

            parseResult = null;
        }
    }
    if (parseResult != null) {
        LOG.debug("ParsedValue is ..." + parseResult);
        return parseResult;
    } else {
        LOG.debug("We will just return the same propery value as received..." + propertyValue);
        return propertyValue;
    }
}

From source file:org.jahia.bin.Action.java

License:Open Source License

protected void setProperties(JCRNodeWrapper newNode, Map<String, List<String>> parameters)
        throws RepositoryException {
    Set<Map.Entry<String, List<String>>> set = parameters.entrySet();
    for (Map.Entry<String, List<String>> entry : set) {
        String key = entry.getKey();
        if (!Render.RESERVED_PARAMETERS.contains(key)) {
            List<String> values = entry.getValue();
            ExtendedPropertyDefinition propertyDefinition = null;
            propertyDefinition = newNode.getApplicablePropertyDefinition(key);
            if (propertyDefinition == null) {
                continue;
            }//from   w  w  w.ja  va  2s  .  c  om
            if (propertyDefinition.isMultiple()) {
                newNode.setProperty(key, values.toArray(new String[values.size()]));
            } else if (values.get(0).length() > 0) {
                if (propertyDefinition.getRequiredType() == ExtendedPropertyType.DATE) {
                    DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(values.get(0));
                    newNode.setProperty(key, dateTime.toCalendar(Locale.ENGLISH));
                } else {
                    newNode.setProperty(key, values.get(0));
                }
            }
        }
    }
}

From source file:org.jahia.bin.DefaultPutAction.java

License:Open Source License

@Override
public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext, Resource resource,
        JCRSessionWrapper session, Map<String, List<String>> parameters, URLResolver urlResolver)
        throws Exception {
    JCRNodeWrapper node = session.getNode(urlResolver.getPath());
    // Get node information before any modification as a rule can delete it
    String primaryNodeTypeName = node.getPrimaryNodeTypeName();
    session.checkout(node);/*w  w w  . ja  v  a  2  s.  c  o  m*/

    if (parameters.containsKey(Render.REMOVE_MIXIN)) {
        for (String mixinType : parameters.get(Render.REMOVE_MIXIN)) {
            node.removeMixin(mixinType);
        }
    }
    if (parameters.containsKey(Constants.JCR_MIXINTYPES)) {
        for (String mixinType : parameters.get(Constants.JCR_MIXINTYPES)) {
            node.addMixin(mixinType);
        }
    }
    Set<Map.Entry<String, List<String>>> set = parameters.entrySet();
    try {
        for (Map.Entry<String, List<String>> entry : set) {
            String key = entry.getKey();
            if (!Render.getReservedParameters().contains(key)) {
                List<String> values = entry.getValue();
                final ExtendedPropertyDefinition propertyDefinition = ((JCRNodeWrapper) node)
                        .getApplicablePropertyDefinition(key);
                if (propertyDefinition == null) {
                    continue;
                }
                if (propertyDefinition.isMultiple()) {
                    if (values.size() == 1 && values.get(0).equals("jcrClearAllValues")) {
                        node.setProperty(key, new Value[0]);
                    } else {
                        node.setProperty(key, values.toArray(new String[values.size()]));
                    }
                } else if (propertyDefinition.getRequiredType() == PropertyType.DATE) {
                    // Expecting ISO date yyyy-MM-dd'T'HH:mm:ss
                    DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(values.get(0));
                    node.setProperty(key, dateTime.toCalendar(Locale.ENGLISH));
                } else {
                    node.setProperty(key, values.get(0));
                }
            }
        }
        session.save();
    } catch (CompositeConstraintViolationException e) {
        List<JSONObject> jsonErrors = new ArrayList<JSONObject>();
        for (ConstraintViolationException exception : e.getErrors()) {
            jsonErrors.add(getJSONConstraintError(exception));
        }
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("validationError", jsonErrors);
        return new ActionResult(HttpServletResponse.SC_BAD_REQUEST, null, jsonObject);
    } catch (ConstraintViolationException e) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("validationError", Arrays.asList(getJSONConstraintError(e)));
        return new ActionResult(HttpServletResponse.SC_BAD_REQUEST, null, jsonObject);
    } catch (Exception e) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("error", e.getMessage());
        return new ActionResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, null, jsonObject);
    }

    if (req.getParameter(Render.AUTO_CHECKIN) != null && req.getParameter(Render.AUTO_CHECKIN).length() > 0) {
        session.getWorkspace().getVersionManager().checkpoint(node.getPath());
    }

    String sessionID = "";
    HttpSession httpSession = req.getSession(false);
    if (httpSession != null) {
        sessionID = httpSession.getId();
    }
    if (loggingService.isEnabled()) {
        loggingService.logContentEvent(renderContext.getUser().getName(), req.getRemoteAddr(), sessionID,
                node.getIdentifier(), urlResolver.getPath(), primaryNodeTypeName, "nodeUpdated",
                new JSONObject(req.getParameterMap()).toString());
    }

    final String requestWith = req.getHeader("x-requested-with");
    if (req.getHeader("accept") != null && req.getHeader("accept").contains("application/json")
            && requestWith != null && requestWith.equals("XMLHttpRequest")) {
        JSONObject jsonObject = null;
        try {
            jsonObject = Render.serializeNodeToJSON(node);
        } catch (RepositoryException e) {
        }
        return new ActionResult(HttpServletResponse.SC_OK, node.getPath(), jsonObject);
    } else {
        return ActionResult.OK;
    }
}

From source file:org.jahia.bin.Render.java

License:Open Source License

protected void doPut(HttpServletRequest req, HttpServletResponse resp, RenderContext renderContext,
        URLResolver urlResolver) throws RepositoryException, IOException {
    JCRSessionWrapper session = jcrSessionFactory.getCurrentUserSession(urlResolver.getWorkspace(),
            urlResolver.getLocale());/*from   w ww  .j a  v a  2 s.c  om*/
    JCRNodeWrapper node = session.getNode(urlResolver.getPath());
    session.checkout(node);
    @SuppressWarnings("unchecked")
    Map<String, String[]> parameters = req.getParameterMap();
    if (parameters.containsKey(REMOVE_MIXIN)) {
        String[] mixinTypes = (String[]) parameters.get(REMOVE_MIXIN);
        for (String mixinType : mixinTypes) {
            node.removeMixin(mixinType);
        }
    }
    if (parameters.containsKey(Constants.JCR_MIXINTYPES)) {
        String[] mixinTypes = (String[]) parameters.get(Constants.JCR_MIXINTYPES);
        for (String mixinType : mixinTypes) {
            node.addMixin(mixinType);
        }
    }
    Set<Map.Entry<String, String[]>> set = parameters.entrySet();
    try {
        for (Map.Entry<String, String[]> entry : set) {
            String key = entry.getKey();
            if (!reservedParameters.contains(key)) {
                String[] values = entry.getValue();
                final ExtendedPropertyDefinition propertyDefinition = ((JCRNodeWrapper) node)
                        .getApplicablePropertyDefinition(key);
                if (propertyDefinition == null) {
                    continue;
                }
                if (propertyDefinition.isMultiple()) {
                    node.setProperty(key, values);
                } else if (propertyDefinition.getRequiredType() == PropertyType.DATE) {
                    // Expecting ISO date yyyy-MM-dd'T'HH:mm:ss
                    DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(values[0]);
                    node.setProperty(key, dateTime.toCalendar(Locale.ENGLISH));
                } else {
                    node.setProperty(key, values[0]);
                }
            }
        }
    } catch (ConstraintViolationException e) {
        resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "bad parameter");
        return;
    }
    session.save();
    if (req.getParameter(AUTO_CHECKIN) != null && req.getParameter(AUTO_CHECKIN).length() > 0) {
        session.getWorkspace().getVersionManager().checkpoint(node.getPath());
    }
    final String requestWith = req.getHeader("x-requested-with");
    if (req.getHeader("accept").contains("application/json") && requestWith != null
            && requestWith.equals("XMLHttpRequest")) {
        try {
            serializeNodeToJSON(node).write(resp.getWriter());
        } catch (JSONException e) {
            logger.error(e.getMessage(), e);
        }
    } else {
        performRedirect(null, null, req, resp, toParameterMapOfListOfString(req), false);
    }
    addCookie(req, resp);
    String sessionID = "";
    HttpSession httpSession = req.getSession(false);
    if (httpSession != null) {
        sessionID = httpSession.getId();
    }
    if (loggingService.isEnabled()) {
        loggingService.logContentEvent(renderContext.getUser().getName(), req.getRemoteAddr(), sessionID,
                node.getIdentifier(), urlResolver.getPath(), node.getPrimaryNodeType().getName(), "nodeUpdated",
                new JSONObject(req.getParameterMap()).toString());
    }
}

From source file:org.jahia.modules.gateway.JSONToJCRDeserializer.java

License:Open Source License

private void setPropertiesOnNode(JCRNodeWrapper newNode, JSONObject properties, ExtendedNodeType nodeType)
        throws RepositoryException {
    Iterator keys = properties.keys();
    while (keys.hasNext()) {
        String property = (String) keys.next();
        try {/*www .  j  a va  2  s .c  om*/
            String value = (String) properties.get(property);
            boolean needUpdate;
            logger.debug("added property " + property + " with value " + value);
            String name = property.replaceAll("_", ":");
            try {
                needUpdate = !(newNode.getProperty(name).getValue().getString().equals(value));
            } catch (RepositoryException e1) {
                needUpdate = true;
            }
            if (needUpdate) {
                ExtendedPropertyDefinition propertyDefinition = nodeType.getPropertyDefinition(name);
                if (propertyDefinition == null) {
                    ExtendedNodeType[] declaredSupertypes = nodeType.getDeclaredSupertypes();
                    for (ExtendedNodeType declaredSupertype : declaredSupertypes) {
                        propertyDefinition = declaredSupertype.getPropertyDefinition(name);
                        if (propertyDefinition != null) {
                            break;
                        }
                    }
                }
                int requiredType = 0;
                if (propertyDefinition != null) {
                    requiredType = propertyDefinition.getRequiredType();
                }
                switch (requiredType) {
                case ExtendedPropertyType.DATE:
                    DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(value);
                    newNode.setProperty(name, dateTime.toCalendar(Locale.ENGLISH));
                    break;
                case ExtendedPropertyType.REFERENCE:
                case ExtendedPropertyType.WEAKREFERENCE:
                    File file = new File(value);
                    JCRNodeWrapper files = newNode.getSession()
                            .getNode(newNode.getResolveSite().getPath() + "/files");
                    FileInputStream is = null;
                    try {
                        is = FileUtils.openInputStream(file);
                        JCRNodeWrapper reference = files.uploadFile(file.getName(), is,
                                JCRContentUtils.getMimeType(file.getName()));
                        newNode.setProperty(name, reference);
                    } finally {
                        IOUtils.closeQuietly(is);
                        FileUtils.deleteQuietly(file);
                    }
                    break;
                default:
                    newNode.setProperty(name, value);
                    break;
                }
            }
        } catch (JSONException e) {
            logger.error(e.getMessage(), e);
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
    }
}

From source file:org.jahia.modules.portal.service.PortalService.java

License:Open Source License

public PortalContext buildPortalContext(RenderContext renderContext, JCRNodeWrapper portalTabNode,
        JCRSessionWrapper sessionWrapper, final boolean updateLastPortalUsed) throws RepositoryException {
    final String currentPath = portalTabNode.getPath();
    final boolean isEditable = portalTabNode.hasPermission("jcr:write_live");
    final Locale mainResourceLocale = renderContext.getMainResourceLocale();
    final String siteKey = renderContext.getSite().getSiteKey();

    PortalContext portalContext = JCRTemplate.getInstance().doExecuteWithSystemSession(
            sessionWrapper.getUser().getUsername(), sessionWrapper.getWorkspace().getName(),
            sessionWrapper.getLocale(), new JCRCallback<PortalContext>() {
                @Override/*from  w  w w. ja  v  a  2s  .c  om*/
                public PortalContext doInJCR(JCRSessionWrapper session) throws RepositoryException {
                    JCRNodeWrapper portalTabNode = session.getNode(currentPath);
                    JCRNodeWrapper portalNode = JCRContentUtils.getParentOfType(portalTabNode,
                            PortalConstants.JMIX_PORTAL);

                    PortalContext portalContext = new PortalContext();
                    boolean isModel = portalNode.isNodeType(PortalConstants.JNT_PORTAL_MODEL);
                    portalContext.setEditable(isEditable);
                    portalContext.setPath(portalNode.getPath());
                    portalContext.setIdentifier(portalNode.getIdentifier());
                    portalContext.setTabPath(portalTabNode.getPath());
                    portalContext.setTabIdentifier(portalTabNode.getIdentifier());
                    portalContext.setFullTemplate(
                            portalNode.getProperty(PortalConstants.J_FULL_TEMPLATE).getString());
                    portalContext.setLock(portalNode.hasProperty(PortalConstants.J_LOCKED)
                            && portalNode.getProperty(PortalConstants.J_LOCKED).getBoolean());
                    portalContext.setModel(isModel);
                    portalContext.setCustomizable(isModel
                            && portalNode.hasProperty(PortalConstants.J_ALLOW_CUSTOMIZATION)
                            && portalNode.getProperty(PortalConstants.J_ALLOW_CUSTOMIZATION).getBoolean());
                    JCRSiteNode site = JahiaSitesService.getInstance().getSiteByKey(siteKey, session);

                    JCRNodeWrapper modelNode = null;
                    boolean modelDeleted = false;
                    if (isModel) {
                        portalContext.setEnabled(portalNode.hasProperty(PortalConstants.J_ENABLED)
                                && portalNode.getProperty(PortalConstants.J_ENABLED).getBoolean());
                    } else {
                        try {
                            modelNode = (JCRNodeWrapper) portalNode.getProperty(PortalConstants.J_MODEL)
                                    .getNode();
                        } catch (Exception e) {
                            // model deleted
                        }
                        if (modelNode != null) {
                            portalContext.setModelPath(modelNode.getPath());
                            portalContext.setModelIdentifier(modelNode.getIdentifier());
                            portalContext.setEnabled(modelNode.hasProperty(PortalConstants.J_ENABLED)
                                    && modelNode.getProperty(PortalConstants.J_ENABLED).getBoolean());
                        } else {
                            portalContext.setEnabled(false);
                            modelDeleted = true;
                        }
                    }

                    portalContext.setSiteKey(site.getSiteKey());
                    portalContext.setPortalTabTemplates(new ArrayList<PortalKeyNameObject>());
                    portalContext.setPortalTabSkins(new ArrayList<PortalKeyNameObject>());
                    portalContext.setPortalWidgetTypes(new TreeSet<PortalWidgetType>(WIDGET_TYPES_COMPARATOR));
                    if (isEditable) {

                        // Templates for portal tabs
                        List<JCRNodeWrapper> templates = getPortalTabTemplates(
                                portalNode.getProperty(PortalConstants.J_TEMPLATE_ROOT_PATH).getString(),
                                session);
                        for (JCRNodeWrapper template : templates) {
                            PortalKeyNameObject portalTabTemplate = new PortalKeyNameObject();
                            portalTabTemplate.setName(template.getDisplayableName());
                            portalTabTemplate.setKey(template.getName());
                            portalContext.getPortalTabTemplates().add(portalTabTemplate);
                        }

                        // Widget skins
                        SortedSet<View> widgetSkins = getViewSet(PortalConstants.JMIX_PORTAL_WIDGET, site);
                        for (View widgetView : widgetSkins) {
                            if (widgetView.getKey().startsWith("box")) {
                                PortalKeyNameObject portalTabSkin = new PortalKeyNameObject();
                                try {
                                    portalTabSkin.setName(Messages.get(widgetView.getModule(),
                                            widgetView.getKey(), mainResourceLocale));
                                } catch (MissingResourceException e) {
                                    // no resourceBundle for skin
                                    portalTabSkin.setName(widgetView.getKey());
                                }

                                portalTabSkin.setKey(widgetView.getKey());
                                portalContext.getPortalTabSkins().add(portalTabSkin);
                            }
                        }

                        // Widget types
                        Collection<ExtendedNodeType> widgetTypes = getPortalWidgetNodeTypes(portalNode);
                        Collection<ExtendedNodeType> modelWidgetTypes = !isModel && !modelDeleted
                                ? getPortalWidgetNodeTypes(modelNode)
                                : null;

                        for (ExtendedNodeType widgetType : widgetTypes) {
                            if (!isModel && !modelDeleted) {
                                if (modelWidgetTypes.contains(widgetType)) {
                                    PortalWidgetType portalWidgetType = buildPortalWidgetType(widgetType, site,
                                            mainResourceLocale, false);
                                    portalContext.getPortalWidgetTypes().add(portalWidgetType);
                                    modelWidgetTypes.remove(widgetType);
                                }
                            } else {
                                PortalWidgetType portalWidgetType = buildPortalWidgetType(widgetType, site,
                                        mainResourceLocale, false);
                                portalContext.getPortalWidgetTypes().add(portalWidgetType);
                            }
                        }
                        if (!isModel && !modelDeleted) {
                            for (ExtendedNodeType modelWidgetType : modelWidgetTypes) {
                                PortalWidgetType portalWidgetType = buildPortalWidgetType(modelWidgetType, site,
                                        mainResourceLocale, true);
                                portalContext.getPortalWidgetTypes().add(portalWidgetType);
                            }
                        }
                    }

                    if (updateLastPortalUsed) {
                        DateTime currentDateTime = new DateTime();
                        String lastViewed = portalNode.getPropertyAsString(PortalConstants.J_LASTVIEWED);

                        boolean firstView = StringUtils.isEmpty(lastViewed);
                        if (firstView || currentDateTime.getDayOfYear() != ISODateTimeFormat
                                .dateOptionalTimeParser().parseDateTime(lastViewed).getDayOfYear()) {
                            portalNode.setProperty(PortalConstants.J_LASTVIEWED,
                                    currentDateTime.toCalendar(mainResourceLocale));
                            portalNode.saveSession();
                        }
                    }

                    return portalContext;
                }
            });

    portalContext.setBaseUrl(StringUtils.isNotEmpty(renderContext.getURLGenerator().getContext())
            ? renderContext.getURLGenerator().getContext() + renderContext.getURLGenerator().getBaseLive()
            : renderContext.getURLGenerator().getBaseLive());

    return portalContext;
}

From source file:org.jahia.modules.portal.sitesettings.PortalFactoryHandler.java

License:Open Source License

public void doUserPortalsQuery(RequestContext ctx, UserPortalsTable userPortalsTable) {
    try {/*  ww  w.  j  a v  a  2 s.com*/
        JCRSessionWrapper sessionWrapper = getCurrentUserSession(ctx, "live");
        final String siteKey = getRenderContext(ctx).getSite().getSiteKey();
        final UserPortalsTable finalTable = userPortalsTable;
        LinkedHashMap<String, UserPortalsTableRow> tableRows = JCRTemplate.getInstance()
                .doExecuteWithSystemSession(sessionWrapper.getUser().getUsername(), "live",
                        sessionWrapper.getLocale(),
                        new JCRCallback<LinkedHashMap<String, UserPortalsTableRow>>() {
                            @Override
                            public LinkedHashMap<String, UserPortalsTableRow> doInJCR(JCRSessionWrapper session)
                                    throws RepositoryException {
                                Query query = getUserPortalsQuery(siteKey, finalTable, session);
                                query.setLimit(finalTable.getPager().getItemsPerPage());
                                query.setOffset(finalTable.getPager().getItemsPerPage()
                                        * (finalTable.getPager().getPage() - 1));

                                LinkedHashMap<String, UserPortalsTableRow> tableRowsToReturn = new LinkedHashMap<String, UserPortalsTableRow>();
                                if (query.getStatement().contains("isdescendantnode")
                                        || finalTable.getSearchCriteria() == null || !StringUtils
                                                .isNotEmpty(finalTable.getSearchCriteria().getSearchString())) {
                                    NodeIterator nodeIterator = query.execute().getNodes();
                                    while (nodeIterator.hasNext()) {
                                        JCRNodeWrapper portalNode = (JCRNodeWrapper) nodeIterator.next();
                                        UserPortalsTableRow row = new UserPortalsTableRow();
                                        row.setUserNodeIdentifier(JCRContentUtils
                                                .getParentOfType(portalNode, "jnt:user").getIdentifier());
                                        try {
                                            row.setModelName(((JCRNodeWrapper) portalNode.getProperty("j:model")
                                                    .getNode()).getDisplayableName());
                                        } catch (Exception e) {
                                            // model deleted
                                            row.setModelName("No model found");
                                        }
                                        DateTime sinceDate = ISODateTimeFormat.dateOptionalTimeParser()
                                                .parseDateTime(portalNode.getPropertyAsString("j:lastViewed"));
                                        row.setLastUsed(
                                                Days.daysBetween(new LocalDate(sinceDate), new LocalDate())
                                                        .getDays());
                                        row.setCreated(
                                                portalNode.getProperty("jcr:created").getDate().getTime());
                                        tableRowsToReturn.put(portalNode.getPath(), row);
                                    }
                                }
                                return tableRowsToReturn;
                            }
                        });
        userPortalsTable.setRows(tableRows);
    } catch (RepositoryException e) {
        logger.error(e.getMessage(), e);
    }
}

From source file:org.jahia.services.workflow.jbpm.JahiaBusinessCalendar.java

License:Open Source License

public Date add(Date date, String duration) {
    try {//from  ww w  .  ja  v  a2 s  .c  om
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(Long.valueOf(duration));
        logger.info("Workflow Variable Date = " + SimpleDateFormat
                .getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT).format(calendar.getTime()));
        return calendar.getTime();
    } catch (NumberFormatException e) {
        try {
            DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(duration);
            return dateTime.toDate();
        } catch (Exception e1) {
            return super.add(date, duration);
        }
    }
}

From source file:org.jahia.services.workflow.WorkflowVariable.java

License:Open Source License

public Date getValueAsDate() {
    if (null == value || "".equals(value.trim())) {
        return null;
    }/*w  ww  .  j av a2 s  .  c om*/
    try {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(Long.valueOf(value));
        return calendar.getTime();
    } catch (NumberFormatException e) {
        DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(value);
        return dateTime.toDate();
    }
}

From source file:org.jahia.taglibs.functions.Functions.java

License:Open Source License

public static String formatISODate(java.lang.String dateToParse, String pattern, Locale locale) {
    try {/*ww  w  . j av  a 2  s .  co m*/
        DateTime dateTime = ISODateTimeFormat.dateOptionalTimeParser().parseDateTime(dateToParse);
        return DateTimeFormat.forPattern(pattern).withLocale(locale != null ? locale : Locale.ENGLISH)
                .print(!dateToParse.endsWith("Z") ? dateTime : dateTime.toDateTime(DateTimeZone.forID("UTC")));
    } catch (Exception e) {
        logger.debug("Unable to parse date:" + dateToParse, e);
        return null;
    }
}