Example usage for org.apache.commons.lang.time DateFormatUtils formatUTC

List of usage examples for org.apache.commons.lang.time DateFormatUtils formatUTC

Introduction

In this page you can find the example usage for org.apache.commons.lang.time DateFormatUtils formatUTC.

Prototype

public static String formatUTC(Date date, String pattern) 

Source Link

Document

Formats a date/time into a specific pattern using the UTC time zone.

Usage

From source file:org.dspace.app.cris.discovery.CrisSearchService.java

private void commonsIndexerTimestamp(HasTimeStampInfo dso, SolrInputDocument doc, String schema) {
    try {//from   w w w  .  j a v a2 s . c  o m
        if (dso.getTimeStampInfo() != null && dso.getTimeStampInfo().getTimestampCreated() != null
                && dso.getTimeStampInfo().getTimestampCreated().getTimestamp() != null) {
            doc.addField(schema + ".time_creation_dt",
                    dso.getTimeStampInfo().getTimestampCreated().getTimestamp());
            doc.addField("crisDateIssued.year", DateFormatUtils
                    .formatUTC(dso.getTimeStampInfo().getTimestampCreated().getTimestamp(), "yyyy"));
        }

        if (dso.getTimeStampInfo() != null && dso.getTimeStampInfo().getTimestampLastModified() != null
                && dso.getTimeStampInfo().getTimestampLastModified().getTimestamp() != null) {
            doc.addField(schema + ".time_lastmodified_dt",
                    dso.getTimeStampInfo().getTimestampLastModified().getTimestamp());
            doc.addField("crisDateIssued.year_lastmodified", DateFormatUtils
                    .formatUTC(dso.getTimeStampInfo().getTimestampCreated().getTimestamp(), "yyyy"));
        }
    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }
}

From source file:org.dspace.discovery.SolrServiceImpl.java

/**
 * Build a Lucene document for a DSpace Item and write the index
 *
 * @param context Users Context//w  w  w .ja  va  2 s  .c  o m
 * @param item    The DSpace Item to be indexed
 * @throws SQLException
 * @throws IOException
 */
