From c8f61b164f0515cccc8d21f6b9c5a279be818ae6 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 12 Mar 2017 11:41:10 +0100 Subject: [PATCH] Clean up revision formatting Remove open-coded revision formats and use cached formatted revisions where available. Change-Id: I0f41f3f449cb0fd1abab11ef5e93adb636c19b8b Signed-off-by: Robert Varga --- .../MdsalNetconfOperationServiceFactory.java | 2 +- .../library/SchemaServiceToMdsalWriter.java | 7 +-- .../singleton/impl/MasterSalFacade.java | 2 +- .../opendaylight/netconf/cli/io/IOUtil.java | 4 +- .../test/tool/NetconfDeviceSimulator.java | 2 +- .../sal/restconf/impl/RestconfImpl.java | 9 ++- .../utils/RestconfStreamsConstants.java | 4 +- .../restconf/utils/RestconfConstants.java | 2 - .../mapping/RestconfMappingNodeUtil.java | 4 +- .../utils/parser/ParserIdentifier.java | 23 ++++---- .../test/providers/TestJsonBodyReader.java | 4 +- .../TestJsonBodyReaderMountPoint.java | 4 +- .../test/providers/TestXmlBodyReader.java | 4 +- .../TestXmlBodyReaderMountPoint.java | 4 +- .../impl/test/RestGetOperationTest.java | 12 ++-- .../listeners/NotificationListenerTest.java | 55 +++++++++---------- .../jersey/providers/JsonBodyReaderTest.java | 4 +- .../jersey/providers/XmlBodyReaderTest.java | 4 +- .../parser/ParserFieldsParameterTest.java | 6 +- .../context/RestconfSchemaUtilTest.java | 4 +- .../doc/impl/BaseYangSwaggerGenerator.java | 2 +- 21 files changed, 75 insertions(+), 87 deletions(-) diff --git a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java index ef3bbf03e7..cea55b91be 100644 --- a/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java +++ b/netconf/mdsal-netconf-connector/src/main/java/org/opendaylight/netconf/mdsal/connector/MdsalNetconfOperationServiceFactory.java @@ -112,7 +112,7 @@ public class MdsalNetconfOperationServiceFactory implements NetconfOperationServ final SourceIdentifier moduleSourceIdentifier = SourceIdentifier.create(module.getName(), (SimpleDateFormatUtil.DEFAULT_DATE_REV == module.getRevision() ? Optional.absent() : - Optional.of(SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision())))); + Optional.of(module.getQNameModule().getFormattedRevision()))); InputStream sourceStream = null; String source; diff --git a/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java b/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java index e7689f35db..d8fd148aad 100644 --- a/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java +++ b/netconf/mdsal-netconf-yang-library/src/main/java/org/opendaylight/netconf/mdsal/yang/library/SchemaServiceToMdsalWriter.java @@ -31,7 +31,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160409.module.list.module.submodules.SubmoduleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; @@ -113,7 +112,7 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl // TODO Conformance type is always set to Implement value, but it should it really be like this? // TODO Add also deviations and features lists to module entries moduleBuilder.setName(new YangIdentifier(module.getName())) - .setRevision(new OptionalRevision(SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()))) + .setRevision(new OptionalRevision(module.getQNameModule().getFormattedRevision())) .setNamespace(new Uri(module.getNamespace().toString())) .setConformanceType(ConformanceType.Implement) .setSubmodules(createSubmodulesForModule(module)); @@ -126,10 +125,10 @@ public class SchemaServiceToMdsalWriter implements SchemaContextListener, AutoCl for (final Module subModule : module.getSubmodules()) { final SubmoduleBuilder subModuleEntryBuilder = new SubmoduleBuilder(); subModuleEntryBuilder.setName(new YangIdentifier(subModule.getName())) - .setRevision(new OptionalRevision(SimpleDateFormatUtil.getRevisionFormat().format(subModule.getRevision()))); + .setRevision(new OptionalRevision(subModule.getQNameModule().getFormattedRevision())); submodulesList.add(subModuleEntryBuilder.build()); } return new SubmodulesBuilder().setSubmodule(submodulesList).build(); } -} \ No newline at end of file +} diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java index d905fa1dc0..96a6cb1d29 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java @@ -155,7 +155,7 @@ class MasterSalFacade implements AutoCloseable, RemoteDeviceHandler RevisionSourceIdentifier.create(mi.getName(), (SimpleDateFormatUtil.DEFAULT_DATE_REV == mi.getRevision() ? Optional.absent() : - Optional.of(SimpleDateFormatUtil.getRevisionFormat().format(mi.getRevision()))))) + Optional.of(mi.getQNameModule().getFormattedRevision())))) .collect(Collectors.toList()); // send initial data to master actor and create actor for providing it diff --git a/netconf/tools/netconf-cli/src/main/java/org/opendaylight/netconf/cli/io/IOUtil.java b/netconf/tools/netconf-cli/src/main/java/org/opendaylight/netconf/cli/io/IOUtil.java index 3c5310337f..0387889681 100644 --- a/netconf/tools/netconf-cli/src/main/java/org/opendaylight/netconf/cli/io/IOUtil.java +++ b/netconf/tools/netconf-cli/src/main/java/org/opendaylight/netconf/cli/io/IOUtil.java @@ -15,6 +15,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.opendaylight.netconf.cli.reader.ReadingException; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; @@ -35,9 +36,8 @@ public class IOUtil { } public static Date parseDate(final String revision) { - final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); try { - return formatter.parse(revision); + return SimpleDateFormatUtil.getRevisionFormat().parse(revision); } catch (final ParseException e) { throw new IllegalArgumentException("Date not valid", e); } diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java index 3ade59f8a5..2850b5a65f 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java @@ -334,7 +334,7 @@ public class NetconfDeviceSimulator implements Closeable { private void addModuleCapability(final SharedSchemaRepository consumer, final Set capabilities, final Module module) { final SourceIdentifier moduleSourceIdentifier = SourceIdentifier.create(module.getName(), (SimpleDateFormatUtil.DEFAULT_DATE_REV == module.getRevision() ? Optional.absent() : - Optional.of(SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision())))); + Optional.of(module.getQNameModule().getFormattedRevision()))); try { final String moduleContent = new String(consumer.getSchemaSource(moduleSourceIdentifier, YangTextSchemaSource.class) .checkedGet().read()); diff --git a/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java b/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java index 2c025d8e5c..7484a377fb 100644 --- a/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java +++ b/restconf/sal-rest-connector/src/main/java/org/opendaylight/netconf/sal/restconf/impl/RestconfImpl.java @@ -68,6 +68,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types. import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev140708.NotificationOutputTypeGrouping.NotificationOutputType; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -118,8 +119,6 @@ public class RestconfImpl implements RestconfService { private static final int CHAR_NOT_FOUND = -1; - private static final SimpleDateFormat REVISION_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); - private static final String SAL_REMOTE_NAMESPACE = "urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote"; private BrokerFacade broker; @@ -158,7 +157,7 @@ public class RestconfImpl implements RestconfService { static { try { - final Date eventSubscriptionAugRevision = new SimpleDateFormat("yyyy-MM-dd").parse("2014-07-08"); + final Date eventSubscriptionAugRevision = SimpleDateFormatUtil.getRevisionFormat().parse("2014-07-08"); NETCONF_BASE_QNAME = QName.create(QNameModule.create(new URI(NETCONF_BASE), null), NETCONF_BASE_PAYLOAD_NAME); SAL_REMOTE_AUGMENT = QNameModule.create(NAMESPACE_EVENT_SUBSCRIPTION_AUGMENT, eventSubscriptionAugRevision); @@ -418,7 +417,7 @@ public class RestconfImpl implements RestconfService { try { final String moduleName = pathArgs.get(0); final String revision = pathArgs.get(1); - final Date moduleRevision = REVISION_FORMAT.parse(revision); + final Date moduleRevision = SimpleDateFormatUtil.getRevisionFormat().parse(revision); return QName.create(null, moduleRevision, moduleName); } catch (final ParseException e) { LOG.debug("URI has bad format. It should be \'moduleName/yyyy-MM-dd\' " + identifier); @@ -1427,7 +1426,7 @@ public class RestconfImpl implements RestconfService { ControllerContext.findInstanceDataChildrenByName(listModuleSchemaNode, "revision"); final DataSchemaNode revisionSchemaNode = Iterables.getFirst(instanceDataChildrenByName, null); Preconditions.checkState(revisionSchemaNode instanceof LeafSchemaNode); - final String revision = REVISION_FORMAT.format(module.getRevision()); + final String revision = module.getQNameModule().getFormattedRevision(); moduleNodeValues .withChild(Builders.leafBuilder((LeafSchemaNode) revisionSchemaNode).withValue(revision).build()); diff --git a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/restful/utils/RestconfStreamsConstants.java b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/restful/utils/RestconfStreamsConstants.java index 252ec781ba..82bc4a0292 100644 --- a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/restful/utils/RestconfStreamsConstants.java +++ b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/restful/utils/RestconfStreamsConstants.java @@ -10,7 +10,6 @@ package org.opendaylight.restconf.restful.utils; import com.google.common.collect.Sets; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Date; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; @@ -21,6 +20,7 @@ import org.opendaylight.restconf.utils.RestconfConstants; import org.opendaylight.restconf.utils.parser.builder.ParserBuilderConstants; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -74,7 +74,7 @@ public final class RestconfStreamsConstants { static { Date eventSubscriptionAugRevision; try { - eventSubscriptionAugRevision = new SimpleDateFormat("yyyy-MM-dd").parse("2014-07-08"); + eventSubscriptionAugRevision = SimpleDateFormatUtil.getRevisionFormat().parse("2014-07-08"); } catch (final ParseException e) { final String errMsg = "It wasn't possible to convert revision date of sal-remote-augment to date"; LOG.debug(errMsg); diff --git a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/RestconfConstants.java b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/RestconfConstants.java index b6a2f9f067..1ccb30b410 100644 --- a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/RestconfConstants.java +++ b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/RestconfConstants.java @@ -8,7 +8,6 @@ package org.opendaylight.restconf.utils; import com.google.common.base.Splitter; -import java.text.SimpleDateFormat; /** * Util class for Restconf constants. @@ -20,7 +19,6 @@ public final class RestconfConstants { public static final String JSON = "+json"; public static final String MOUNT = "yang-ext:mount"; public static final String IDENTIFIER = "identifier"; - public static final SimpleDateFormat REVISION_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); public static final char SLASH = '/'; public static final Splitter SLASH_SPLITTER = Splitter.on(SLASH); public static final String DRAFT_PATTERN = "restconf/17"; diff --git a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/mapping/RestconfMappingNodeUtil.java b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/mapping/RestconfMappingNodeUtil.java index a0cbaaab74..07a83205e2 100644 --- a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/mapping/RestconfMappingNodeUtil.java +++ b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/mapping/RestconfMappingNodeUtil.java @@ -116,7 +116,7 @@ public final class RestconfMappingNodeUtil { addCommonLeafs(module, mapEntryBuilder, ietfYangLibraryModule); addChildOfModuleBySpecificModuleInternal( IetfYangLibrary.SPECIFIC_MODULE_SCHEMA_LEAF_QNAME, mapEntryBuilder, IetfYangLibrary.BASE_URI_OF_SCHEMA - + module.getName() + "/" + new SimpleDateFormat("yyyy-MM-dd").format(module.getRevision()), + + module.getName() + "/" + module.getQNameModule().getFormattedRevision(), ietfYangLibraryModule); if (!isSubmodule) { addChildOfModuleBySpecificModuleOfListChild(IetfYangLibrary.SPECIFIC_MODULE_NAMESPACE_LEAF_QNAME, @@ -246,7 +246,7 @@ public final class RestconfMappingNodeUtil { addChildOfModuleBySpecificModuleInternal(IetfYangLibrary.SPECIFIC_MODULE_NAME_LEAF_QNAME, mapEntryBuilder, module.getName(), ietfYangLibraryModule); addChildOfModuleBySpecificModuleInternal(IetfYangLibrary.SPECIFIC_MODULE_REVISION_LEAF_QNAME, mapEntryBuilder, - new SimpleDateFormat("yyyy-MM-dd").format(module.getRevision()), ietfYangLibraryModule); + module.getQNameModule().getFormattedRevision(), ietfYangLibraryModule); } /** diff --git a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/parser/ParserIdentifier.java b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/parser/ParserIdentifier.java index 95358244bb..f0aab31b63 100644 --- a/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/parser/ParserIdentifier.java +++ b/restconf/sal-rest-connector/src/main/java/org/opendaylight/restconf/utils/parser/ParserIdentifier.java @@ -10,7 +10,6 @@ package org.opendaylight.restconf.utils.parser; import com.google.common.base.Optional; import com.google.common.base.Splitter; import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import java.text.ParseException; import java.util.Date; import java.util.Iterator; @@ -26,6 +25,7 @@ import org.opendaylight.restconf.parser.IdentifierCodec; import org.opendaylight.restconf.utils.RestconfConstants; import org.opendaylight.restconf.utils.validation.RestconfValidation; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; @@ -107,7 +107,7 @@ public final class ParserIdentifier { break; } } - return new InstanceIdentifierContext(mountYangInstanceIdentifier, def, mountPoint.get(), + return new InstanceIdentifierContext<>(mountYangInstanceIdentifier, def, mountPoint.get(), mountPoint.get().getSchemaContext()); } else { final YangInstanceIdentifier deserialize = IdentifierCodec.deserialize(identifier, schemaContext); @@ -124,7 +124,7 @@ public final class ParserIdentifier { break; } } - return new InstanceIdentifierContext(deserialize, def, null, schemaContext); + return new InstanceIdentifierContext<>(deserialize, def, null, schemaContext); } } @@ -166,27 +166,24 @@ public final class ParserIdentifier { moduleNameAndRevision = identifier; } - final Splitter splitter = Splitter.on(RestconfConstants.SLASH); - final Iterable split = splitter.split(moduleNameAndRevision); - final List pathArgs = Lists.newArrayList(split); + final List pathArgs = RestconfConstants.SLASH_SPLITTER.splitToList(moduleNameAndRevision); if (pathArgs.size() != 2) { - LOG.debug("URI has bad format. It should be \'moduleName/yyyy-MM-dd\' " + identifier); + LOG.debug("URI has bad format '{}'. It should be 'moduleName/yyyy-MM-dd'", identifier); throw new RestconfDocumentedException( "URI has bad format. End of URI should be in format \'moduleName/yyyy-MM-dd\'", ErrorType.PROTOCOL, ErrorTag.INVALID_VALUE); } + final Date moduleRevision; try { - final String moduleName = pathArgs.get(0); - final String revision = pathArgs.get(1); - final Date moduleRevision = RestconfConstants.REVISION_FORMAT.parse(revision); - - return QName.create(null, moduleRevision, moduleName); + moduleRevision = SimpleDateFormatUtil.getRevisionFormat().parse(pathArgs.get(1)); } catch (final ParseException e) { - LOG.debug("URI has bad format. It should be \'moduleName/yyyy-MM-dd\' " + identifier); + LOG.debug("URI has bad format: '{}'. It should be 'moduleName/yyyy-MM-dd'", identifier); throw new RestconfDocumentedException("URI has bad format. It should be \'moduleName/yyyy-MM-dd\'", ErrorType.PROTOCOL, ErrorTag.INVALID_VALUE); } + + return QName.create(null, moduleRevision, pathArgs.get(0)); } /** diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReader.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReader.java index 8c81385780..d455a90d4c 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReader.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReader.java @@ -19,7 +19,6 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import javax.ws.rs.core.MediaType; import org.junit.BeforeClass; @@ -29,6 +28,7 @@ import org.opendaylight.netconf.sal.rest.impl.JsonNormalizedNodeBodyReader; import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -62,7 +62,7 @@ public class TestJsonBodyReader extends AbstractBodyReaderTest { private static QNameModule initializeInstanceIdentifierModule() { try { return QNameModule.create(URI.create("instance:identifier:module"), - new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-17")); + SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-17")); } catch (final ParseException e) { throw new Error(e); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReaderMountPoint.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReaderMountPoint.java index 879445ab3f..a1ebff031c 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReaderMountPoint.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestJsonBodyReaderMountPoint.java @@ -19,7 +19,6 @@ import java.io.File; import java.io.InputStream; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import javax.ws.rs.core.MediaType; import org.junit.BeforeClass; @@ -32,6 +31,7 @@ import org.opendaylight.netconf.sal.restconf.impl.ControllerContext; import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -61,7 +61,7 @@ public class TestJsonBodyReaderMountPoint extends AbstractBodyReaderTest { private static QNameModule initializeInstanceIdentifierModule() { try { return QNameModule.create(URI.create("instance:identifier:module"), - new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-17")); + SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-17")); } catch (final ParseException e) { throw new Error(e); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReader.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReader.java index 6e32f8d276..0a3f14a384 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReader.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReader.java @@ -18,7 +18,6 @@ import java.io.File; import java.io.InputStream; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import javax.ws.rs.core.MediaType; import org.junit.BeforeClass; @@ -28,6 +27,7 @@ import org.opendaylight.netconf.sal.rest.impl.XmlNormalizedNodeBodyReader; import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -58,7 +58,7 @@ public class TestXmlBodyReader extends AbstractBodyReaderTest { private static QNameModule initializeInstanceIdentifierModule() { try { return QNameModule.create(URI.create("instance:identifier:module"), - new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-17")); + SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-17")); } catch (final ParseException e) { throw new Error(e); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReaderMountPoint.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReaderMountPoint.java index 67ae1a23cb..f95090b738 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReaderMountPoint.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/rest/impl/test/providers/TestXmlBodyReaderMountPoint.java @@ -20,7 +20,6 @@ import java.io.File; import java.io.InputStream; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import javax.ws.rs.core.MediaType; import org.junit.BeforeClass; @@ -33,6 +32,7 @@ import org.opendaylight.netconf.sal.restconf.impl.ControllerContext; import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -61,7 +61,7 @@ public class TestXmlBodyReaderMountPoint extends AbstractBodyReaderTest { private static QNameModule initializeInstanceIdentifierModule() { try { return QNameModule.create(URI.create("instance:identifier:module"), - new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-17")); + SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-17")); } catch (final ParseException e) { throw new Error(e); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java index ec1642e55f..43ef9783de 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/test/RestGetOperationTest.java @@ -27,7 +27,6 @@ import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashSet; @@ -61,6 +60,7 @@ import org.opendaylight.netconf.sal.restconf.impl.ControllerContext; import org.opendaylight.netconf.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.netconf.sal.restconf.impl.RestconfImpl; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -201,7 +201,7 @@ public class RestGetOperationTest extends JerseyTest { * @throws ParseException */ @Test - public void getDataWithSlashesBehindMountPoint() throws Exception { + public void getDataWithSlashesBehindMountPoint() throws ParseException { final YangInstanceIdentifier awaitedInstanceIdentifier = prepareInstanceIdentifierForList(); when(brokerFacade.readConfigurationData(any(DOMMountPoint.class), eq(awaitedInstanceIdentifier), Mockito.anyString())).thenReturn(prepareCnDataForSlashesBehindMountPointTest()); @@ -216,7 +216,7 @@ public class RestGetOperationTest extends JerseyTest { assertEquals(200, get(uri, MediaType.APPLICATION_XML)); } - private static YangInstanceIdentifier prepareInstanceIdentifierForList() throws Exception { + private static YangInstanceIdentifier prepareInstanceIdentifierForList() throws ParseException { final List parameters = new ArrayList<>(); final QName qNameCont = newTestModuleQName("cont"); @@ -230,9 +230,9 @@ public class RestGetOperationTest extends JerseyTest { return YangInstanceIdentifier.create(parameters); } - private static QName newTestModuleQName(final String localPart) throws Exception { - final Date revision = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-09"); - final URI uri = new URI("test:module"); + private static QName newTestModuleQName(final String localPart) throws ParseException { + final Date revision = SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-09"); + final URI uri = URI.create("test:module"); return QName.create(uri, revision, localPart); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/streams/listeners/NotificationListenerTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/streams/listeners/NotificationListenerTest.java index 16d8778e9e..1e12b8145e 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/streams/listeners/NotificationListenerTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/streams/listeners/NotificationListenerTest.java @@ -18,7 +18,7 @@ import com.google.common.collect.Lists; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URI; -import java.text.SimpleDateFormat; +import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -36,6 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.sal.restconf.event.subscription.rev14070 import org.opendaylight.yangtools.util.SingletonSet; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -50,6 +51,15 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; public class NotificationListenerTest { + private static final QNameModule MODULE; + static { + try { + MODULE = QNameModule.create(URI.create("notifi:mod"), + SimpleDateFormatUtil.getRevisionFormat().parse("2016-11-23")); + } catch (ParseException e) { + throw new ExceptionInInitializerError(e); + } + } private SchemaContext schmeaCtx; @@ -62,13 +72,11 @@ public class NotificationListenerTest { @Test public void notifi_leafTest() throws Exception { - final QNameModule moduleQName = - QNameModule.create(new URI("notifi:mod"), new SimpleDateFormat("yyyy-MM-dd").parse("2016-11-23")); - final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(moduleQName, "notifi-leaf")); + final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(MODULE, "notifi-leaf")); final DOMNotification notificationData = mock(DOMNotification.class); - final LeafNode leaf = mockLeaf(QName.create(moduleQName, "lf")); + final LeafNode leaf = mockLeaf(QName.create(MODULE, "lf")); final ContainerNode notifiBody = mockCont(schemaPathNotifi.getLastComponent(), leaf); when(notificationData.getType()).thenReturn(schemaPathNotifi); @@ -84,16 +92,12 @@ public class NotificationListenerTest { @Test public void notifi_cont_leafTest() throws Exception { - final QNameModule moduleQName = - QNameModule.create(new URI("notifi:mod"), new SimpleDateFormat("yyyy-MM-dd").parse("2016-11-23")); - - final SchemaPath schemaPathNotifi = - SchemaPath.create(false, QName.create(moduleQName, "notifi-cont")); + final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(MODULE, "notifi-cont")); final DOMNotification notificationData = mock(DOMNotification.class); - final LeafNode leaf = mockLeaf(QName.create(moduleQName, "lf")); - final ContainerNode cont = mockCont(QName.create(moduleQName, "cont"), leaf); + final LeafNode leaf = mockLeaf(QName.create(MODULE, "lf")); + final ContainerNode cont = mockCont(QName.create(MODULE, "cont"), leaf); final ContainerNode notifiBody = mockCont(schemaPathNotifi.getLastComponent(), cont); when(notificationData.getType()).thenReturn(schemaPathNotifi); @@ -110,17 +114,14 @@ public class NotificationListenerTest { @Test public void notifi_list_Test() throws Exception { - final QNameModule moduleQName = - QNameModule.create(new URI("notifi:mod"), new SimpleDateFormat("yyyy-MM-dd").parse("2016-11-23")); - - final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(moduleQName, "notifi-list")); + final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(MODULE, "notifi-list")); final DOMNotification notificationData = mock(DOMNotification.class); - final LeafNode leaf = mockLeaf(QName.create(moduleQName, "lf")); - final MapEntryNode entry = mockMapEntry(QName.create(moduleQName, "lst"), leaf); - final MapNode list = mockList(QName.create(moduleQName, "lst"), entry); - final ContainerNode cont = mockCont(QName.create(moduleQName, "cont"), list); + final LeafNode leaf = mockLeaf(QName.create(MODULE, "lf")); + final MapEntryNode entry = mockMapEntry(QName.create(MODULE, "lst"), leaf); + final MapNode list = mockList(QName.create(MODULE, "lst"), entry); + final ContainerNode cont = mockCont(QName.create(MODULE, "cont"), list); final ContainerNode notifiBody = mockCont(schemaPathNotifi.getLastComponent(), cont); when(notificationData.getType()).thenReturn(schemaPathNotifi); @@ -137,14 +138,11 @@ public class NotificationListenerTest { @Test public void notifi_grpTest() throws Exception { - final QNameModule moduleQName = - QNameModule.create(new URI("notifi:mod"), new SimpleDateFormat("yyyy-MM-dd").parse("2016-11-23")); - - final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(moduleQName, "notifi-grp")); + final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(MODULE, "notifi-grp")); final DOMNotification notificationData = mock(DOMNotification.class); - final LeafNode leaf = mockLeaf(QName.create(moduleQName, "lf")); + final LeafNode leaf = mockLeaf(QName.create(MODULE, "lf")); final ContainerNode notifiBody = mockCont(schemaPathNotifi.getLastComponent(), leaf); when(notificationData.getType()).thenReturn(schemaPathNotifi); @@ -159,14 +157,11 @@ public class NotificationListenerTest { @Test public void notifi_augmTest() throws Exception { - final QNameModule moduleQName = - QNameModule.create(new URI("notifi:mod"), new SimpleDateFormat("yyyy-MM-dd").parse("2016-11-23")); - - final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(moduleQName, "notifi-augm")); + final SchemaPath schemaPathNotifi = SchemaPath.create(false, QName.create(MODULE, "notifi-augm")); final DOMNotification notificationData = mock(DOMNotification.class); - final LeafNode leaf = mockLeaf(QName.create(moduleQName, "lf-augm")); + final LeafNode leaf = mockLeaf(QName.create(MODULE, "lf-augm")); final AugmentationNode augm = mockAugm(leaf); final ContainerNode notifiBody = mockCont(schemaPathNotifi.getLastComponent(), augm); diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/JsonBodyReaderTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/JsonBodyReaderTest.java index 43c4d1ac8e..4b3bb46e97 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/JsonBodyReaderTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/JsonBodyReaderTest.java @@ -19,7 +19,6 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import javax.ws.rs.core.MediaType; import org.junit.BeforeClass; @@ -30,6 +29,7 @@ import org.opendaylight.controller.sal.rest.impl.test.providers.TestXmlBodyReade import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -50,7 +50,7 @@ public class JsonBodyReaderTest extends AbstractBodyReaderTest { private static QNameModule initializeInstanceIdentifierModule() { try { return QNameModule.create(URI.create("instance:identifier:module"), - new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-17")); + SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-17")); } catch (final ParseException e) { throw new Error(e); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/XmlBodyReaderTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/XmlBodyReaderTest.java index ffd3036361..1aef4b1714 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/XmlBodyReaderTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/jersey/providers/XmlBodyReaderTest.java @@ -18,7 +18,6 @@ import java.io.File; import java.io.InputStream; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import javax.ws.rs.core.MediaType; import org.junit.BeforeClass; @@ -28,6 +27,7 @@ import org.opendaylight.controller.md.sal.rest.common.TestRestconfUtils; import org.opendaylight.netconf.sal.restconf.impl.NormalizedNodeContext; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes; import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; @@ -45,7 +45,7 @@ public class XmlBodyReaderTest extends AbstractBodyReaderTest { private static QNameModule initializeInstanceIdentifierModule() { try { return QNameModule.create(URI.create("instance:identifier:module"), - new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-17")); + SimpleDateFormatUtil.getRevisionFormat().parse("2014-01-17")); } catch (final ParseException e) { throw new Error(e); } diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/parser/ParserFieldsParameterTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/parser/ParserFieldsParameterTest.java index 7b6f144851..d6ee71d46c 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/parser/ParserFieldsParameterTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/parser/ParserFieldsParameterTest.java @@ -14,7 +14,6 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.net.URI; -import java.text.SimpleDateFormat; import java.util.List; import java.util.Set; import org.junit.Before; @@ -29,6 +28,7 @@ import org.opendaylight.netconf.sal.restconf.impl.RestconfError.ErrorTag; import org.opendaylight.netconf.sal.restconf.impl.RestconfError.ErrorType; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; @@ -80,7 +80,7 @@ public class ParserFieldsParameterTest { YangParserTestUtils.parseYangSources(TestRestconfUtils.loadFiles("/jukebox")); final QNameModule qNameModule = QNameModule.create(URI.create("http://example.com/ns/example-jukebox"), - new SimpleDateFormat("yyyy-MM-dd").parse("2015-04-04")); + SimpleDateFormatUtil.getRevisionFormat().parse("2015-04-04")); this.jukeboxQName = QName.create(qNameModule, "jukebox"); this.playerQName = QName.create(qNameModule, "player"); @@ -88,7 +88,7 @@ public class ParserFieldsParameterTest { this.augmentedLibraryQName = QName.create( QNameModule.create( URI.create("http://example.com/ns/augmented-jukebox"), - new SimpleDateFormat("yyyy-MM-dd").parse("2016-05-05")), + SimpleDateFormatUtil.getRevisionFormat().parse("2016-05-05")), "augmented-library"); this.albumQName = QName.create(qNameModule, "album"); this.nameQName = QName.create(qNameModule, "name"); diff --git a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/schema/context/RestconfSchemaUtilTest.java b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/schema/context/RestconfSchemaUtilTest.java index d19c0ab565..ec0c7130bf 100644 --- a/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/schema/context/RestconfSchemaUtilTest.java +++ b/restconf/sal-rest-connector/src/test/java/org/opendaylight/restconf/utils/schema/context/RestconfSchemaUtilTest.java @@ -8,7 +8,6 @@ package org.opendaylight.restconf.utils.schema.context; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -17,6 +16,7 @@ import org.junit.Test; import org.mockito.Mockito; import org.opendaylight.netconf.sal.restconf.impl.RestconfDocumentedException; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.SchemaNode; /** @@ -48,7 +48,7 @@ public class RestconfSchemaUtilTest { private static SchemaNode mockSchemaNode(final String origKey) { final SchemaNode mockSchNode = Mockito.mock(SchemaNode.class); Mockito.when(mockSchNode.getQName()) - .thenReturn(QName.create("ns", new SimpleDateFormat("yyyy-MM-dd").format(new Date()), origKey)); + .thenReturn(QName.create("ns", SimpleDateFormatUtil.getRevisionFormat().format(new Date()), origKey)); return mockSchNode; } } diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java index 041548f6bd..c6c7f1d28d 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/impl/BaseYangSwaggerGenerator.java @@ -91,7 +91,7 @@ public class BaseYangSwaggerGenerator { LOG.info("Modules found [{}]", modules.size()); for (final Module module : modules) { - final String revisionString = SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()); + final String revisionString = module.getQNameModule().getFormattedRevision(); final Resource resource = new Resource(); LOG.debug("Working on [{},{}]...", module.getName(), revisionString); final ApiDeclaration doc = -- 2.36.6