From 8f26b05cd244ba588666a4db7b96fb34c1dabf12 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 24 Feb 2017 14:49:30 +0100 Subject: [PATCH] Eliminate custom SimpleDateFormat instances We have SimpleDateFormatUtil to capture a fast revision parser, use that instead of rolling our own. Change-Id: I9b907440b73d721d306d5a946fbee58b8be47bd1 Signed-off-by: Robert Varga --- .../util/FilesystemSchemaSourceCache.java | 7 +++---- .../yangtools/yang/stmt/AugmentTest.java | 6 +++--- .../yangtools/yang/stmt/Bug1412Test.java | 4 ++-- .../yangtools/yang/stmt/CaseStmtTest.java | 3 ++- .../yangtools/yang/stmt/GroupingTest.java | 4 ++-- .../yangtools/yang/stmt/TestUtils.java | 4 ++-- .../yangtools/yang/stmt/UsesAugmentTest.java | 4 ++-- .../yang/stmt/YangParserSimpleTest.java | 8 +++---- .../yangtools/yang/stmt/YangParserTest.java | 14 +++++++------ .../yang/stmt/YangParserWithContextTest.java | 21 ++++++++----------- 10 files changed, 36 insertions(+), 39 deletions(-) diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/repo/util/FilesystemSchemaSourceCache.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/repo/util/FilesystemSchemaSourceCache.java index 9915334bae..e2d7d5d2b7 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/repo/util/FilesystemSchemaSourceCache.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/repo/util/FilesystemSchemaSourceCache.java @@ -7,8 +7,6 @@ */ package org.opendaylight.yangtools.yang.model.repo.util; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; - import com.google.common.base.MoreObjects; import com.google.common.base.Optional; import com.google.common.base.Preconditions; @@ -29,7 +27,6 @@ import java.nio.file.StandardCopyOption; import java.nio.file.attribute.BasicFileAttributes; import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collections; import java.util.Date; import java.util.List; @@ -37,7 +34,9 @@ import java.util.Map; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException; +import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; @@ -186,7 +185,7 @@ public final class FilesystemSchemaSourceCache rpcs = bar.getRpcs(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java index 873d05dc1a..dc34e0af79 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug1412Test.java @@ -11,13 +11,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.net.URI; -import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Set; import org.junit.Test; 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.Module; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; @@ -47,7 +47,7 @@ public class Bug1412Test { assertEquals(1, unknownNodes.size()); final UnknownSchemaNode action = unknownNodes.get(0); - final Date revision = new SimpleDateFormat("yyyy-MM-dd").parse("2014-07-25"); + final Date revision = SimpleDateFormatUtil.getRevisionFormat().parse("2014-07-25"); final QNameModule qm = QNameModule.create(URI.create("urn:test:bug1412"), revision); QName expectedNodeType = QName.create("urn:test:bug1412:ext:definitions", "2014-07-25", "action"); assertEquals(expectedNodeType, action.getNodeType()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java index 25b6130445..23ad0d9710 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/CaseStmtTest.java @@ -21,6 +21,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; 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.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; @@ -43,7 +44,7 @@ public class CaseStmtTest { public void setup() throws Exception { schema = StmtTestUtils.parseYangSources("/case-test"); String date_s = "2015-09-09 00:00:00.0"; - SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + SimpleDateFormat dt = SimpleDateFormatUtil.getRevisionFormat(); Date date = dt.parse(date_s); rootFoo = schema.findModuleByName("foo", date); rootBar = schema.findModuleByName("bar", date); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java index 21afacdcfc..66000237f7 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java @@ -15,7 +15,6 @@ import static org.junit.Assert.assertTrue; import java.net.URI; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Collection; import java.util.Collections; import java.util.Date; @@ -25,6 +24,7 @@ import java.util.Set; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; @@ -436,7 +436,7 @@ public class GroupingTest { assertNotNull(gzz); final URI expectedNS = URI.create("urn:grouping:cascade-uses"); - final Date expectedRev = new SimpleDateFormat("yyyy-MM-dd").parse("2013-07-18"); + final Date expectedRev = SimpleDateFormatUtil.getRevisionFormat().parse("2013-07-18"); final String expectedPref = "cu"; SchemaPath expectedPath; diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TestUtils.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TestUtils.java index 8506d1dc55..9e96f58500 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TestUtils.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TestUtils.java @@ -17,13 +17,13 @@ import java.net.URISyntaxException; import java.net.URL; import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Set; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; @@ -170,7 +170,7 @@ public final class TestUtils { public static Date createDate(final String date) { Date result; - final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + final DateFormat simpleDateFormat = SimpleDateFormatUtil.getRevisionFormat(); try { result = simpleDateFormat.parse(date); } catch (ParseException e) { diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java index 21f472fa7f..4d2b1a2277 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java @@ -16,7 +16,6 @@ import java.io.FileNotFoundException; import java.net.URI; import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayDeque; import java.util.Collection; import java.util.Date; @@ -25,6 +24,7 @@ import java.util.Set; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -48,7 +48,7 @@ public class UsesAugmentTest { @Before public void init() throws FileNotFoundException, ParseException { - final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + final DateFormat simpleDateFormat = SimpleDateFormatUtil.getRevisionFormat(); UG_REV = simpleDateFormat.parse("2013-07-30"); GD_REV = simpleDateFormat.parse("2013-09-04"); } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java index 12dbf849d3..b3f301591d 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java @@ -14,9 +14,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.net.URI; -import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -24,6 +22,7 @@ import java.util.Set; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -42,12 +41,11 @@ public class YangParserSimpleTest { private Date snRev; private final String snPref = "sn"; - private final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); private Set modules; @Before public void init() throws Exception { - snRev = simpleDateFormat.parse("2013-07-30"); + snRev = SimpleDateFormatUtil.getRevisionFormat().parse("2013-07-30"); modules = TestUtils.loadModules(getClass().getResource("/simple-test").toURI()); } @@ -195,7 +193,7 @@ public class YangParserSimpleTest { private static final URI NS = URI.create("urn:opendaylight:simple-nodes"); private static SchemaPath createPath(final String... names) throws ParseException { - final Date rev = new SimpleDateFormat("yyyy-MM-dd").parse("2013-07-30"); + final Date rev = SimpleDateFormatUtil.getRevisionFormat().parse("2013-07-30"); final List path = new ArrayList<>(); for (final String name : names) { diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java index 2a9754d59b..4ef0370e4d 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java @@ -21,7 +21,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -31,6 +30,7 @@ import java.util.Set; import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; @@ -85,7 +85,7 @@ public class YangParserTest { @Before public void init() throws Exception { - final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + final DateFormat simpleDateFormat = SimpleDateFormatUtil.getRevisionFormat(); fooRev = simpleDateFormat.parse("2013-02-27"); barRev = simpleDateFormat.parse("2013-07-03"); bazRev = simpleDateFormat.parse("2013-02-27"); @@ -127,14 +127,16 @@ public class YangParserTest { final URI expectedNamespace = URI.create("urn:opendaylight.bar"); final String expectedPrefix = "bar"; - final ContainerSchemaNode interfaces = (ContainerSchemaNode) bar.getDataChildByName(QName.create(bar.getQNameModule(), "interfaces")); + final ContainerSchemaNode interfaces = (ContainerSchemaNode) bar.getDataChildByName(QName.create( + bar.getQNameModule(), "interfaces")); - final ListSchemaNode ifEntry = (ListSchemaNode) interfaces.getDataChildByName(QName.create(bar.getQNameModule(), "ifEntry")); + final ListSchemaNode ifEntry = (ListSchemaNode) interfaces.getDataChildByName(QName.create(bar.getQNameModule(), + "ifEntry")); // test SchemaNode args final QName expectedQName = QName.create(expectedNamespace, barRev, "ifEntry"); assertEquals(expectedQName, ifEntry.getQName()); - final SchemaPath expectedPath = TestUtils.createPath(true, expectedNamespace, barRev, expectedPrefix, "interfaces", - "ifEntry"); + final SchemaPath expectedPath = TestUtils.createPath(true, expectedNamespace, barRev, expectedPrefix, + "interfaces", "ifEntry"); assertEquals(expectedPath, ifEntry.getPath()); assertNull(ifEntry.getDescription()); assertNull(ifEntry.getReference()); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java index 6f65908263..6fdd1ff438 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserWithContextTest.java @@ -16,7 +16,6 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import java.net.URI; import java.text.DateFormat; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -53,7 +52,6 @@ public class YangParserWithContextTest { private static final URI T1_NS = URI.create("urn:simple.demo.test1"); private static final URI T2_NS = URI.create("urn:simple.demo.test2"); private static final URI T3_NS = URI.create("urn:simple.demo.test3"); - private final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); private static Date rev; private static final StatementStreamSource BAR = sourceForResource("/model/bar.yang"); @@ -72,7 +70,7 @@ public class YangParserWithContextTest { @BeforeClass public static void init() throws ParseException { - final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + final DateFormat simpleDateFormat = SimpleDateFormatUtil.getRevisionFormat(); rev = simpleDateFormat.parse("2013-06-18"); } @@ -100,13 +98,13 @@ public class YangParserWithContextTest { final UnsignedIntegerTypeDefinition leafType = (UnsignedIntegerTypeDefinition) leaf.getType(); QName qname = leafType.getQName(); assertEquals(URI.create("urn:simple.demo.test1"), qname.getNamespace()); - assertEquals(simpleDateFormat.parse("2013-06-18"), qname.getRevision()); + assertEquals(SimpleDateFormatUtil.getRevisionFormat().parse("2013-06-18"), qname.getRevision()); assertEquals("port-number", qname.getLocalName()); final UnsignedIntegerTypeDefinition leafBaseType = leafType.getBaseType(); qname = leafBaseType.getQName(); assertEquals(URI.create("urn:ietf:params:xml:ns:yang:ietf-inet-types"), qname.getNamespace()); - assertEquals(simpleDateFormat.parse("2010-09-24"), qname.getRevision()); + assertEquals(SimpleDateFormatUtil.getRevisionFormat().parse("2010-09-24"), qname.getRevision()); assertEquals("port-number", qname.getLocalName()); final UnsignedIntegerTypeDefinition dscpExt = (UnsignedIntegerTypeDefinition) TestUtils.findTypedef( @@ -250,8 +248,8 @@ public class YangParserWithContextTest { // test grouping path final List path = new ArrayList<>(); - final QName qname = QName.create(URI.create("urn:opendaylight.baz"), simpleDateFormat.parse("2013-02-27"), - "target"); + final QName qname = QName.create(URI.create("urn:opendaylight.baz"), + SimpleDateFormatUtil.getRevisionFormat().parse("2013-02-27"), "target"); path.add(qname); final SchemaPath expectedPath = SchemaPath.create(path, true); assertEquals(expectedPath, usesNode.getGroupingPath()); @@ -326,13 +324,13 @@ public class YangParserWithContextTest { final IdentitySchemaNode identity = identities.iterator().next(); final QName idQName = identity.getQName(); assertEquals(URI.create("urn:simple.demo.test3"), idQName.getNamespace()); - assertEquals(simpleDateFormat.parse("2013-06-18"), idQName.getRevision()); + assertEquals(SimpleDateFormatUtil.getRevisionFormat().parse("2013-06-18"), idQName.getRevision()); assertEquals("pt", idQName.getLocalName()); final IdentitySchemaNode baseIdentity = identity.getBaseIdentity(); final QName idBaseQName = baseIdentity.getQName(); assertEquals(URI.create("urn:custom.types.demo"), idBaseQName.getNamespace()); - assertEquals(simpleDateFormat.parse("2012-04-16"), idBaseQName.getRevision()); + assertEquals(SimpleDateFormatUtil.getRevisionFormat().parse("2012-04-16"), idBaseQName.getRevision()); assertEquals("service-type", idBaseQName.getLocalName()); } @@ -361,7 +359,7 @@ public class YangParserWithContextTest { final UnknownSchemaNode un = unknownNodes.get(0); final QName unType = un.getNodeType(); assertEquals(URI.create("urn:custom.types.demo"), unType.getNamespace()); - assertEquals(simpleDateFormat.parse("2012-04-16"), unType.getRevision()); + assertEquals(SimpleDateFormatUtil.getRevisionFormat().parse("2012-04-16"), unType.getRevision()); assertEquals("mountpoint", unType.getLocalName()); assertEquals("point", un.getNodeParameter()); assertNotNull(un.getExtensionDefinition()); @@ -428,8 +426,7 @@ public class YangParserWithContextTest { assertEquals("system/user ref", dev.getReference()); final URI expectedNS = URI.create("urn:opendaylight.bar"); - final DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); - final Date expectedRev = simpleDateFormat.parse("2013-07-03"); + final Date expectedRev = SimpleDateFormatUtil.getRevisionFormat().parse("2013-07-03"); final List path = new ArrayList<>(); path.add(QName.create(expectedNS, expectedRev, "interfaces")); path.add(QName.create(expectedNS, expectedRev, "ifEntry")); -- 2.36.6