protected void buildDocument(Context context, Item item) throws SQLException, IOException {
    String handle = item.getHandle();

    if (handle == null) {
        handle = HandleManager.findHandle(context, item);
    }

    // get the location string (for searching by collection & community)
    List<String> locations = getItemLocations(item);

    SolrInputDocument doc = buildDocument(Constants.ITEM, item.getID(), handle, locations);

    log.debug("Building Item: " + handle);

    doc.addField("withdrawn", item.isWithdrawn());
    doc.addField("discoverable", item.isDiscoverable());

    //Keep a list of our sort values which we added, sort values can only be added once
    List<String> sortFieldsAdded = new ArrayList<String>();
    Set<String> hitHighlightingFields = new HashSet<String>();
    try {
        List<DiscoveryConfiguration> discoveryConfigurations = SearchUtils.getAllDiscoveryConfigurations(item);

        //A map used to save each sidebarFacet config by the metadata fields
        Map<String, List<DiscoverySearchFilter>> searchFilters = new HashMap<String, List<DiscoverySearchFilter>>();
        Map<String, DiscoverySortFieldConfiguration> sortFields = new HashMap<String, DiscoverySortFieldConfiguration>();
        Map<String, DiscoveryRecentSubmissionsConfiguration> recentSubmissionsConfigurationMap = new HashMap<String, DiscoveryRecentSubmissionsConfiguration>();
        Set<String> moreLikeThisFields = new HashSet<String>();
        for (DiscoveryConfiguration discoveryConfiguration : discoveryConfigurations) {
            for (int i = 0; i < discoveryConfiguration.getSearchFilters().size(); i++) {
                DiscoverySearchFilter discoverySearchFilter = discoveryConfiguration.getSearchFilters().get(i);
                for (int j = 0; j < discoverySearchFilter.getMetadataFields().size(); j++) {
                    String metadataField = discoverySearchFilter.getMetadataFields().get(j);
                    List<DiscoverySearchFilter> resultingList;
                    if (searchFilters.get(metadataField) != null) {
                        resultingList = searchFilters.get(metadataField);
                    } else {
                        //New metadata field, create a new list for it
                        resultingList = new ArrayList<DiscoverySearchFilter>();
                    }
                    resultingList.add(discoverySearchFilter);

                    searchFilters.put(metadataField, resultingList);
                }
            }

            DiscoverySortConfiguration sortConfiguration = discoveryConfiguration.getSearchSortConfiguration();
            if (sortConfiguration != null) {
                for (DiscoverySortFieldConfiguration discoverySortConfiguration : sortConfiguration
                        .getSortFields()) {
                    sortFields.put(discoverySortConfiguration.getMetadataField(), discoverySortConfiguration);
                }
            }

            DiscoveryRecentSubmissionsConfiguration recentSubmissionConfiguration = discoveryConfiguration
                    .getRecentSubmissionConfiguration();
            if (recentSubmissionConfiguration != null) {
                recentSubmissionsConfigurationMap.put(recentSubmissionConfiguration.getMetadataSortField(),
                        recentSubmissionConfiguration);
            }

            DiscoveryHitHighlightingConfiguration hitHighlightingConfiguration = discoveryConfiguration
                    .getHitHighlightingConfiguration();
            if (hitHighlightingConfiguration != null) {
                List<DiscoveryHitHighlightFieldConfiguration> fieldConfigurations = hitHighlightingConfiguration
                        .getMetadataFields();
                for (DiscoveryHitHighlightFieldConfiguration fieldConfiguration : fieldConfigurations) {
                    hitHighlightingFields.add(fieldConfiguration.getField());
                }
            }
            DiscoveryMoreLikeThisConfiguration moreLikeThisConfiguration = discoveryConfiguration
                    .getMoreLikeThisConfiguration();
            if (moreLikeThisConfiguration != null) {
                for (String metadataField : moreLikeThisConfiguration.getSimilarityMetadataFields()) {
                    moreLikeThisFields.add(metadataField);
                }
            }
        }

        List<String> toProjectionFields = new ArrayList<String>();
        String projectionFieldsString = new DSpace().getConfigurationService()
                .getProperty("discovery.index.projection");
        if (projectionFieldsString != null) {
            if (projectionFieldsString.indexOf(",") != -1) {
                for (int i = 0; i < projectionFieldsString.split(",").length; i++) {
                    toProjectionFields.add(projectionFieldsString.split(",")[i].trim());
                }
            } else {
                toProjectionFields.add(projectionFieldsString);
            }
        }

        DCValue[] mydc = item.getMetadata(Item.ANY, Item.ANY, Item.ANY, Item.ANY);
        for (DCValue meta : mydc) {
            String field = meta.schema + "." + meta.element;
            String unqualifiedField = field;

            String value = meta.value;

            if (value == null) {
                continue;
            }

            if (meta.qualifier != null && !meta.qualifier.trim().equals("")) {
                field += "." + meta.qualifier;
            }

            List<String> toIgnoreMetadataFields = SearchUtils.getIgnoredMetadataFields(item.getType());
            //We are not indexing provenance, this is useless
            if (toIgnoreMetadataFields != null && (toIgnoreMetadataFields.contains(field)
                    || toIgnoreMetadataFields.contains(unqualifiedField + "." + Item.ANY))) {
                continue;
            }

            String authority = null;
            String preferedLabel = null;
            List<String> variants = null;
            boolean isAuthorityControlled = MetadataAuthorityManager.getManager()
                    .isAuthorityControlled(meta.schema, meta.element, meta.qualifier);

            int minConfidence = isAuthorityControlled
                    ? MetadataAuthorityManager.getManager().getMinConfidence(meta.schema, meta.element,
                            meta.qualifier)
                    : Choices.CF_ACCEPTED;

            if (isAuthorityControlled && meta.authority != null && meta.confidence >= minConfidence) {
                boolean ignoreAuthority = new DSpace().getConfigurationService().getPropertyAsType(
                        "discovery.index.authority.ignore." + field, new DSpace().getConfigurationService()
                                .getPropertyAsType("discovery.index.authority.ignore", new Boolean(false)),
                        true);
                if (!ignoreAuthority) {
                    authority = meta.authority;

                    boolean ignorePrefered = new DSpace().getConfigurationService()
                            .getPropertyAsType("discovery.index.authority.ignore-prefered." + field,
                                    new DSpace().getConfigurationService().getPropertyAsType(
                                            "discovery.index.authority.ignore-prefered", new Boolean(false)),
                                    true);
                    if (!ignorePrefered) {

                        preferedLabel = ChoiceAuthorityManager.getManager().getLabel(meta.schema, meta.element,
                                meta.qualifier, meta.authority, meta.language);
                    }

                    boolean ignoreVariants = new DSpace().getConfigurationService()
                            .getPropertyAsType("discovery.index.authority.ignore-variants." + field,
                                    new DSpace().getConfigurationService().getPropertyAsType(
                                            "discovery.index.authority.ignore-variants", new Boolean(false)),
                                    true);
                    if (!ignoreVariants) {
                        variants = ChoiceAuthorityManager.getManager().getVariants(meta.schema, meta.element,
                                meta.qualifier, meta.authority, meta.language);
                    }

                }
            }

            if ((searchFilters.get(field) != null
                    || searchFilters.get(unqualifiedField + "." + Item.ANY) != null)) {
                List<DiscoverySearchFilter> searchFilterConfigs = searchFilters.get(field);
                if (searchFilterConfigs == null) {
                    searchFilterConfigs = searchFilters.get(unqualifiedField + "." + Item.ANY);
                }

                for (DiscoverySearchFilter searchFilter : searchFilterConfigs) {
                    Date date = null;
                    String separator = new DSpace().getConfigurationService()
                            .getProperty("discovery.solr.facets.split.char");
                    if (separator == null) {
                        separator = FILTER_SEPARATOR;
                    }
                    if (searchFilter.getType().equals(DiscoveryConfigurationParameters.TYPE_DATE)) {
                        //For our search filters that are dates we format them properly
                        date = toDate(value);
                        if (date != null) {
                            //TODO: make this date format configurable !
                            value = DateFormatUtils.formatUTC(date, "yyyy-MM-dd");
                        }
                    }
                    doc.addField(searchFilter.getIndexFieldName(), value);
                    doc.addField(searchFilter.getIndexFieldName() + "_keyword", value);

                    if (authority != null && preferedLabel == null) {
                        doc.addField(searchFilter.getIndexFieldName() + "_keyword",
                                value + AUTHORITY_SEPARATOR + authority);
                        doc.addField(searchFilter.getIndexFieldName() + "_authority", authority);
                        doc.addField(searchFilter.getIndexFieldName() + "_acid",
                                value.toLowerCase() + separator + value + AUTHORITY_SEPARATOR + authority);
                    }

                    if (preferedLabel != null) {
                        doc.addField(searchFilter.getIndexFieldName(), preferedLabel);
                        doc.addField(searchFilter.getIndexFieldName() + "_keyword", preferedLabel);
                        doc.addField(searchFilter.getIndexFieldName() + "_keyword",
                                preferedLabel + AUTHORITY_SEPARATOR + authority);
                        doc.addField(searchFilter.getIndexFieldName() + "_authority", authority);
                        doc.addField(searchFilter.getIndexFieldName() + "_acid", preferedLabel.toLowerCase()
                                + separator + preferedLabel + AUTHORITY_SEPARATOR + authority);
                    }
                    if (variants != null) {
                        for (String var : variants) {
                            doc.addField(searchFilter.getIndexFieldName() + "_keyword", var);
                            doc.addField(searchFilter.getIndexFieldName() + "_acid",
                                    var.toLowerCase() + separator + var + AUTHORITY_SEPARATOR + authority);
                        }
                    }

                    //Add a dynamic fields for auto complete in search
                    doc.addField(searchFilter.getIndexFieldName() + "_ac",
                            value.toLowerCase() + separator + value);
                    if (preferedLabel != null) {
                        doc.addField(searchFilter.getIndexFieldName() + "_ac",
                                preferedLabel.toLowerCase() + separator + preferedLabel);
                    }
                    if (variants != null) {
                        for (String var : variants) {
                            doc.addField(searchFilter.getIndexFieldName() + "_ac",
                                    var.toLowerCase() + separator + var);
                        }
                    }

                    if (searchFilter.getFilterType().equals(DiscoverySearchFilterFacet.FILTER_TYPE_FACET)) {
                        if (searchFilter.getType().equals(DiscoveryConfigurationParameters.TYPE_TEXT)) {
                            //Add a special filter
                            //We use a separator to split up the lowercase and regular case, this is needed to get our filters in regular case
                            //Solr has issues with facet prefix and cases
                            if (authority != null) {
                                String facetValue = preferedLabel != null ? preferedLabel : value;
                                doc.addField(searchFilter.getIndexFieldName() + "_filter",
                                        facetValue.toLowerCase() + separator + facetValue + AUTHORITY_SEPARATOR
                                                + authority);
                            } else {
                                doc.addField(searchFilter.getIndexFieldName() + "_filter",
                                        value.toLowerCase() + separator + value);
                            }
                        } else if (searchFilter.getType().equals(DiscoveryConfigurationParameters.TYPE_DATE)) {
                            if (date != null) {
                                String indexField = searchFilter.getIndexFieldName() + ".year";
                                doc.addField(searchFilter.getIndexFieldName() + "_keyword",
                                        DateFormatUtils.formatUTC(date, "yyyy"));
                                doc.addField(indexField, DateFormatUtils.formatUTC(date, "yyyy"));
                                //Also save a sort value of this year, this is required for determining the upper & lower bound year of our facet
                                if (doc.getField(indexField + "_sort") == null) {
                                    //We can only add one year so take the first one
                                    doc.addField(indexField + "_sort", DateFormatUtils.formatUTC(date, "yyyy"));
                                }
                            }
                        } else if (searchFilter.getType()
                                .equals(DiscoveryConfigurationParameters.TYPE_HIERARCHICAL)) {
                            HierarchicalSidebarFacetConfiguration hierarchicalSidebarFacetConfiguration = (HierarchicalSidebarFacetConfiguration) searchFilter;
                            String[] subValues = value
                                    .split(hierarchicalSidebarFacetConfiguration.getSplitter());
                            if (hierarchicalSidebarFacetConfiguration.isSkipFirstNodeLevel()
                                    && 1 < subValues.length) {
                                //Remove the first element of our array
                                subValues = (String[]) ArrayUtils.subarray(subValues, 1, subValues.length);
                            }
                            for (int i = 0; i < subValues.length; i++) {
                                StringBuilder valueBuilder = new StringBuilder();
                                for (int j = 0; j <= i; j++) {
                                    valueBuilder.append(subValues[j]);
                                    if (j < i) {
                                        valueBuilder
                                                .append(hierarchicalSidebarFacetConfiguration.getSplitter());
                                    }
                                }

                                String indexValue = valueBuilder.toString().trim();
                                doc.addField(searchFilter.getIndexFieldName() + "_tax_" + i + "_filter",
                                        indexValue.toLowerCase() + separator + indexValue);
                                //We add the field x times that it has occurred
                                for (int j = i; j < subValues.length; j++) {
                                    doc.addField(searchFilter.getIndexFieldName() + "_filter",
                                            indexValue.toLowerCase() + separator + indexValue);
                                    doc.addField(searchFilter.getIndexFieldName() + "_keyword", indexValue);
                                }
                            }
                        }
                    }
                }
            }

            if ((sortFields.get(field) != null || recentSubmissionsConfigurationMap.get(field) != null)
                    && !sortFieldsAdded.contains(field)) {
                //Only add sort value once
                String type;
                if (sortFields.get(field) != null) {
                    type = sortFields.get(field).getType();
                } else {
                    type = recentSubmissionsConfigurationMap.get(field).getType();
                }

                if (type.equals(DiscoveryConfigurationParameters.TYPE_DATE)) {
                    Date date = toDate(value);
                    if (date != null) {
                        doc.addField(field + "_dt", date);
                    } else {
                        log.warn("Error while indexing sort date field, item: " + item.getHandle()
                                + " metadata field: " + field + " date value: " + date);
                    }
                } else {
                    doc.addField(field + "_sort", value);
                }
                sortFieldsAdded.add(field);
            }

            if (hitHighlightingFields.contains(field) || hitHighlightingFields.contains("*")
                    || hitHighlightingFields.contains(unqualifiedField + "." + Item.ANY)) {
                doc.addField(field + "_hl", value);
            }

            if (moreLikeThisFields.contains(field)
                    || moreLikeThisFields.contains(unqualifiedField + "." + Item.ANY)) {
                doc.addField(field + "_mlt", value);
            }

            doc.addField(field, value);
            if (toProjectionFields.contains(field)
                    || toProjectionFields.contains(unqualifiedField + "." + Item.ANY)) {
                StringBuffer variantsToStore = new StringBuffer();
                if (variants != null) {
                    for (String var : variants) {
                        variantsToStore.append(VARIANTS_STORE_SEPARATOR);
                        variantsToStore.append(var);
                    }
                }
                doc.addField(field + "_stored", value + STORE_SEPARATOR + preferedLabel + STORE_SEPARATOR
                        + (variantsToStore.length() > VARIANTS_STORE_SEPARATOR.length()
                                ? variantsToStore.substring(VARIANTS_STORE_SEPARATOR.length())
                                : "null")
                        + STORE_SEPARATOR + authority + STORE_SEPARATOR + meta.language);
            }

            if (meta.language != null && !meta.language.trim().equals("")) {
                String langField = field + "." + meta.language;
                doc.addField(langField, value);
            }
        }

    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }

    log.debug("  Added Metadata");

    try {

        DCValue[] values = item.getMetadata("dc.relation.ispartof");

        if (values != null && values.length > 0 && values[0] != null && values[0].value != null) {
            // group on parent
            String handlePrefix = ConfigurationManager.getProperty("handle.canonical.prefix");
            if (handlePrefix == null || handlePrefix.length() == 0) {
                handlePrefix = "http://hdl.handle.net/";
            }

            doc.addField("publication_grp", values[0].value.replaceFirst(handlePrefix, ""));

        } else {
            // group on self
            doc.addField("publication_grp", item.getHandle());
        }

    } catch (Exception e) {
        log.error(e.getMessage(), e);
    }

    log.debug("  Added Grouping");

    Vector<InputStreamReader> readers = new Vector<InputStreamReader>();

    try {
        // now get full text of any bitstreams in the TEXT bundle
        // trundle through the bundles
        Bundle[] myBundles = item.getBundles();

        for (Bundle myBundle : myBundles) {
            if ((myBundle.getName() != null) && myBundle.getName().equals("TEXT")) {
                // a-ha! grab the text out of the bitstreams
                Bitstream[] myBitstreams = myBundle.getBitstreams();

                for (Bitstream myBitstream : myBitstreams) {
                    try {
                        InputStreamReader is = new InputStreamReader(myBitstream.retrieve()); // get input
                        readers.add(is);

                        // Add each InputStream to the Indexed Document
                        String value = IOUtils.toString(is);
                        doc.addField("fulltext", value);

                        if (hitHighlightingFields.contains("*") || hitHighlightingFields.contains("fulltext")) {
                            doc.addField("fulltext_hl", value);
                        }

                        log.debug("  Added BitStream: " + myBitstream.getStoreNumber() + "   "
                                + myBitstream.getSequenceID() + "   " + myBitstream.getName());

                    } catch (Exception e) {
                        // this will never happen, but compiler is now
                        // happy.
                        log.trace(e.getMessage(), e);
                    }
                }
            }
        }
    } catch (RuntimeException e) {
        log.error(e.getMessage(), e);
    } finally {
        Iterator<InputStreamReader> itr = readers.iterator();
        while (itr.hasNext()) {
            InputStreamReader reader = itr.next();
            if (reader != null) {
                reader.close();
            }
        }
        log.debug("closed " + readers.size() + " readers");
    }

    //Do any additional indexing, depends on the plugins
    List<SolrServiceIndexPlugin> solrServiceIndexPlugins = new DSpace().getServiceManager()
            .getServicesByType(SolrServiceIndexPlugin.class);
    for (SolrServiceIndexPlugin solrServiceIndexPlugin : solrServiceIndexPlugins) {
        solrServiceIndexPlugin.additionalIndex(context, item, doc);
    }

    // write the index and close the inputstreamreaders
    try {
        writeDocument(doc);
        log.info("Wrote Item: " + handle + " to Index");
    } catch (RuntimeException e) {
        log.error("Error while writing item to discovery index: " + handle + " message:" + e.getMessage(), e);
    }
}

