[YANGTOOLS-705] Parser: Eliminate stmt.reactor dependency on stmt.rfc6020 Created: 27/Oct/16  Updated: 10/Apr/22  Resolved: 20/Nov/17

Status: Verified
Project: yangtools
Component/s: None
Affects Version/s: None
Fix Version/s: 2.0.0

Type: Bug
Reporter: Robert Varga Assignee: Peter Kajsa
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Issue Links:
Blocks
blocks YANGTOOLS-706 Milestone: split parser-impl into mul... Verified
is blocked by YANGTOOLS-703 Rework 'type decimal64' lookup Resolved
is blocked by YANGTOOLS-714 Reduce YangSchemaSourceImpl visibility Resolved
is blocked by YANGTOOLS-702 Improve mapping of YANG extensions Resolved
External issue ID: 7051

 Description   

Statement reactor must not depend on any classes from rfc6020 support. Current offenders are:

NamespaceStorageSupport.java:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;

CrossSourceStatementReactor.java:28:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveSchemaContext;
SourceSpecificContext.java:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.BitsSpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Decimal64SpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.EnumSpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.IdentityRefSpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.InstanceIdentifierSpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.LeafrefSpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.ModelDefinedStatementDefinition;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.TypeUtils;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.UnionSpecificationImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.UnknownStatementImpl;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
./BuildGlobalContext.java:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.RecursiveObjectLeaker;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveSchemaContext;
./SubstatementContext.java:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
./CustomStatementParserBuilder.java:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
./RootStatementContext.java
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.IncludedModuleContext;

Some of these are easy, some of these require more work to fix implementation issues causing these imports.



 Comments   
Comment by Peter Kajsa [ 14/Mar/17 ]

Possible API changes, therefore moving to next release cycle

Comment by Peter Kajsa [ 12/Apr/17 ]

first patch: https://git.opendaylight.org/gerrit/#/c/54841/

Comment by Peter Kajsa [ 03/Aug/17 ]

https://git.opendaylight.org/gerrit/#/c/61104/

After the patch gets merged, only the following unresolved dependency remains:
CrossSourceStatementReactor.java:28:
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl;
However, the dependency is used in @deprecated methods only, so it will be resolved when the deprecated methods will be removed.

Comment by Robert Varga [ 24/Aug/17 ]

We cannot finish this due to API freeze. Postponed to Oxygen, at which point we are free to move things around.

Comment by Peter Kajsa [ 12/Sep/17 ]

next patch: https://git.opendaylight.org/gerrit/#/c/63020/

Comment by Peter Kajsa [ 12/Sep/17 ]

next patch: https://git.opendaylight.org/gerrit/#/c/63032

Generated at Wed Feb 07 20:54:04 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.