From 76be7da0eedc69af4b2b15ece1a4fd145f802913 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 16 Sep 2024 11:20:43 +0200 Subject: [PATCH] Deprecate simple DataTreeFactory.create() We cannot quite guarantee DataTree operation without an EffectiveModelContext. This patch deprecates the simple method, steering users towards method which require it. Change-Id: I2b3f6c6802aed1892113e6d32c131a341a6323ed Signed-off-by: Robert Varga --- .../yangtools/yang/data/tree/api/DataTreeFactory.java | 2 ++ .../data/tree/impl/di/InMemoryDataTreeFactory.java | 1 + .../tree/impl/StructuralApplyModificationTest.java | 4 ++-- .../yang/data/tree/impl/UniqueConstraintTest.java | 10 +++++----- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeFactory.java b/data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeFactory.java index c8f6644dc9..dc5117a939 100644 --- a/data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeFactory.java +++ b/data/yang-data-tree-api/src/main/java/org/opendaylight/yangtools/yang/data/tree/api/DataTreeFactory.java @@ -29,7 +29,9 @@ public interface DataTreeFactory { * @param treeConfig Tree configuration. * @return A data tree instance. * @throws NullPointerException if treeConfig is null + * @deprecated Use {@link #create(DataTreeConfiguration, EffectiveModelContext)} instead. */ + @Deprecated(since = "14.0.5", forRemoval = true) @NonNull DataTree create(DataTreeConfiguration treeConfig); /** diff --git a/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java b/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java index befd495ee7..c7c640398b 100644 --- a/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java +++ b/data/yang-data-tree-ri/src/main/java/org/opendaylight/yangtools/yang/data/tree/impl/di/InMemoryDataTreeFactory.java @@ -63,6 +63,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory { } @Override + @Deprecated public DataTree create(final DataTreeConfiguration treeConfig) { return new InMemoryDataTree(TreeNode.of(createRoot(treeConfig.getRootPath()), Version.initial(treeConfig.isVersionInfoTrackingEnabled())), treeConfig, null); diff --git a/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/StructuralApplyModificationTest.java b/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/StructuralApplyModificationTest.java index 7be656f7d5..d54dba0ef3 100644 --- a/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/StructuralApplyModificationTest.java +++ b/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/StructuralApplyModificationTest.java @@ -26,8 +26,8 @@ final class StructuralApplyModificationTest extends AbstractTestModelTest { @BeforeEach void setUp() { - inMemoryDataTree = new InMemoryDataTreeFactory().create(DataTreeConfiguration.DEFAULT_CONFIGURATION); - inMemoryDataTree.setEffectiveModelContext(SCHEMA_CONTEXT); + inMemoryDataTree = new InMemoryDataTreeFactory() + .create(DataTreeConfiguration.DEFAULT_CONFIGURATION, SCHEMA_CONTEXT); } @Test diff --git a/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueConstraintTest.java b/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueConstraintTest.java index 048532b69f..6cbe34528f 100644 --- a/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueConstraintTest.java +++ b/data/yang-data-tree-ri/src/test/java/org/opendaylight/yangtools/yang/data/tree/impl/UniqueConstraintTest.java @@ -253,9 +253,9 @@ class UniqueConstraintTest { private static InMemoryDataTree initDataTree(final EffectiveModelContext schemaContext, final boolean uniqueIndex) throws DataValidationFailedException { - final var inMemoryDataTree = (InMemoryDataTree) new InMemoryDataTreeFactory().create( - new DataTreeConfiguration.Builder(TreeType.CONFIGURATION).setUniqueIndexes(uniqueIndex).build()); - inMemoryDataTree.setEffectiveModelContext(schemaContext); + final var inMemoryDataTree = (InMemoryDataTree) new InMemoryDataTreeFactory() + .create(new DataTreeConfiguration.Builder(TreeType.CONFIGURATION).setUniqueIndexes(uniqueIndex).build(), + schemaContext); final var taskNode = ImmutableNodes.newSystemMapBuilder().withNodeIdentifier(new NodeIdentifier(TASK)).build(); final var modificationTree = inMemoryDataTree.takeSnapshot().newModification(); @@ -271,8 +271,8 @@ class UniqueConstraintTest { private static InMemoryDataTree emptyDataTree(final EffectiveModelContext schemaContext, final boolean uniqueIndex) { final var inMemoryDataTree = (InMemoryDataTree) new InMemoryDataTreeFactory().create( - new DataTreeConfiguration.Builder(TreeType.CONFIGURATION).setUniqueIndexes(uniqueIndex).build()); - inMemoryDataTree.setEffectiveModelContext(schemaContext); + new DataTreeConfiguration.Builder(TreeType.CONFIGURATION).setUniqueIndexes(uniqueIndex).build(), + schemaContext); return inMemoryDataTree; } -- 2.36.6