From source file:org.eclipse.gyrex.jobs.internal.commands.LsCmd.java

private void printJob(final JobImpl job) throws Exception {
    final StrBuilder info = new StrBuilder();
    info.appendln(job.getId());//  ww w . j a  v  a2s .  c o  m
    info.appendFixedWidthPadLeft("type: ", 26, ' ').appendln(job.getTypeId());
    info.appendFixedWidthPadLeft("state: ", 26, ' ').appendln(job.getState());
    info.appendFixedWidthPadLeft("last start time: ", 26, ' ')
            .appendln(job.getLastStart() > -1
                    ? DateFormatUtils.formatUTC(job.getLastStart(), "yyyy-MM-dd 'at' HH:mm:ss z")
                    : "never");
    info.appendFixedWidthPadLeft("last successfull finish: ", 26, ' ')
            .appendln(job.getLastSuccessfulFinish() > -1
                    ? DateFormatUtils.formatUTC(job.getLastSuccessfulFinish(), "yyyy-MM-dd 'at' HH:mm:ss z")
                    : "never");
    info.appendFixedWidthPadLeft("last result: ", 26, ' ')
            .appendln(job.getLastResult() != null ? job.getLastResult().getMessage() : "(not available)");

    final String activeNodeId = getActiveNodeId(job.getStorageKey());
    info.appendFixedWidthPadLeft("active on: ", 26, ' ')
            .appendln(null != activeNodeId ? activeNodeId : "(not active)");

    final IEclipsePreferences historyNode = CloudPreferncesJobHistoryStorage.getJobsHistoryNode();
    if (historyNode.nodeExists(job.getStorageKey())) {
        final IEclipsePreferences jobHistory = CloudPreferncesJobHistoryStorage
                .getHistoryNode(job.getStorageKey());
        final String[] childrenNames = jobHistory.childrenNames();
        final SortedSet<IJobHistoryEntry> entries = new TreeSet<IJobHistoryEntry>();
        for (final String entryId : childrenNames) {
            entries.add(new StorableBackedJobHistoryEntry(
                    CloudPreferncesJobHistoryStorage.readItem(jobHistory.node(entryId))));
        }

        info.appendNewLine();
        for (final IJobHistoryEntry entry : entries) {
            info.appendln(entry.toString());
        }
    }

    printf("%s", info.toString());
}

