From 043b7275acc4712d396606005a921415527135c0 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 8 Nov 2017 18:27:40 +0100 Subject: [PATCH] YANGTOOLS-706: Refactor YangInferencePipeline YangInferencePipeline needs to be more modular to allow splitting the parser up without sacrificing individual component's ability to test. Create yang.parser.impl.DefaultReactors to hold utilities needed to access a combined RFC6020/RFC7950/RFC8040 reactor and migrate users. Change-Id: I32dac393765fa3f13cb6e181b45fb056897950e4 Signed-off-by: Robert Varga --- .../yang/validator/SystemTestUtils.java | 9 +- .../yang/parser/impl/DefaultReactors.java | 48 ++++++++++ .../yang/parser/impl/package-info.java | 12 +++ .../repo/SharedSchemaContextFactory.java | 11 +-- .../stmt/rfc6020/YangInferencePipeline.java | 28 +++--- .../effective/ConstraintDefinitionsTest.java | 5 +- .../yang/parser/stmt/rfc7950/Bug6874Test.java | 4 +- .../yang/stmt/AugmentArgumentParsingTest.java | 37 ++------ .../yang/stmt/AugmentProcessTest.java | 12 +-- .../yang/stmt/AugmentSimplestTest.java | 4 +- .../yangtools/yang/stmt/Bug6150Test.java | 21 ++--- .../yangtools/yang/stmt/Bug7480Test.java | 37 ++++---- .../yangtools/yang/stmt/Bug8307Test.java | 37 ++++---- .../yangtools/yang/stmt/ChoiceStmtTest.java | 11 +-- .../yang/stmt/DeviationStmtTest.java | 11 +-- .../yang/stmt/EffectiveBuildTest.java | 10 +- .../yang/stmt/EffectiveIdentityTest.java | 17 ++-- .../yang/stmt/EffectiveModuleTest.java | 9 +- .../EffectiveModulesAndSubmodulesTest.java | 11 +-- .../yang/stmt/EffectiveSchemaContextTest.java | 26 +++--- .../yang/stmt/EffectiveStatementTypeTest.java | 12 +-- ...EffectiveUsesRefineAndConstraintsTest.java | 15 +-- .../yang/stmt/ExtensionStmtTest.java | 26 ++---- .../yang/stmt/GroupingAndUsesStmtTest.java | 17 ++-- .../yangtools/yang/stmt/IdentityStmtTest.java | 48 ++++------ .../yang/stmt/IfFeatureResolutionTest.java | 28 +++--- .../yang/stmt/ImportResolutionBasicTest.java | 14 +-- .../yang/stmt/ImportRevisionsTest.java | 40 ++++---- .../yang/stmt/IncludeResolutionTest.java | 17 ++-- .../yang/stmt/IncludeRevisionsTest.java | 38 +++----- .../yang/stmt/IncludedStmtsTest.java | 27 ++---- .../yangtools/yang/stmt/KeyTest.java | 15 +-- .../yangtools/yang/stmt/ListKeysTest.java | 47 +++------- .../yangtools/yang/stmt/ListTest.java | 13 +-- .../yang/stmt/MoreRevisionsTest.java | 10 +- .../yang/stmt/MustAndWhenStmtTest.java | 22 ++--- .../yang/stmt/NotificationStmtTest.java | 14 +-- .../yangtools/yang/stmt/RpcStmtTest.java | 17 ++-- .../yangtools/yang/stmt/StmtTestUtils.java | 21 ++--- .../yangtools/yang/stmt/TestUtils.java | 18 ++-- .../yang/stmt/TypedefSubStmtsTest.java | 14 +-- .../yang/stmt/TypesResolutionTest.java | 34 +++---- .../yang/stmt/YangDataExtensionTest.java | 12 +-- .../yangtools/yang/stmt/YangFileStmtTest.java | 31 +++---- .../yangtools/yang/stmt/YangParserTest.java | 21 ++--- .../yang/stmt/YangParserWithContextTest.java | 91 +++++++------------ .../yang/stmt/YangTypes2StmtTest.java | 9 +- .../yang/stmt/YangTypesStmtTest.java | 10 +- .../yang/stmt/yin/YinFileStmtTest.java | 10 +- .../yang/test/util/YangParserTestUtils.java | 7 +- 50 files changed, 441 insertions(+), 617 deletions(-) create mode 100644 yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/DefaultReactors.java create mode 100644 yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/package-info.java diff --git a/yang/yang-model-validator/src/main/java/org/opendaylight/yangtools/yang/validator/SystemTestUtils.java b/yang/yang-model-validator/src/main/java/org/opendaylight/yangtools/yang/validator/SystemTestUtils.java index d1da05ae43..70fd261c85 100644 --- a/yang/yang-model-validator/src/main/java/org/opendaylight/yangtools/yang/validator/SystemTestUtils.java +++ b/yang/yang-model-validator/src/main/java/org/opendaylight/yangtools/yang/validator/SystemTestUtils.java @@ -28,11 +28,11 @@ import org.opendaylight.yangtools.yang.common.YangConstants; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; final class SystemTestUtils { @@ -87,9 +87,8 @@ final class SystemTestUtils { final List libSources, final Set supportedFeatures) throws ReactorException { Preconditions.checkArgument(testSources != null && !testSources.isEmpty(), "No yang sources"); - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addLibSources(libSources); - reactor.addSources(testSources); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addLibSources(libSources).addSources(testSources); if (supportedFeatures != null) { reactor.setSupportedFeatures(supportedFeatures); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/DefaultReactors.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/DefaultReactors.java new file mode 100644 index 0000000000..086ce9c3ec --- /dev/null +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/DefaultReactors.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2017 Pantheon Technologies, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.yang.parser.impl; + +import com.google.common.annotations.Beta; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.Builder; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; + +/** + * Utility class for instantiating default-configured {@link CrossSourceStatementReactor}s. + * + * @author Robert Varga + */ +@Beta +public final class DefaultReactors { + private static final CrossSourceStatementReactor DEFAULT_REACTOR = createDefaultReactorBuilder().build(); + + private DefaultReactors() { + throw new UnsupportedOperationException(); + } + + /** + * Get a shared default-configured reactor instance. This instance is configured to handle both RFC6020 and RFC7950, + * as well as RFC8040's yang-data extension. + * + * @return a shared default-configured reactor instance. + */ + public static CrossSourceStatementReactor defaultReactor() { + return DEFAULT_REACTOR; + } + + /** + * Return a baseline CrossSourceStatementReactor {@link Builder}. The builder is initialized to the equivalent + * of the reactor returned via {@link #defaultReactor()}, but can be further customized before use. + * + * @return A populated CrossSourceStatementReactor builder. + */ + public static Builder createDefaultReactorBuilder() { + // FIXME: customize with extensions + return YangInferencePipeline.newReactorBuilder(); + } +} diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/package-info.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/package-info.java new file mode 100644 index 0000000000..7e4a928d7c --- /dev/null +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/package-info.java @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2017 Pantheon Technologies, s.r.o. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +/** + * This package holds the 'parser implementation', which really is just glue code holding together the statement + * reactor, base RFC6020/RFC7950 support bundles and supported semantic extensions. + */ +package org.opendaylight.yangtools.yang.parser.impl; \ No newline at end of file diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaContextFactory.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaContextFactory.java index e31305a793..8c1b324497 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaContextFactory.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/repo/SharedSchemaContextFactory.java @@ -31,8 +31,6 @@ import java.util.Set; import javax.annotation.Nonnull; import org.antlr.v4.runtime.ParserRuleContext; import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser.StatementContext; -import org.opendaylight.yangtools.util.concurrent.ExceptionMapper; -import org.opendaylight.yangtools.util.concurrent.ReflectiveExceptionMapper; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactory; @@ -40,18 +38,16 @@ import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; final class SharedSchemaContextFactory implements SchemaContextFactory { - private static final ExceptionMapper MAPPER = ReflectiveExceptionMapper - .create("resolve sources", SchemaResolutionException.class); private static final Logger LOG = LoggerFactory.getLogger(SharedSchemaContextFactory.class); private final Cache, SchemaContext> cache = CacheBuilder.newBuilder().weakValues() @@ -211,8 +207,7 @@ final class SharedSchemaContextFactory implements SchemaContextFactory { res.getResolvedSources(), res.getUnsatisfiedImports()); } - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild( - statementParserMode); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(statementParserMode); if (supportedFeatures.isPresent()) { reactor.setSupportedFeatures(supportedFeatures.get()); } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/YangInferencePipeline.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/YangInferencePipeline.java index a45090486b..5a9cec9e57 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/YangInferencePipeline.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/YangInferencePipeline.java @@ -62,6 +62,7 @@ import org.opendaylight.yangtools.yang.parser.stmt.anyxmlschema.AnyxmlSchemaLoca import org.opendaylight.yangtools.yang.parser.stmt.anyxmlschema.AnyxmlSchemaLocationSupport; import org.opendaylight.yangtools.yang.parser.stmt.openconfig.OpenconfigVersionSupport; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.Builder; import org.opendaylight.yangtools.yang.parser.stmt.rfc7950.ActionStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc7950.AnydataStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc7950.AugmentStatementRfc7950Support; @@ -262,22 +263,23 @@ public final class YangInferencePipeline { .put(ValidationBundleType.SUPPORTED_DATA_NODES, YangValidationBundles.SUPPORTED_DATA_NODES) .build(); - public static final CrossSourceStatementReactor RFC6020_REACTOR = CrossSourceStatementReactor.builder() - .setBundle(ModelProcessingPhase.INIT, INIT_BUNDLE) - .setBundle(ModelProcessingPhase.SOURCE_PRE_LINKAGE, PRE_LINKAGE_BUNDLE) - .setBundle(ModelProcessingPhase.SOURCE_LINKAGE, LINKAGE_BUNDLE) - .setBundle(ModelProcessingPhase.STATEMENT_DEFINITION, STMT_DEF_BUNDLE) - .setBundle(ModelProcessingPhase.FULL_DECLARATION, FULL_DECL_BUNDLE) - .setBundle(ModelProcessingPhase.EFFECTIVE_MODEL, FULL_DECL_BUNDLE) - .setValidationBundle(ValidationBundleType.SUPPORTED_REFINE_SUBSTATEMENTS, + public static Builder newReactorBuilder() { + return CrossSourceStatementReactor.builder() + .setBundle(ModelProcessingPhase.INIT, INIT_BUNDLE) + .setBundle(ModelProcessingPhase.SOURCE_PRE_LINKAGE, PRE_LINKAGE_BUNDLE) + .setBundle(ModelProcessingPhase.SOURCE_LINKAGE, LINKAGE_BUNDLE) + .setBundle(ModelProcessingPhase.STATEMENT_DEFINITION, STMT_DEF_BUNDLE) + .setBundle(ModelProcessingPhase.FULL_DECLARATION, FULL_DECL_BUNDLE) + .setBundle(ModelProcessingPhase.EFFECTIVE_MODEL, FULL_DECL_BUNDLE) + .setValidationBundle(ValidationBundleType.SUPPORTED_REFINE_SUBSTATEMENTS, YangValidationBundles.SUPPORTED_REFINE_SUBSTATEMENTS) - .setValidationBundle(ValidationBundleType.SUPPORTED_AUGMENT_TARGETS, + .setValidationBundle(ValidationBundleType.SUPPORTED_AUGMENT_TARGETS, YangValidationBundles.SUPPORTED_AUGMENT_TARGETS) - .setValidationBundle(ValidationBundleType.SUPPORTED_CASE_SHORTHANDS, + .setValidationBundle(ValidationBundleType.SUPPORTED_CASE_SHORTHANDS, YangValidationBundles.SUPPORTED_CASE_SHORTHANDS) - .setValidationBundle(ValidationBundleType.SUPPORTED_DATA_NODES, - YangValidationBundles.SUPPORTED_DATA_NODES) - .build(); + .setValidationBundle(ValidationBundleType.SUPPORTED_DATA_NODES, + YangValidationBundles.SUPPORTED_DATA_NODES); + } private YangInferencePipeline() { throw new UnsupportedOperationException("Utility class"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java index f1c088f904..fb5281ef44 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ConstraintDefinitionsTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; import static org.junit.Assert.assertEquals; @@ -28,16 +27,16 @@ import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class ConstraintDefinitionsTest { @Test public void testConstraintDefinitions() throws ParseException, ReactorException, URISyntaxException, IOException, YangSyntaxErrorException { - final SchemaContext schemaContext = YangInferencePipeline.RFC6020_REACTOR.newBuild() + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() .addSource(YangStatementStreamSource.create( YangTextSchemaSource.forResource("/constraint-definitions-test/foo.yang"))) .buildEffective(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6874Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6874Test.java index 80113ae8f7..ee8fe24a1d 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6874Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/parser/stmt/rfc7950/Bug6874Test.java @@ -23,10 +23,10 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; import org.opendaylight.yangtools.yang.stmt.StmtTestUtils; public class Bug6874Test { @@ -84,7 +84,7 @@ public class Bug6874Test { @Test public void descriptionAndReferenceTest11() throws ReactorException { - YangInferencePipeline.RFC6020_REACTOR.newBuild() + DefaultReactors.defaultReactor().newBuild() .addSources(ROOT_MODULE, CHILD_MODULE, CHILD_MODULE_1, IMPORTED_MODULE) .build().getRootStatements().forEach(declaredStmt -> { if (declaredStmt instanceof ModuleStatement) { diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentArgumentParsingTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentArgumentParsingTest.java index 03c098e0c8..60995aefc6 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentArgumentParsingTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentArgumentParsingTest.java @@ -15,12 +15,12 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import org.junit.Ignore; import org.junit.Test; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class AugmentArgumentParsingTest { @@ -43,19 +43,15 @@ public class AugmentArgumentParsingTest { @Test public void validAugAbsTest() throws ReactorException { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(IMPORTED, VALID_ARGS); - - final EffectiveModelContext result = reactor.build(); + final EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(IMPORTED, VALID_ARGS) + .build(); assertNotNull(result); } @Test public void invalidAugRel1Test() { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(INVALID_REL1); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(INVALID_REL1); try { reactor.build(); @@ -67,9 +63,7 @@ public class AugmentArgumentParsingTest { @Test public void invalidAugRel2Test() { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(INVALID_REL2); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(INVALID_REL2); try { reactor.build(); @@ -81,9 +75,7 @@ public class AugmentArgumentParsingTest { @Test public void invalidAugAbs() { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(INVALID_ABS); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(INVALID_ABS); try { reactor.build(); @@ -95,9 +87,7 @@ public class AugmentArgumentParsingTest { @Test public void invalidAugAbsPrefixedNoImp() { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(INVALID_ABS_PREFIXED_NO_IMP); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(INVALID_ABS_PREFIXED_NO_IMP); try { reactor.build(); @@ -110,21 +100,14 @@ public class AugmentArgumentParsingTest { @Test(expected = IllegalArgumentException.class) @Ignore public void invalidAugEmptyTest() throws ReactorException { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(INVALID_EMPTY); - - reactor.build(); + DefaultReactors.defaultReactor().newBuild().addSources(INVALID_EMPTY).build(); fail("reactor.process should fail due to empty path"); } @Test(expected = IllegalArgumentException.class) @Ignore public void invalidAugXPathTest() throws ReactorException { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(INVALID_XPATH); - reactor.build(); + DefaultReactors.defaultReactor().newBuild().addSources(INVALID_XPATH).build(); fail("reactor.process should fail due to invalid XPath"); } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java index 8d7f688e96..a75a500479 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentProcessTest.java @@ -27,10 +27,10 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class AugmentProcessTest { @@ -86,7 +86,7 @@ public class AugmentProcessTest { @Test public void multipleAugmentsAndMultipleModulesTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSources(MULTIPLE_AUGMENT_ROOT, MULTIPLE_AUGMENT_IMPORTED, MULTIPLE_AUGMENT_SUBMODULE) .buildEffective(); assertNotNull(result); @@ -94,7 +94,7 @@ public class AugmentProcessTest { @Test public void multipleAugmentTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSource(MULTIPLE_AUGMENT) .buildEffective(); assertNotNull(result); @@ -102,7 +102,7 @@ public class AugmentProcessTest { @Test(expected = SomeModifiersUnresolvedException.class) public void multipleAugmentIncorrectPathTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSource(MULTIPLE_AUGMENT_INCORRECT) .buildEffective(); assertNull(result); @@ -110,7 +110,7 @@ public class AugmentProcessTest { @Test(expected = SomeModifiersUnresolvedException.class) public void multipleAugmentIncorrectPathAndGrpTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSource(MULTIPLE_AUGMENT_INCORRECT2) .buildEffective(); assertNull(result); @@ -118,7 +118,7 @@ public class AugmentProcessTest { @Test public void readAndParseYangFileTest() throws ReactorException { - final SchemaContext root = YangInferencePipeline.RFC6020_REACTOR.newBuild() + final SchemaContext root = DefaultReactors.defaultReactor().newBuild() .addSources(AUGMENTED, ROOT) .buildEffective(); assertNotNull(root); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentSimplestTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentSimplestTest.java index b6f8d39a09..9625715697 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentSimplestTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentSimplestTest.java @@ -12,11 +12,11 @@ import static org.junit.Assert.assertNotNull; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import org.junit.Test; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class AugmentSimplestTest { @@ -26,7 +26,7 @@ public class AugmentSimplestTest { @Test public void readAndParseYangFileTest() throws SourceException, ReactorException { - EffectiveModelContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() .addSources(AUGMENTED, ROOT) .build(); assertNotNull(result); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6150Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6150Test.java index fa286903d4..7ec87a6251 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6150Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug6150Test.java @@ -12,10 +12,9 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class Bug6150Test { @@ -25,25 +24,25 @@ public class Bug6150Test { @Test public void effectiveAugmentFirstTest() throws ReactorException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(TARGET, AUGMENT_FIRST); - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(TARGET, AUGMENT_FIRST) + .buildEffective(); assertNotNull(result); } @Test public void effectiveAugmentSecondTest() throws ReactorException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(TARGET, AUGMENT_SECOND); - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(TARGET, AUGMENT_SECOND) + .buildEffective(); assertNotNull(result); } @Test public void effectiveAugmentBothTest() throws ReactorException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(TARGET, AUGMENT_FIRST, AUGMENT_SECOND); - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(TARGET, AUGMENT_FIRST, AUGMENT_SECOND) + .buildEffective(); assertNotNull(result); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java index 99f0632c76..02eadfb6ca 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug7480Test.java @@ -18,9 +18,8 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class Bug7480Test { @Test @@ -62,14 +61,15 @@ public class Bug7480Test { public void testHandlingOfMainSourceConflictingWithLibSource() throws Exception { // parent module as main source and as lib source at the same time // parser should remove it from the required lib sources and thus avoid module namespace collision - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSource(StmtTestUtils.sourceForResource( - "/bugs/bug7480/main-source-lib-source-conflict-test/parent-module.yang")); - reactor.addLibSources(StmtTestUtils.sourceForResource( - "/bugs/bug7480/main-source-lib-source-conflict-test/child-module.yang"), - StmtTestUtils.sourceForResource( - "/bugs/bug7480/main-source-lib-source-conflict-test/parent-module.yang")); - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSource(StmtTestUtils.sourceForResource( + "/bugs/bug7480/main-source-lib-source-conflict-test/parent-module.yang")) + .addLibSources( + StmtTestUtils.sourceForResource( + "/bugs/bug7480/main-source-lib-source-conflict-test/child-module.yang"), + StmtTestUtils.sourceForResource( + "/bugs/bug7480/main-source-lib-source-conflict-test/parent-module.yang")) + .buildEffective(); assertNotNull(schemaContext); } @@ -77,14 +77,15 @@ public class Bug7480Test { public void testHandlingOfMainSourceConflictingWithLibSource2() throws Exception { // submodule as main source and as lib source at the same time // parser should remove it from the required lib sources and thus avoid submodule name collision - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSource(StmtTestUtils.sourceForResource( - "/bugs/bug7480/main-source-lib-source-conflict-test/child-module.yang")); - reactor.addLibSources(StmtTestUtils.sourceForResource( - "/bugs/bug7480/main-source-lib-source-conflict-test/parent-module.yang"), - StmtTestUtils.sourceForResource( - "/bugs/bug7480/main-source-lib-source-conflict-test/child-module.yang")); - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSource(StmtTestUtils.sourceForResource( + "/bugs/bug7480/main-source-lib-source-conflict-test/child-module.yang")) + .addLibSources( + StmtTestUtils.sourceForResource( + "/bugs/bug7480/main-source-lib-source-conflict-test/parent-module.yang"), + StmtTestUtils.sourceForResource( + "/bugs/bug7480/main-source-lib-source-conflict-test/child-module.yang")) + .buildEffective(); assertNotNull(schemaContext); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java index 57105fdaff..a3ce81bbc0 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/Bug8307Test.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertNotNull; @@ -27,11 +26,11 @@ import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; public class Bug8307Test { @@ -76,11 +75,10 @@ public class Bug8307Test { final Map> modulesWithSupportedDeviations = ImmutableMap.of( foo, ImmutableSet.of(bar, baz), bar, ImmutableSet.of(baz)); - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, BAR_MODULE, BAZ_MODULE, FOOBAR_MODULE); - reactor.setModulesWithSupportedDeviations(modulesWithSupportedDeviations); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, BAR_MODULE, BAZ_MODULE, FOOBAR_MODULE) + .setModulesWithSupportedDeviations(modulesWithSupportedDeviations) + .buildEffective(); assertNotNull(schemaContext); assertNull(SchemaContextUtil.findDataSchemaNode(schemaContext, SchemaPath.create(true, myFooContA))); @@ -92,10 +90,9 @@ public class Bug8307Test { @Test public void testDeviationsSupportedInAllModules() throws Exception { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, BAR_MODULE, BAZ_MODULE, FOOBAR_MODULE); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, BAR_MODULE, BAZ_MODULE, FOOBAR_MODULE) + .buildEffective(); assertNotNull(schemaContext); assertNull(SchemaContextUtil.findDataSchemaNode(schemaContext, SchemaPath.create(true, myFooContA))); @@ -107,11 +104,10 @@ public class Bug8307Test { @Test public void testDeviationsSupportedInNoModule() throws Exception { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, BAR_MODULE, BAZ_MODULE, FOOBAR_MODULE); - reactor.setModulesWithSupportedDeviations(ImmutableMap.of()); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, BAR_MODULE, BAZ_MODULE, FOOBAR_MODULE) + .setModulesWithSupportedDeviations(ImmutableMap.of()) + .buildEffective(); assertNotNull(schemaContext); assertNotNull(SchemaContextUtil.findDataSchemaNode(schemaContext, SchemaPath.create(true, myFooContA))); @@ -123,8 +119,7 @@ public class Bug8307Test { @Test public void shouldFailOnAttemptToDeviateTheSameModule() { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_INVALID_MODULE); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(FOO_INVALID_MODULE); try { reactor.buildEffective(); @@ -139,8 +134,8 @@ public class Bug8307Test { @Test public void shouldFailOnAttemptToDeviateTheSameModule2() { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(BAR_INVALID_MODULE, BAZ_INVALID_MODULE); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSources(BAR_INVALID_MODULE, BAZ_INVALID_MODULE); try { reactor.buildEffective(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ChoiceStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ChoiceStmtTest.java index aa6564d9ad..e078df078c 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ChoiceStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ChoiceStmtTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertEquals; @@ -19,10 +18,9 @@ import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class ChoiceStmtTest { @@ -33,10 +31,9 @@ public class ChoiceStmtTest { @Test public void choiceAndCaseTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(CHOICE_MODULE, IMPORTED_MODULE1, IMPORTED_MODULE2, INCLUDED_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(CHOICE_MODULE, IMPORTED_MODULE1, IMPORTED_MODULE2, INCLUDED_MODULE) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("foo").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java index bb857bd77d..8faca7d8df 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/DeviationStmtTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertEquals; @@ -26,10 +25,9 @@ import org.opendaylight.yangtools.yang.model.api.Deviation; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class DeviationStmtTest { @@ -40,10 +38,9 @@ public class DeviationStmtTest { @Test public void testDeviationAndDeviate() throws ReactorException, ParseException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, FOO_IMP_MODULE, BAR_MODULE, BAR_IMP_MODULE); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, FOO_IMP_MODULE, BAR_MODULE, BAR_IMP_MODULE) + .buildEffective(); assertNotNull(schemaContext); Module testModule = schemaContext.findModule("foo", Revision.of("2016-06-23")).get(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java index 59247e0ad3..750c316644 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.yangtools.yang.stmt; import static org.junit.Assert.assertEquals; @@ -28,9 +27,9 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class EffectiveBuildTest { @@ -42,7 +41,7 @@ public class EffectiveBuildTest { @Test public void effectiveBuildTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild().addSources(SIMPLE_MODULE) + SchemaContext result = DefaultReactors.defaultReactor().newBuild().addSources(SIMPLE_MODULE) .buildEffective(); assertNotNull(result); @@ -89,12 +88,11 @@ public class EffectiveBuildTest { assertEquals(SchemaPath.create(true, q1, q2, q3), subSubCon.getPath()); assertEquals(SchemaPath.create(true, q4, q5, q6), subSubCon2.getPath()); assertEquals(SchemaPath.create(true, q7, q5, q6), grpSubSubCon2.getPath()); - } @Test public void extensionsTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild().addSource(YANG_EXT).buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild().addSource(YANG_EXT).buildEffective(); assertNotNull(result); Set groupings = result.getGroupings(); @@ -114,7 +112,7 @@ public class EffectiveBuildTest { @Test public void mockTest() throws ReactorException, FileNotFoundException, URISyntaxException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild().addSource(YANG_EXT).buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild().addSource(YANG_EXT).buildEffective(); assertNotNull(result); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveIdentityTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveIdentityTest.java index 057fec2ce3..4386222cc3 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveIdentityTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveIdentityTest.java @@ -21,12 +21,12 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class EffectiveIdentityTest { @@ -37,12 +37,10 @@ public class EffectiveIdentityTest { "/stmt-test/identity/cyclic-identity-test.yang"); @Test(expected = SomeModifiersUnresolvedException.class) - public void cyclicefineTest() throws SourceException, ReactorException, - URISyntaxException { + public void cyclicefineTest() throws SourceException, ReactorException, URISyntaxException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR - .newBuild(); - reactor.addSources(CYCLIC_IDENTITY_TEST); + CrossSourceStatementReactor.BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSources(CYCLIC_IDENTITY_TEST); try { reactor.buildEffective(); } catch (SomeModifiersUnresolvedException e) { @@ -54,10 +52,9 @@ public class EffectiveIdentityTest { @Test public void identityTest() throws SourceException, ReactorException, URISyntaxException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(IDENTITY_TEST); - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(IDENTITY_TEST) + .buildEffective(); assertNotNull(result); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java index 7a5a4482b6..e53fc486ec 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java @@ -35,11 +35,10 @@ import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class EffectiveModuleTest { @@ -62,9 +61,9 @@ public class EffectiveModuleTest { @Test public void effectiveBuildTest() throws SourceException, ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_MODULE, IMPORTED_MODULE, SUBMODULE); - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_MODULE, IMPORTED_MODULE, SUBMODULE) + .buildEffective(); assertNotNull(result); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java index 0197038fdc..845c11b675 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModulesAndSubmodulesTest.java @@ -23,10 +23,9 @@ import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class EffectiveModulesAndSubmodulesTest { @@ -45,11 +44,9 @@ public class EffectiveModulesAndSubmodulesTest { @Test public void modulesAndSubmodulesSimpleReferencesTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR - .newBuild(); - reactor.addSources(ROOT_MODULE, IMPORTED_MODULE, - SUBMODULE_1, SUBMODULE_2, SUBMODULE_TO_SUBMODULE_1); - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_MODULE, IMPORTED_MODULE, SUBMODULE_1, SUBMODULE_2, SUBMODULE_TO_SUBMODULE_1) + .buildEffective(); assertNotNull(result); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java index 6fd4f9d8a7..ac8c72f9ba 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java @@ -36,28 +36,24 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.util.SimpleSchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveSchemaContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class EffectiveSchemaContextTest { @Test public void testEffectiveSchemaContext() throws ReactorException, ParseException, URISyntaxException, IOException, YangSyntaxErrorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final YangStatementStreamSource source1 = YangStatementStreamSource.create(YangTextSchemaSource.forResource( - "/effective-schema-context-test/foo.yang")); - final YangStatementStreamSource source2 = YangStatementStreamSource.create(YangTextSchemaSource.forResource( - "/effective-schema-context-test/bar.yang")); - final YangStatementStreamSource source3 = YangStatementStreamSource.create(YangTextSchemaSource.forResource( - "/effective-schema-context-test/baz.yang")); - - reactor.addSources(source1, source2, source3); - final SchemaContext schemaContext = reactor.buildEffective(); + final EffectiveSchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSource(YangStatementStreamSource.create(YangTextSchemaSource.forResource( + "/effective-schema-context-test/foo.yang"))) + .addSource(YangStatementStreamSource.create(YangTextSchemaSource.forResource( + "/effective-schema-context-test/bar.yang"))) + .addSource(YangStatementStreamSource.create(YangTextSchemaSource.forResource( + "/effective-schema-context-test/baz.yang"))) + .buildEffective(); assertNotNull(schemaContext); final Set dataDefinitions = schemaContext.getDataDefinitions(); @@ -100,8 +96,8 @@ public class EffectiveSchemaContextTest { Module fooModule = schemaContext.findModule("foo", Revision.of("2016-09-21")).get(); assertEquals(3, schemaContext.getModules().size()); - assertEquals(3, ((EffectiveSchemaContext) schemaContext).getRootDeclaredStatements().size()); - assertEquals(3,((EffectiveSchemaContext) schemaContext).getRootEffectiveStatements().size()); + assertEquals(3, schemaContext.getRootDeclaredStatements().size()); + assertEquals(3, schemaContext.getRootEffectiveStatements().size()); final Set modules = schemaContext.getModules(); final SchemaContext copiedSchemaContext = SimpleSchemaContext.forModules(modules); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveStatementTypeTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveStatementTypeTest.java index e7238016ff..241d3827c2 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveStatementTypeTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveStatementTypeTest.java @@ -40,10 +40,8 @@ import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint; import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.LeafEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.BitsSpecificationEffectiveStatementImpl; import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.Decimal64SpecificationEffectiveStatementImpl; @@ -54,8 +52,6 @@ import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.Patter import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.type.UnionSpecificationEffectiveStatementImpl; public class EffectiveStatementTypeTest { - - private static final StatementStreamSource IMPORTED_MODULE = sourceForResource("/type-tests/types.yang"); private static SchemaContext effectiveSchemaContext; private static Module types; @@ -63,9 +59,9 @@ public class EffectiveStatementTypeTest { @BeforeClass public static void setup() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSource(IMPORTED_MODULE); - effectiveSchemaContext = reactor.buildEffective(); + effectiveSchemaContext = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/type-tests/types.yang")) + .buildEffective(); types = effectiveSchemaContext.findModules("types").iterator().next(); assertNotNull(types); } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveUsesRefineAndConstraintsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveUsesRefineAndConstraintsTest.java index 1d564cc636..d65bc5a60f 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveUsesRefineAndConstraintsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveUsesRefineAndConstraintsTest.java @@ -28,23 +28,16 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class EffectiveUsesRefineAndConstraintsTest { - private static final StatementStreamSource REFINE_TEST = sourceForResource("/stmt-test/uses/refine-test.yang"); - @Test public void refineTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - reactor.addSources(REFINE_TEST); - - SchemaContext result = reactor.buildEffective(); - + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/stmt-test/uses/refine-test.yang")) + .buildEffective(); assertNotNull(result); Set modules = result.getModules(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ExtensionStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ExtensionStmtTest.java index 2db7a1df3f..6eaa3a78af 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ExtensionStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ExtensionStmtTest.java @@ -21,25 +21,15 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class ExtensionStmtTest { - - private static final StatementStreamSource EXT_DEF_MODULE = sourceForResource("/model/bar.yang"); - private static final StatementStreamSource EXT_DEF_MODULE2 = sourceForResource( - "/semantic-statement-parser/ext-typedef.yang"); - private static final StatementStreamSource EXT_USE_MODULE = sourceForResource( - "/semantic-statement-parser/ext-use.yang"); - @Test public void testExtensionDefinition() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(EXT_DEF_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/model/bar.yang")) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("bar").iterator().next(); @@ -56,10 +46,10 @@ public class ExtensionStmtTest { @Test public void testExtensionUsage() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(EXT_DEF_MODULE2, EXT_USE_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/semantic-statement-parser/ext-typedef.yang")) + .addSource(sourceForResource("/semantic-statement-parser/ext-use.yang")) + .buildEffective(); assertNotNull(result); final Module testModule1 = result.findModules("ext-typedef").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingAndUsesStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingAndUsesStmtTest.java index b4fa7843fb..f53f0c929c 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingAndUsesStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingAndUsesStmtTest.java @@ -33,10 +33,9 @@ import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.UsesNode; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class GroupingAndUsesStmtTest { @@ -47,10 +46,9 @@ public class GroupingAndUsesStmtTest { @Test public void groupingTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(MODULE, GROUPING_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(MODULE, GROUPING_MODULE) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("baz").iterator().next(); @@ -94,10 +92,9 @@ public class GroupingAndUsesStmtTest { @Test public void usesAndRefinesTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(MODULE, SUBMODULE, GROUPING_MODULE, USES_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(MODULE, SUBMODULE, GROUPING_MODULE, USES_MODULE) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("foo").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IdentityStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IdentityStmtTest.java index 96364cf809..dacebb5c39 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IdentityStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IdentityStmtTest.java @@ -21,17 +21,15 @@ import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class IdentityStmtTest { - private static final StatementStreamSource ILLEGAL_IDENTITY_MODULE = - sourceForResource("/identity/identitytest.yang"); - + private static final StatementStreamSource ILLEGAL_IDENTITY_MODULE = sourceForResource( + "/identity/identitytest.yang"); private static final StatementStreamSource ILLEGAL_IDENTITY_MODULE2 = sourceForResource( "/identity/prefixidentitytest.yang"); private static final StatementStreamSource LEGAL_IDENTITY_MODULE = sourceForResource( @@ -47,46 +45,35 @@ public class IdentityStmtTest { @Test(expected = SomeModifiersUnresolvedException.class) public void selfReferencingIdentityTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ILLEGAL_IDENTITY_MODULE); - - SchemaContext result = reactor.buildEffective(); - assertNotNull(result); + DefaultReactors.defaultReactor().newBuild().addSource(ILLEGAL_IDENTITY_MODULE).buildEffective(); } @Test(expected = SomeModifiersUnresolvedException.class) public void selfReferencingIdentityWithPrefixTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ILLEGAL_IDENTITY_MODULE2); - - SchemaContext result = reactor.buildEffective(); - assertNotNull(result); + DefaultReactors.defaultReactor().newBuild().addSource(ILLEGAL_IDENTITY_MODULE2).buildEffective(); } @Test public void importedIdentityTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(LEGAL_IDENTITY_MODULE, LEGAL_IDENTITY_MODULE2); - - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(LEGAL_IDENTITY_MODULE, LEGAL_IDENTITY_MODULE2) + .buildEffective(); assertNotNull(result); } @Test(expected = SomeModifiersUnresolvedException.class) public void selfReferencingIdentityThroughChaining() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ILLEGAL_IDENTITY_MODULE3); - - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(ILLEGAL_IDENTITY_MODULE3) + .buildEffective(); assertNotNull(result); } @Test public void chainedIdentityTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(LEGAL_IDENTITY_MODULE3); - - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(LEGAL_IDENTITY_MODULE3) + .buildEffective(); assertNotNull(result); Module testModule = result.findModules("legal-chained-identity-test").iterator().next(); @@ -115,10 +102,9 @@ public class IdentityStmtTest { @Test public void duplicateIdentityTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(DUPLICATE_IDENTITY_MODULE); - - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(DUPLICATE_IDENTITY_MODULE) + .buildEffective(); assertNotNull(result); Module testModule = result.findModules("duplicate-identity-test").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IfFeatureResolutionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IfFeatureResolutionTest.java index 1080b512db..f7f2e9d29d 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IfFeatureResolutionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IfFeatureResolutionTest.java @@ -22,10 +22,9 @@ import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class IfFeatureResolutionTest { @@ -40,11 +39,10 @@ public class IfFeatureResolutionTest { QName.create("foo-namespace", "test-feature-3"), QName.create("bar-namespace", "imp-feature")); - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, BAR_MODULE); - reactor.setSupportedFeatures(supportedFeatures); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, BAR_MODULE) + .setSupportedFeatures(supportedFeatures) + .buildEffective(); assertNotNull(schemaContext); final Module testModule = schemaContext.findModule("foo").get(); @@ -145,10 +143,9 @@ public class IfFeatureResolutionTest { @Test public void testAllFeaturesSupported() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, BAR_MODULE); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, BAR_MODULE) + .buildEffective(); assertNotNull(schemaContext); final Module testModule = schemaContext.findModules("foo").iterator().next(); @@ -272,11 +269,10 @@ public class IfFeatureResolutionTest { @Test public void testNoFeaturesSupported() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOO_MODULE, BAR_MODULE); - reactor.setSupportedFeatures(ImmutableSet.of()); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .addSources(FOO_MODULE, BAR_MODULE) + .setSupportedFeatures(ImmutableSet.of()) + .buildEffective(); assertNotNull(schemaContext); final Module testModule = schemaContext.findModules("foo").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportResolutionBasicTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportResolutionBasicTest.java index 2e832f03ed..5a925d3d30 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportResolutionBasicTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportResolutionBasicTest.java @@ -16,13 +16,13 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class ImportResolutionBasicTest { @@ -46,7 +46,7 @@ public class ImportResolutionBasicTest { @Test public void inImportOrderTest() throws ReactorException { - EffectiveModelContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() .addSources(ROOT_WITHOUT_IMPORT, IMPORT_ROOT, IMPORT_DERIVED) .build(); assertNotNull(result); @@ -54,7 +54,7 @@ public class ImportResolutionBasicTest { @Test public void inInverseOfImportOrderTest() throws ReactorException { - EffectiveModelContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() .addSources(IMPORT_DERIVED, IMPORT_ROOT, ROOT_WITHOUT_IMPORT) .build(); assertNotNull(result); @@ -62,7 +62,7 @@ public class ImportResolutionBasicTest { @Test public void missingImportedSourceTest() { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild() + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() .addSources(IMPORT_DERIVED, ROOT_WITHOUT_IMPORT); try { reactor.build(); @@ -76,7 +76,7 @@ public class ImportResolutionBasicTest { @Test public void circularImportsTest() { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild() + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() .addSources(CYCLE_YIN, CYCLE_YANG); try { reactor.build(); @@ -89,7 +89,7 @@ public class ImportResolutionBasicTest { @Test public void selfImportTest() { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild() + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() .addSources(IMPORT_SELF, IMPORT_ROOT, ROOT_WITHOUT_IMPORT); try { reactor.build(); @@ -102,7 +102,7 @@ public class ImportResolutionBasicTest { @Test public void bug2649Test() throws ReactorException { - SchemaContext buildEffective = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext buildEffective = DefaultReactors.defaultReactor().newBuild() .addSources(FOO, IMPORT) .buildEffective(); assertNotNull(buildEffective); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportRevisionsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportRevisionsTest.java index eb72166938..ab4de65ad0 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportRevisionsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ImportRevisionsTest.java @@ -12,12 +12,11 @@ import static org.junit.Assert.assertNotNull; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import org.junit.Test; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class ImportRevisionsTest { @@ -44,47 +43,40 @@ public class ImportRevisionsTest { @Test public void equalRevisionDatesTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_WITH_EQUAL_DATE, IMPORTED_WITH_EQUAL_DATE); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_WITH_EQUAL_DATE, IMPORTED_WITH_EQUAL_DATE) + .build(); assertNotNull(result); } @Test(expected = SomeModifiersUnresolvedException.class) public void unequalRevisionDatesTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_WITH_UNEQUAL_DATE, IMPORTED_WITH_UNEQUAL_DATE); - - EffectiveModelContext result = reactor.build(); - assertNotNull(result); - + DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_WITH_UNEQUAL_DATE, IMPORTED_WITH_UNEQUAL_DATE) + .build(); } @Test(expected = SomeModifiersUnresolvedException.class) public void revisionDatesInRootOnlyTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_WITH_DATE, IMPORTED_WITHOUT_DATE); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_WITH_DATE, IMPORTED_WITHOUT_DATE) + .build(); assertNotNull(result); } @Test public void revisionDatesInImportedOnlyTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_WITHOUT_DATE, IMPORTED_WITH_DATE); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_WITHOUT_DATE, IMPORTED_WITH_DATE) + .build(); assertNotNull(result); } @Test public void noRevisionInRootAndImportedTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_WITH_NO_DATE, IMPORTED_WITH_NO_DATE); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT_WITH_NO_DATE, IMPORTED_WITH_NO_DATE) + .build(); assertNotNull(result); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeResolutionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeResolutionTest.java index da0155965b..6b8ca46038 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeResolutionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeResolutionTest.java @@ -16,6 +16,7 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import java.util.logging.Logger; import org.junit.Test; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; @@ -23,7 +24,6 @@ import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class IncludeResolutionTest { @@ -45,16 +45,15 @@ public class IncludeResolutionTest { @Test public void includeTest() throws SourceException, ReactorException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT, SUBMODULE1, SUBMODULE2); - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(ROOT, SUBMODULE1, SUBMODULE2) + .build(); assertNotNull(result); } @Test public void missingIncludedSourceTest() throws SourceException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ERROR_MODULE); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSource(ERROR_MODULE); try { reactor.build(); fail("reactor.process should fail due to missing included source"); @@ -68,8 +67,7 @@ public class IncludeResolutionTest { @Test public void missingIncludedSourceTest2() throws SourceException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ERROR_SUBMODULE); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSource(ERROR_SUBMODULE); try { reactor.build(); fail("reactor.process should fail due to missing included source"); @@ -83,8 +81,7 @@ public class IncludeResolutionTest { @Test public void missingIncludedSourceTest3() throws SourceException, ReactorException { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(MISSING_PARENT_MODULE); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSource(MISSING_PARENT_MODULE); try { reactor.build(); fail("reactor.process should fail due to missing belongsTo source"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeRevisionsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeRevisionsTest.java index 231792e9f3..9a482200e9 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeRevisionsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludeRevisionsTest.java @@ -15,13 +15,13 @@ import static org.junit.Assert.fail; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import org.junit.Test; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class IncludeRevisionsTest { @@ -38,20 +38,15 @@ public class IncludeRevisionsTest { @Test public void revsEqualTest() throws ReactorException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(EQUAL_REV, EQUAL_ROOT); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(EQUAL_REV, EQUAL_ROOT) + .build(); assertNotNull(result); } @Test public void revsUnequalTest() throws ReactorException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(UNEQUAL_REV, UNEQUAL_ROOT); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(UNEQUAL_REV, UNEQUAL_ROOT); try { reactor.build(); fail("reactor.process should fail due to unequal revisions in include and submodule"); @@ -63,20 +58,15 @@ public class IncludeRevisionsTest { @Test public void revIncludeOnly() throws ReactorException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(SUBMOD_ONLY_REV, SUBMOD_ONLY_ROOT); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(SUBMOD_ONLY_REV, SUBMOD_ONLY_ROOT) + .build(); assertNotNull(result); } @Test public void revInModuleOnly() throws ReactorException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(MOD_ONLY_REV, MOD_ONLY_ROOT); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSources(MOD_ONLY_REV, MOD_ONLY_ROOT); try { reactor.build(); fail("reactor.process should fail due to missing revision in included submodule"); @@ -88,11 +78,9 @@ public class IncludeRevisionsTest { @Test public void revNowhereTest() throws ReactorException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(NOWHERE_REV, NOWHERE_ROOT); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(NOWHERE_REV, NOWHERE_ROOT) + .build(); assertNotNull(result); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludedStmtsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludedStmtsTest.java index 15e44a6c2c..553fb8ce3b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludedStmtsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/IncludedStmtsTest.java @@ -17,7 +17,7 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import java.util.Iterator; import java.util.Set; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; @@ -26,25 +26,18 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class IncludedStmtsTest { - - private static final StatementStreamSource ROOT_MODULE = sourceForResource( - "/included-statements-test/root-module.yang"); - private static final StatementStreamSource CHILD_MODULE = sourceForResource( - "/included-statements-test/child-module.yang"); - - private SchemaContext result; - - @Before - public void setup() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(ROOT_MODULE, CHILD_MODULE); - result = reactor.buildEffective(); + private static SchemaContext result; + + @BeforeClass + public static void setup() throws ReactorException { + result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/included-statements-test/root-module.yang")) + .addSource(sourceForResource("/included-statements-test/child-module.yang")) + .buildEffective(); } @Test diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/KeyTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/KeyTest.java index c75ff64ddc..609880ab15 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/KeyTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/KeyTest.java @@ -14,12 +14,12 @@ import static org.junit.Assert.fail; import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import org.junit.Test; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class KeyTest { @@ -30,20 +30,15 @@ public class KeyTest { @Test public void keySimpleTest() throws ReactorException { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(KEY_SIMPLE_AND_COMP); - - EffectiveModelContext result = reactor.build(); + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(KEY_SIMPLE_AND_COMP) + .build(); assertNotNull(result); } @Test public void keyCompositeInvalid() { - - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(KEY_COMP_DUPLICATE); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild().addSource(KEY_COMP_DUPLICATE); try { reactor.build(); fail("reactor.process should fail due to duplicate name in key"); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListKeysTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListKeysTest.java index cff47bd2de..fc02066a5c 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListKeysTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListKeysTest.java @@ -14,33 +14,24 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; public class ListKeysTest { @Test public void correctListKeysTest() throws ReactorException { - - final StatementStreamSource yangFile = sourceForResource("/list-keys-test/correct-list-keys-test.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/list-keys-test/correct-list-keys-test.yang")) + .buildEffective(); assertNotNull(result); } @Test public void incorrectListKeysTest1() { - - final StatementStreamSource yangFile = sourceForResource("/list-keys-test/incorrect-list-keys-test.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/list-keys-test/incorrect-list-keys-test.yang")); try { reactor.buildEffective(); fail("effective build should fail due to list instead of leaf referenced in list key"); @@ -51,12 +42,8 @@ public class ListKeysTest { @Test public void incorrectListKeysTest2() { - - final StatementStreamSource yangFile = sourceForResource("/list-keys-test/incorrect-list-keys-test2.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/list-keys-test/incorrect-list-keys-test2.yang")); try { reactor.buildEffective(); fail("effective build should fail due to missing leaf referenced in list key"); @@ -67,12 +54,8 @@ public class ListKeysTest { @Test public void incorrectListKeysTest3() { - - final StatementStreamSource yangFile = sourceForResource("/list-keys-test/incorrect-list-keys-test3.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/list-keys-test/incorrect-list-keys-test3.yang")); try { reactor.buildEffective(); fail("effective build should fail due to list instead of leaf in grouping referenced in list key"); @@ -83,12 +66,8 @@ public class ListKeysTest { @Test public void incorrectListKeysTest4() { - - final StatementStreamSource yangFile = sourceForResource("/list-keys-test/incorrect-list-keys-test4.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); - + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/list-keys-test/incorrect-list-keys-test4.yang")); try { reactor.buildEffective(); fail("effective build should fail due to list instead of leaf in grouping augmented to list referenced " diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListTest.java index ca6e0a4d0c..7988b5c034 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/ListTest.java @@ -23,21 +23,16 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class ListTest { - private static final StatementStreamSource LIST_MODULE = sourceForResource("/list-test/list-test.yang"); - @Test public void listAndLeavesTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(LIST_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/list-test/list-test.yang")) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("list-test").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java index c5e807a729..bf431bf218 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MoreRevisionsTest.java @@ -31,9 +31,9 @@ import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class MoreRevisionsTest { @@ -69,7 +69,7 @@ public class MoreRevisionsTest { @Test public void readAndParseYangFileTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild().addSource(REVFILE).buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild().addSource(REVFILE).buildEffective(); assertNotNull(result); final Module moduleByName = result.getModules().iterator().next(); assertEquals("2015-06-07", moduleByName.getQNameModule().getRevision().get().toString()); @@ -77,7 +77,7 @@ public class MoreRevisionsTest { @Test public void twoRevisionsTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSources(TED_20130712, TED_20131021, IETF_TYPES) .buildEffective(); assertNotNull(result); @@ -85,7 +85,7 @@ public class MoreRevisionsTest { @Test public void twoRevisionsTest2() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSources(NETWORK_TOPOLOGY_20130712, NETWORK_TOPOLOGY_20131021, IETF_TYPES) .buildEffective(); assertNotNull(result); @@ -97,7 +97,7 @@ public class MoreRevisionsTest { @Test public void moreRevisionsListKeyTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSources(TED_20130712, TED_20131021, ISIS_20130712, ISIS_20131021, L3_20130712, L3_20131021) .addSources(IETF_TYPES,NETWORK_TOPOLOGY_20130712, NETWORK_TOPOLOGY_20131021) .buildEffective(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MustAndWhenStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MustAndWhenStmtTest.java index b33289d6e9..4fecbad377 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MustAndWhenStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/MustAndWhenStmtTest.java @@ -25,22 +25,15 @@ import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.MustDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class MustAndWhenStmtTest { - - private static final StatementStreamSource MUST_MODULE = sourceForResource("/must-when-stmt-test/must-test.yang"); - private static final StatementStreamSource WHEN_MODULE = sourceForResource("/must-when-stmt-test/when-test.yang"); - @Test public void mustStmtTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(MUST_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/must-when-stmt-test/must-test.yang")) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("must-test").iterator().next(); @@ -74,10 +67,9 @@ public class MustAndWhenStmtTest { @Test public void whenStmtTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(WHEN_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/must-when-stmt-test/when-test.yang")) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("when-test").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/NotificationStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/NotificationStmtTest.java index 21245d0f1e..c987e68b3b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/NotificationStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/NotificationStmtTest.java @@ -20,22 +20,16 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class NotificationStmtTest { - private static final StatementStreamSource NOTIFICATION_MODULE = sourceForResource("/model/baz.yang"); - private static final StatementStreamSource IMPORTED_MODULE = sourceForResource("/model/bar.yang"); - @Test public void notificationTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(NOTIFICATION_MODULE, IMPORTED_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(sourceForResource("/model/baz.yang"), sourceForResource("/model/bar.yang")) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("baz").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java index d3528c045f..e52afedf11 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/RpcStmtTest.java @@ -26,23 +26,18 @@ import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class RpcStmtTest { - private static final StatementStreamSource RPC_MODULE = sourceForResource("/model/baz.yang"); - private static final StatementStreamSource IMPORTED_MODULE = sourceForResource("/model/bar.yang"); - private static final StatementStreamSource FOO_MODULE = sourceForResource("/rpc-stmt-test/foo.yang"); - @Test public void rpcTest() throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(RPC_MODULE, IMPORTED_MODULE, FOO_MODULE); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/model/baz.yang")) + .addSource(sourceForResource("/model/bar.yang")) + .addSource(sourceForResource("/rpc-stmt-test/foo.yang")) + .buildEffective(); assertNotNull(result); final Module testModule = result.findModules("baz").iterator().next(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/StmtTestUtils.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/StmtTestUtils.java index 3c9163bc09..da991e22de 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/StmtTestUtils.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/StmtTestUtils.java @@ -31,13 +31,13 @@ import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YinTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinStatementStreamSource; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinTextToDomTransformer; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; @@ -132,9 +132,8 @@ public class StmtTestUtils { public static SchemaContext parseYangSources(final StatementParserMode statementParserMode, final Set supportedFeatures, final Collection sources) throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild( - statementParserMode); - reactor.addSources(sources); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(statementParserMode) + .addSources(sources); if (supportedFeatures != null) { reactor.setSupportedFeatures(supportedFeatures); } @@ -225,9 +224,8 @@ public class StmtTestUtils { private static SchemaContext parseYangSources(final StatementStreamSource[] yangSources, final StatementStreamSource[] libSources, final Set supportedFeatures) throws ReactorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangSources); - reactor.addLibSources(libSources); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSources(yangSources).addLibSources(libSources); if (supportedFeatures != null) { reactor.setSupportedFeatures(supportedFeatures); } @@ -253,12 +251,7 @@ public class StmtTestUtils { public static SchemaContext parseYinSources(final StatementParserMode statementParserMode, final StatementStreamSource... sources) throws ReactorException { - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR - .newBuild(statementParserMode); - reactor.addSources(sources); - - return reactor.buildEffective(); + return DefaultReactors.defaultReactor().newBuild(statementParserMode).addSources(sources).buildEffective(); } public static Module findImportedModule(final SchemaContext context, final Module rootModule, 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 176764ee82..c22ef08044 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 @@ -35,14 +35,13 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YinTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinStatementStreamSource; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinTextToDomTransformer; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; @@ -55,7 +54,7 @@ public final class TestUtils { public static SchemaContext loadModules(final URI resourceDirectory) throws ReactorException, IOException, YangSyntaxErrorException { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(); File[] files = new File(resourceDirectory).listFiles(); for (File file : files) { @@ -71,7 +70,7 @@ public final class TestUtils { public static SchemaContext loadModuleResources(final Class refClass, final String... resourceNames) throws IOException, ReactorException, YangSyntaxErrorException { - final BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(); for (String resourceName : resourceNames) { reactor.addSource(YangStatementStreamSource.create(YangTextSchemaSource.forResource(refClass, @@ -83,7 +82,7 @@ public final class TestUtils { public static SchemaContext loadYinModules(final URI resourceDirectory) throws ReactorException, SAXException, IOException { - final BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(); for (File file : new File(resourceDirectory).listFiles()) { reactor.addSource(YinStatementStreamSource.create(YinTextToDomTransformer.transformSource( @@ -95,7 +94,7 @@ public final class TestUtils { public static Module loadYinModule(final YinTextSchemaSource source) throws ReactorException, SAXException, IOException { - final SchemaContext ctx = YangInferencePipeline.RFC6020_REACTOR.newBuild() + final SchemaContext ctx = DefaultReactors.defaultReactor().newBuild() .addSource(YinStatementStreamSource.create(YinTextToDomTransformer.transformSource(source))) .buildEffective(); return ctx.getModules().iterator().next(); @@ -199,12 +198,7 @@ public final class TestUtils { } public static SchemaContext parseYangSources(final StatementStreamSource... sources) throws ReactorException { - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR - .newBuild(); - reactor.addSources(sources); - - return reactor.buildEffective(); + return DefaultReactors.defaultReactor().newBuild().addSources(sources).buildEffective(); } public static SchemaContext parseYangSources(final File... files) diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypedefSubStmtsTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypedefSubStmtsTest.java index b5959a2ba0..2ea8798b77 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypedefSubStmtsTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypedefSubStmtsTest.java @@ -17,22 +17,16 @@ import java.util.Set; import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class TypedefSubStmtsTest { - private static final StatementStreamSource FOOBAR = sourceForResource( - "/typedef-substmts-test/typedef-substmts-test.yang"); - @Test public void typedefSubStmtsTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(FOOBAR); - - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/typedef-substmts-test/typedef-substmts-test.yang")) + .buildEffective(); assertNotNull(result); Set> typedefs = result.getTypeDefinitions(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java index 8d7fbef8a4..05c01fe7df 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/TypesResolutionTest.java @@ -40,12 +40,12 @@ import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint; import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint; import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; public class TypesResolutionTest { private SchemaContext context; @@ -351,36 +351,26 @@ public class TypesResolutionTest { @Test public void testUnionWithExt() throws ReactorException { - - final StatementStreamSource yangFile1 = sourceForResource("/types/union-with-ext/extdef.yang"); - final StatementStreamSource yangFile2 = sourceForResource("/types/union-with-ext/unionbug.yang"); - final StatementStreamSource yangFile3 = sourceForResource("/ietf/ietf-inet-types@2010-09-24.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile1, yangFile2, yangFile3); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/types/union-with-ext/extdef.yang")) + .addSource(sourceForResource("/types/union-with-ext/unionbug.yang")) + .addSource(sourceForResource("/ietf/ietf-inet-types@2010-09-24.yang")) + .buildEffective(); assertNotNull(result); } @Test public void testUnionWithBits() throws ReactorException { - - final StatementStreamSource yangFile = sourceForResource("/types/union-with-bits/union-bits-model.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/types/union-with-bits/union-bits-model.yang")) + .buildEffective(); assertNotNull(result); } @Test public void testUnionInList() { - final StatementStreamSource yangFile = sourceForResource("/types/union-in-list/unioninlisttest.yang"); - - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile); + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/types/union-in-list/unioninlisttest.yang")); try { final SchemaContext result = reactor.buildEffective(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java index 9592d4cd63..8d7c19da3b 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangDataExtensionTest.java @@ -28,12 +28,11 @@ import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.InvalidSubstatementException; import org.opendaylight.yangtools.yang.parser.spi.meta.MissingSubstatementException; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class YangDataExtensionTest { @@ -119,11 +118,10 @@ public class YangDataExtensionTest { @Test public void testIfFeatureStatementBeingIgnoredInYangDataBody() throws Exception { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.setSupportedFeatures(ImmutableSet.of()); - reactor.addSources(FOOBAR_MODULE, IETF_RESTCONF_MODULE); - - final SchemaContext schemaContext = reactor.buildEffective(); + final SchemaContext schemaContext = DefaultReactors.defaultReactor().newBuild() + .setSupportedFeatures(ImmutableSet.of()) + .addSources(FOOBAR_MODULE, IETF_RESTCONF_MODULE) + .buildEffective(); assertNotNull(schemaContext); final Module foobar = schemaContext.findModule("foobar", REVISION).get(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangFileStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangFileStmtTest.java index 82d9967e3b..7b07a3b995 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangFileStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangFileStmtTest.java @@ -12,12 +12,10 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; -import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; import org.opendaylight.yangtools.yang.parser.stmt.reactor.EffectiveModelContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class YangFileStmtTest { //basic statements to parse and write @@ -44,29 +42,26 @@ public class YangFileStmtTest { private static final StatementStreamSource SUBFOO2 = sourceForResource("/model/subfoo.yang"); @Test - public void readAndParseYangFileTestModel() throws SourceException, ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - reactor.addSources(BAZ,FOO,BAR,SUBFOO); - EffectiveModelContext result = reactor.build(); + public void readAndParseYangFileTestModel() throws ReactorException { + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(BAZ, FOO, BAR, SUBFOO) + .build(); assertNotNull(result); } @Test - public void readAndParseYangFileTestModel2() throws SourceException, ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - reactor.addSources(BAZ2,FOO2,BAR2,SUBFOO2); - EffectiveModelContext result = reactor.build(); + public void readAndParseYangFileTestModel2() throws ReactorException { + EffectiveModelContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(BAZ2, FOO2, BAR2, SUBFOO2) + .build(); assertNotNull(result); } @Test - public void readAndParseYangFileTest() throws SourceException, ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(YANGFILE, SIMPLENODES, IMPORTEDYANGFILE, FOOBAR); - reactor.addSources(EXTFILE, EXTUSE); - SchemaContext result = reactor.buildEffective(); + public void readAndParseYangFileTest() throws ReactorException { + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(YANGFILE, SIMPLENODES, IMPORTEDYANGFILE, FOOBAR, EXTFILE, EXTUSE) + .buildEffective(); assertNotNull(result); } } \ No newline at end of file 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 b49ae82969..cac44d5654 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 @@ -64,12 +64,12 @@ import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition; import org.opendaylight.yangtools.yang.model.util.type.BaseTypes; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; public class YangParserTest { private static final QNameModule FOO = QNameModule.create(URI.create("urn:opendaylight.foo"), @@ -725,15 +725,10 @@ public class YangParserTest { @Test public void unknownStatementBetweenRevisionsTest() throws ReactorException { - - final StatementStreamSource yangModule = sourceForResource("/yang-grammar-test/revisions-extension.yang"); - final StatementStreamSource yangSubmodule = sourceForResource( - "/yang-grammar-test/submodule-header-extension.yang"); - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangModule, yangSubmodule); - - final SchemaContext result = reactor.buildEffective(); + final SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/yang-grammar-test/revisions-extension.yang")) + .addSource(sourceForResource("/yang-grammar-test/submodule-header-extension.yang")) + .buildEffective(); assertNotNull(result); } @@ -747,8 +742,8 @@ public class YangParserTest { final StatementStreamSource yangFile3 = sourceForResource( "/yang-grammar-test/stmtsep-in-statements-sub.yang"); - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(yangFile1, yangFile2, yangFile3); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild() + .addSources(yangFile1, yangFile2, yangFile3); // TODO: change test or create new module in order to respect new statement parser validations try { final SchemaContext result = reactor.buildEffective(); 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 74f43e19ab..71cdf65300 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 @@ -44,9 +44,9 @@ import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.model.api.UsesNode; import org.opendaylight.yangtools.yang.model.api.type.Uint16TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; +import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class YangParserWithContextTest { private static final URI T1_NS = URI.create("urn:simple.demo.test1"); @@ -69,17 +69,12 @@ public class YangParserWithContextTest { sourceForResource("/ietf/network-topology@2013-10-21.yang") }; @Test - public void testTypeFromContext() throws Exception { - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final StatementStreamSource types = sourceForResource("/types/custom-types-test@2012-04-04.yang"); - final StatementStreamSource test1 = sourceForResource("/context-test/test1.yang"); - - reactor.addSources(IETF); - reactor.addSources(types, test1); - - final SchemaContext context = reactor.buildEffective(); + public void testTypeFromContext() throws ReactorException { + final SchemaContext context = DefaultReactors.defaultReactor().newBuild() + .addSources(IETF) + .addSource(sourceForResource("/types/custom-types-test@2012-04-04.yang")) + .addSource(sourceForResource("/context-test/test1.yang")) + .buildEffective(); final Module module = context.findModule("test1", Revision.of("2013-06-18")).get(); final LeafSchemaNode leaf = (LeafSchemaNode) module.getDataChildByName(QName.create(module.getQNameModule(), @@ -108,12 +103,10 @@ public class YangParserWithContextTest { } @Test - public void testUsesFromContext() throws Exception { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final StatementStreamSource test2 = sourceForResource("/context-test/test2.yang"); - reactor.addSources(BAZ, FOO, BAR, SUBFOO, test2); - final SchemaContext context = reactor.buildEffective(); + public void testUsesFromContext() throws ReactorException { + final SchemaContext context = DefaultReactors.defaultReactor().newBuild() + .addSources(BAZ, FOO, BAR, SUBFOO, sourceForResource("/context-test/test2.yang")) + .buildEffective(); final Module testModule = context.findModule("test2", Revision.of("2013-06-18")).get(); final Module contextModule = context.findModules(URI.create("urn:opendaylight.baz")).iterator().next(); @@ -214,13 +207,10 @@ public class YangParserWithContextTest { } @Test - public void testUsesRefineFromContext() throws Exception { - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final StatementStreamSource test2 = sourceForResource("/context-test/test2.yang"); - reactor.addSources(BAZ, FOO, BAR, SUBFOO, test2); - final SchemaContext context = reactor.buildEffective(); + public void testUsesRefineFromContext() throws ReactorException { + final SchemaContext context = DefaultReactors.defaultReactor().newBuild() + .addSources(BAZ, FOO, BAR, SUBFOO, sourceForResource("/context-test/test2.yang")) + .buildEffective(); final Module module = context.findModule("test2", Revision.of("2013-06-18")).get(); final ContainerSchemaNode peer = (ContainerSchemaNode) module.getDataChildByName(QName.create( @@ -287,16 +277,12 @@ public class YangParserWithContextTest { } @Test - public void testIdentity() throws Exception { - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final StatementStreamSource types = sourceForResource("/types/custom-types-test@2012-04-04.yang"); - final StatementStreamSource test3 = sourceForResource("/context-test/test3.yang"); - - reactor.addSources(IETF); - reactor.addSources(types, test3); - final SchemaContext context = reactor.buildEffective(); + public void testIdentity() throws ReactorException { + final SchemaContext context = DefaultReactors.defaultReactor().newBuild() + .addSources(IETF) + .addSource(sourceForResource("/types/custom-types-test@2012-04-04.yang")) + .addSource(sourceForResource("/context-test/test3.yang")) + .buildEffective(); final Module module = context.findModule("test3", Revision.of("2013-06-18")).get(); final Set identities = module.getIdentities(); @@ -316,17 +302,12 @@ public class YangParserWithContextTest { } @Test - public void testUnknownNodes() throws Exception { - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final StatementStreamSource types = sourceForResource("/types/custom-types-test@2012-04-04.yang"); - final StatementStreamSource test3 = sourceForResource("/context-test/test3.yang"); - - reactor.addSources(IETF); - reactor.addSources(types, test3); - - final SchemaContext context = reactor.buildEffective(); + public void testUnknownNodes() throws ReactorException { + final SchemaContext context = DefaultReactors.defaultReactor().newBuild() + .addSources(IETF) + .addSource(sourceForResource("/types/custom-types-test@2012-04-04.yang")) + .addSource(sourceForResource("/context-test/test3.yang")) + .buildEffective(); final Module module = context.findModule("test3", Revision.of("2013-06-18")).get(); final ContainerSchemaNode network = (ContainerSchemaNode) module.getDataChildByName(QName.create( @@ -344,7 +325,7 @@ public class YangParserWithContextTest { } @Test - public void testAugment() throws Exception { + public void testAugment() throws ReactorException { final StatementStreamSource resource = sourceForResource("/context-augment-test/test4.yang"); final StatementStreamSource test1 = sourceForResource("/context-augment-test/test1.yang"); final StatementStreamSource test2 = sourceForResource("/context-augment-test/test2.yang"); @@ -380,15 +361,11 @@ public class YangParserWithContextTest { } @Test - public void testDeviation() throws Exception { - - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - - final StatementStreamSource bar = sourceForResource("/model/bar.yang"); - final StatementStreamSource deviationTest = sourceForResource("/context-test/deviation-test.yang"); - - reactor.addSources(bar, deviationTest); - final SchemaContext context = reactor.buildEffective(); + public void testDeviation() throws ReactorException { + final SchemaContext context = DefaultReactors.defaultReactor().newBuild() + .addSource(sourceForResource("/model/bar.yang")) + .addSource(sourceForResource("/context-test/deviation-test.yang")) + .buildEffective(); final Module testModule = context.findModule("deviation-test", Revision.of("2013-02-27")).get(); final Set deviations = testModule.getDeviations(); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java index 0c6f2cc06f..27a53ed45f 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypes2StmtTest.java @@ -20,10 +20,9 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition; import org.opendaylight.yangtools.yang.model.util.type.BaseTypes; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class YangTypes2StmtTest { @@ -50,9 +49,9 @@ public class YangTypes2StmtTest { @Test public void readAndParseYangFileTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(TYPEFILE1, TYPEFILE2, TYPEFILE3, TYPEFILE4); - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(TYPEFILE1, TYPEFILE2, TYPEFILE3, TYPEFILE4) + .buildEffective(); assertNotNull(result); final LeafSchemaNode lfDecimalNode = (LeafSchemaNode) result.getDataChildByName(LF_DECIMAL); diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypesStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypesStmtTest.java index 3be8f4feed..a0160f1e45 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypesStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/YangTypesStmtTest.java @@ -12,10 +12,9 @@ import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResour import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; public class YangTypesStmtTest { @@ -33,10 +32,9 @@ public class YangTypesStmtTest { @Test public void readAndParseYangFileTest() throws ReactorException { - CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); - reactor.addSources(TYPEFILE1, TYPEFILE2, TYPEFILE3); - reactor.addSources(FILE1, FILE2, FILE3, FILE4); - SchemaContext result = reactor.buildEffective(); + SchemaContext result = DefaultReactors.defaultReactor().newBuild() + .addSources(TYPEFILE1, TYPEFILE2, TYPEFILE3, FILE1, FILE2, FILE3, FILE4) + .buildEffective(); assertNotNull(result); } } diff --git a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileStmtTest.java b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileStmtTest.java index 3b27675a06..426ce69396 100644 --- a/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileStmtTest.java +++ b/yang/yang-parser-impl/src/test/java/org/opendaylight/yangtools/yang/stmt/yin/YinFileStmtTest.java @@ -18,6 +18,7 @@ import org.junit.Before; import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.YinTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinStatementStreamSource; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinTextToDomTransformer; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; @@ -25,7 +26,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedEx import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; import org.opendaylight.yangtools.yang.stmt.TestUtils; import org.xml.sax.SAXException; @@ -54,8 +54,8 @@ public class YinFileStmtTest { } @Test - public void readAndParseYinFileTestModel() throws SourceException, ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + public void readAndParseYinFileTestModel() throws ReactorException { + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSources(YIN_FILE, EXT_FILE, EXT_USE_FILE) .buildEffective(); assertNotNull(result); @@ -64,7 +64,7 @@ public class YinFileStmtTest { // parsing yin file whose import statement references a module which does not exist @Test(expected = SomeModifiersUnresolvedException.class) public void readAndParseInvalidYinFileTest() throws ReactorException { - SchemaContext result = YangInferencePipeline.RFC6020_REACTOR.newBuild() + SchemaContext result = DefaultReactors.defaultReactor().newBuild() .addSource(INVALID_YIN_FILE) .buildEffective(); assertNotNull(result); @@ -72,7 +72,7 @@ public class YinFileStmtTest { // parsing yin file with duplicate key name in a list statement public void readAndParseInvalidYinFileTest2() { - BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild() + BuildAction reactor = DefaultReactors.defaultReactor().newBuild() .addSource(INVALID_YIN_FILE_2); try { diff --git a/yang/yang-test-util/src/main/java/org/opendaylight/yangtools/yang/test/util/YangParserTestUtils.java b/yang/yang-test-util/src/main/java/org/opendaylight/yangtools/yang/test/util/YangParserTestUtils.java index cde11a3e3d..9fe693fcaf 100644 --- a/yang/yang-test-util/src/main/java/org/opendaylight/yangtools/yang/test/util/YangParserTestUtils.java +++ b/yang/yang-test-util/src/main/java/org/opendaylight/yangtools/yang/test/util/YangParserTestUtils.java @@ -26,12 +26,12 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource; import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YinStatementStreamSource; import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction; /** * Utility class which provides convenience methods for producing effective schema context based on the supplied @@ -411,8 +411,7 @@ public final class YangParserTestUtils { */ public static SchemaContext parseSources(final Set supportedFeatures, final StatementParserMode statementParserMode, final Collection sources) { - final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild( - statementParserMode); + final BuildAction reactor = DefaultReactors.defaultReactor().newBuild(statementParserMode); if (supportedFeatures != null) { reactor.setSupportedFeatures(supportedFeatures); } -- 2.36.6