From source file:org.eclipse.skalli.commons.FormatUtils.java

/**
 * Returns the given timestamp in the ISO 8601 format <tt>"yyyy-MM-dd'T'HH:mm:ss'Z'"</tt>.
 * Note, the given format also meets the requirement of the xsd:dateTime format used in
 * the REST API. Timezone is always UTC.
 *
 * @param millis  the timestamp to convert.
 *///from  ww w  .  j  ava2 s .c o  m
public static String formatUTC(long millis) {
    return DateFormatUtils.formatUTC(millis, "yyyy-MM-dd'T'HH:mm:ss'Z'"); //$NON-NLS-1$
}

From source file:org.eclipse.skalli.commons.FormatUtils.java

/**
 * Returns the given timestamp in the ISO 8601 format <tt>"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"</tt>
 * including the milliseconds. Timezone is always UTC.
 *
 * @param millis  the timestamp to convert.
 *//*from  w  w w .j  a v a  2s . c om*/
public static String formatUTCWithMillis(long millis) {
    return DateFormatUtils.formatUTC(millis, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); //$NON-NLS-1$
}

From source file:org.eclipse.skalli.core.rest.JSONRestReaderTest.java

@Test
public void testObjectVariousValues() throws Exception {
    UUID uuid = UUID.randomUUID();
    URL url = URLUtils.stringToURL("http://localhost:8080/path");
    long now = (System.currentTimeMillis() / 1000) * 1000; // cut off milliseconds
    JSONRestReader json = getRestReader("{\"a\":\"string\",\"b\":4711,\"c\":3.14,\"d\":true,"
            + "\"e\":[\"x\",\"y\"],\"f\":\"\",\"g\":{\"x\":\"string\"},\"h\":\"" + uuid.toString() + "\","
            + "\"i\":\"" + url.toExternalForm() + "\"," + "\"j\":\""
            + DateFormatUtils.formatUTC(now, "yyyy-MM-dd'T'HH:mm:ss'Z'") + "\"}");
    json.object();//from  w w w .java  2s .c o m
    assertTrue(json.hasMore());
    assertTrue(json.isKey());
    assertTrue(json.isKeyAnyOf("b", "a", "c"));
    assertFalse(json.isKeyAnyOf("x", "y", "z"));
    assertEquals("a", json.key());
    assertFalse(json.isKey());
    assertEquals("string", json.valueString());
    assertTrue(json.hasMore());
    assertEquals("b", json.key());
    assertEquals(4711L, json.valueLong());
    assertTrue(json.hasMore());
    assertEquals("c", json.key());
    assertEquals(3.14d, json.valueDouble(), 0.1d);
    assertTrue(json.hasMore());
    assertEquals("d", json.key());
    assertTrue(json.valueBoolean());
    assertTrue(json.hasMore());
    assertEquals("e", json.key());
    assertTrue(json.isArray());
    json.array();
    assertTrue(json.hasMore());
    assertEquals("x", json.valueString());
    assertTrue(json.hasMore());
    assertEquals("y", json.valueString());
    assertFalse(json.hasMore());
    json.end();
    assertTrue(json.hasMore());
    assertEquals("f", json.key());
    assertEquals("", json.valueString());
    assertTrue(json.hasMore());
    assertEquals("g", json.key());
    assertTrue(json.isObject());
    json.object();
    assertTrue(json.hasMore());
    assertEquals("x", json.key());
    assertEquals("string", json.valueString());
    assertFalse(json.hasMore());
    json.end();
    assertTrue(json.hasMore());
    assertEquals("h", json.key());
    assertEquals(uuid, json.valueUUID());
    assertTrue(json.hasMore());
    assertEquals("i", json.key());
    assertEquals(url, json.valueURL());
    assertTrue(json.hasMore());
    assertEquals("j", json.key());
    assertEquals(now, json.valueDatetime().getTimeInMillis());
    assertFalse(json.hasMore());
    json.end();
}

From source file:org.eclipse.skalli.core.rest.JSONRestReaderTest.java

@Test
public void testAttributes() throws Exception {
    UUID uuid = UUID.randomUUID();
    URL url = URLUtils.stringToURL("http://localhost:8080/path");
    long now = (System.currentTimeMillis() / 1000) * 1000; // cut off milliseconds
    JSONRestReader json = getRestReader("{\"a\":\"string\",\"b\":4711,\"c\":3.14,\"d\":true," + "\"e\":\""
            + uuid.toString() + "\"," + "\"f\":\"" + url.toExternalForm() + "\"," + "\"g\":\""
            + DateFormatUtils.formatUTC(now, "yyyy-MM-dd'T'HH:mm:ss'Z'") + "\"}");
    assertAttributes(json, uuid, url, now);
}

From source file:org.eclipse.skalli.core.rest.JSONRestReaderTest.java

@Test
public void testPrefixedAttributes() throws Exception {
    UUID uuid = UUID.randomUUID();
    URL url = URLUtils.stringToURL("http://localhost:8080/path");
    long now = (System.currentTimeMillis() / 1000) * 1000; // cut off milliseconds
    JSONRestReader json = getRestReader("{\"@a\":\"string\",\"@b\":4711,\"@c\":3.14,\"@d\":true," + "\"@e\":\""
            + uuid.toString() + "\"," + "\"@f\":\"" + url.toExternalForm() + "\"," + "\"@g\":\""
            + DateFormatUtils.formatUTC(now, "yyyy-MM-dd'T'HH:mm:ss'Z'") + "\"}");
    json.set(JSONRestReader.PREFIXED_ATTRIBUTES);
    assertAttributes(json, uuid, url, now);
}

From source file:org.eclipse.skalli.core.rest.JSONRestWriter.java

@Override
public RestWriter date(long millis) throws IOException {
    return value(DateFormatUtils.formatUTC(millis, "yyyy-MM-dd")); //$NON-NLS-1$
}

From source file:org.eclipse.skalli.core.rest.JSONRestWriter.java

@Override
public RestWriter date(String key, long millis) throws IOException {
    return object(key).pair(MILLIS_KEY, millis).value(DateFormatUtils.formatUTC(millis, "yyyy-MM-dd")); //$NON-NLS-1$
}