From 2b1748599e4c820730eef2deb7f59489bab82f82 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Tue, 12 Apr 2016 10:13:18 +0200 Subject: [PATCH] HONEYCOMB-9: Remove references to VPP from translation layer Change-Id: I281db366a112edc08203e8cb392a212708d4552a Signed-off-by: Maros Marsalek --- v3po/artifacts/pom.xml | 13 +- v3po/features/pom.xml | 13 +- v3po/features/src/main/features/features.xml | 9 +- v3po/impl/pom.xml | 2 +- .../io/fd/honeycomb/v3po/impl/V3poProvider.java | 8 +- ...{VppReaderRegistry.java => ReaderRegistry.java} | 59 ++++--- .../v3po/impl/data/VppConfigDataTree.java | 19 +-- .../data/VppDataBrokerInitializationProvider.java | 6 +- .../fd/honeycomb/v3po/impl/data/VppDataTree.java | 6 +- .../v3po/impl/data/VppOperationalDataTree.java | 8 +- .../v3po/impl/data/VppWriteTransaction.java | 4 +- ...{VppWriterRegistry.java => WriterRegistry.java} | 55 +++--- .../v3po/impl/data/VPPConfigDataTreeTest.java | 31 ++-- .../VppDataBrokerInitializationProviderTest.java | 4 +- .../v3po/impl/data/VppOperationalDataTreeTest.java | 8 +- v3po/pom.xml | 9 +- v3po/{vpp-facade-api => translate-api}/pom.xml | 2 +- .../io/fd/honeycomb/v3po/translate}/Context.java | 2 +- .../honeycomb/v3po/translate}/SubtreeManager.java | 2 +- .../v3po/translate/TranslationException.java} | 12 +- .../v3po/translate}/VppApiInvocationException.java | 4 +- .../v3po/translate/read/ChildReader.java} | 6 +- .../honeycomb/v3po/translate/read/ListReader.java} | 6 +- .../v3po/translate}/read/ReadContext.java | 4 +- .../v3po/translate}/read/ReadFailedException.java | 8 +- .../fd/honeycomb/v3po/translate/read/Reader.java} | 10 +- .../v3po/translate}/read/ReaderRegistry.java | 4 +- .../v3po/translate/write/ChildWriter.java} | 8 +- .../v3po/translate}/write/WriteContext.java | 4 +- .../fd/honeycomb/v3po/translate/write/Writer.java} | 14 +- .../v3po/translate}/write/WriterRegistry.java | 16 +- .../v3po/translate}/ReadFailedExceptionTest.java | 11 +- .../translate}/VppApiInvocationExceptionTest.java | 2 +- v3po/{vpp-facade-impl => translate-impl}/pom.xml | 10 +- .../impl/read/AbstractCompositeReader.java} | 50 +++--- .../translate/impl/read/CompositeChildReader.java} | 50 +++--- .../translate/impl/read/CompositeListReader.java} | 58 +++---- .../translate/impl/read/CompositeRootReader.java | 91 ++++++++++ .../impl/write/AbstractCompositeWriter.java} | 86 +++++----- .../impl/write/CompositeChildWriter.java} | 44 ++--- .../translate/impl/write/CompositeListWriter.java} | 47 ++--- .../translate/impl/write/CompositeRootWriter.java} | 36 ++-- v3po/{vpp-facade-spi => translate-spi}/pom.xml | 4 +- .../translate/spi/read/ChildReaderCustomizer.java} | 8 +- .../translate/spi/read/ListReaderCustomizer.java} | 10 +- .../translate/spi/read/RootReaderCustomizer.java} | 10 +- .../spi/write/ChildWriterCustomizer.java} | 6 +- .../translate/spi/write/ListWriterCustomizer.java} | 7 +- .../translate/spi/write/RootWriterCustomizer.java} | 8 +- v3po/{vpp-facade-utils => translate-utils}/pom.xml | 11 +- .../fd/honeycomb/v3po/translate/util/RWUtils.java} | 38 ++--- .../v3po/translate}/util/ReflectionUtils.java | 2 +- .../util/read}/DelegatingReaderRegistry.java | 34 ++-- .../translate/util/read}/NoopReaderCustomizer.java | 8 +- .../util/read}/ReflexiveChildReaderCustomizer.java | 8 +- .../util/read}/ReflexiveRootReaderCustomizer.java | 2 +- .../util/write}/DelegatingWriterRegistry.java | 30 ++-- .../util/write}/NoopWriterCustomizer.java | 8 +- .../write}/ReflexiveChildWriterCustomizer.java | 8 +- .../util/write}/TransactionWriteContext.java | 6 +- .../write/util/DelegatingWriterRegistryTest.java | 41 ++--- .../write/util/TransactionWriteContextTest.java | 5 +- v3po/v3po2vpp/pom.xml | 11 +- .../v3po/vpp/BridgeDomainCustomizer.java | 10 +- .../v3po/vppstate/BridgeDomainCustomizer.java | 10 +- .../v3po/vppstate/VersionCustomizer.java | 10 +- .../v3po/vpp/BridgeDomainCustomizerTest.java | 69 ++++---- .../v3po/vpp/BridgeDomainTestUtils.java | 2 +- .../facade => translate}/v3po/vpp/VppTest.java | 19 +-- .../facade => translate}/v3po/vpp/VppUtils.java | 30 ++-- .../v3po/vppstate/VppStateTest.java | 18 +- .../v3po/vppstate/VppStateUtils.java | 36 ++-- .../facade/impl/read/CompositeRootVppReader.java | 91 ---------- .../write/util/DelegatingWriterRegistryTest.java | 189 --------------------- .../write/util/TransactionWriteContextTest.java | 138 --------------- v3po/vpp-translate-utils/pom.xml | 57 +++++++ .../translate/v3po}/util/VppApiCustomizer.java | 2 +- 77 files changed, 762 insertions(+), 1025 deletions(-) rename v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/{VppReaderRegistry.java => ReaderRegistry.java} (60%) rename v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/{VppWriterRegistry.java => WriterRegistry.java} (57%) rename v3po/{vpp-facade-api => translate-api}/pom.xml (98%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/Context.java (96%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/SubtreeManager.java (96%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppException.java => translate-api/src/main/java/io/fd/honeycomb/v3po/translate/TranslationException.java} (70%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/VppApiInvocationException.java (95%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ChildVppReader.java => translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ChildReader.java} (90%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ListVppReader.java => translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ListReader.java} (87%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/read/ReadContext.java (90%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/read/ReadFailedException.java (88%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/VppReader.java => translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/Reader.java} (85%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/read/ReaderRegistry.java (93%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/ChildVppWriter.java => translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/ChildWriter.java} (90%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/write/WriteContext.java (94%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/VppWriter.java => translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/Writer.java} (75%) rename v3po/{vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/main/java/io/fd/honeycomb/v3po/translate}/write/WriterRegistry.java (89%) rename v3po/{vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/test/java/io/fd/honeycomb/v3po/translate}/ReadFailedExceptionTest.java (73%) rename v3po/{vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade => translate-api/src/test/java/io/fd/honeycomb/v3po/translate}/VppApiInvocationExceptionTest.java (97%) rename v3po/{vpp-facade-impl => translate-impl}/pom.xml (91%) rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/AbstractCompositeVppReader.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/AbstractCompositeReader.java} (83%) rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeChildVppReader.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeChildReader.java} (53%) rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeListVppReader.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeListReader.java} (61%) create mode 100644 v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeRootReader.java rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/AbstractCompositeVppWriter.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/AbstractCompositeWriter.java} (75%) rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeChildVppWriter.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeChildWriter.java} (65%) rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeListVppWriter.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeListWriter.java} (76%) rename v3po/{vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeRootVppWriter.java => translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeRootWriter.java} (58%) rename v3po/{vpp-facade-spi => translate-spi}/pom.xml (96%) rename v3po/{vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ChildVppReaderCustomizer.java => translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ChildReaderCustomizer.java} (85%) rename v3po/{vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ListVppReaderCustomizer.java => translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ListReaderCustomizer.java} (84%) rename v3po/{vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/RootVppReaderCustomizer.java => translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/RootReaderCustomizer.java} (84%) rename v3po/{vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ChildVppWriterCustomizer.java => translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ChildWriterCustomizer.java} (86%) rename v3po/{vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ListVppWriterCustomizer.java => translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ListWriterCustomizer.java} (85%) rename v3po/{vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/RootVppWriterCustomizer.java => translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/RootWriterCustomizer.java} (92%) rename v3po/{vpp-facade-utils => translate-utils}/pom.xml (90%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppRWUtils.java => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/RWUtils.java} (83%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate}/util/ReflectionUtils.java (98%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read}/DelegatingReaderRegistry.java (75%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read}/NoopReaderCustomizer.java (83%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read}/ReflexiveChildReaderCustomizer.java (89%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read}/ReflexiveRootReaderCustomizer.java (96%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write}/DelegatingWriterRegistry.java (85%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write}/NoopWriterCustomizer.java (88%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write}/ReflexiveChildWriterCustomizer.java (90%) rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util => translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write}/TransactionWriteContext.java (95%) rename v3po/{vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade => translate-utils/src/test/java/io/fd/honeycomb/v3po/translate}/impl/write/util/DelegatingWriterRegistryTest.java (83%) rename v3po/{vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade => translate-utils/src/test/java/io/fd/honeycomb/v3po/translate}/impl/write/util/TransactionWriteContextTest.java (97%) rename v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vpp/BridgeDomainCustomizer.java (94%) rename v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vppstate/BridgeDomainCustomizer.java (95%) rename v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vppstate/VersionCustomizer.java (87%) rename v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vpp/BridgeDomainCustomizerTest.java (74%) rename v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vpp/BridgeDomainTestUtils.java (97%) rename v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vpp/VppTest.java (89%) rename v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vpp/VppUtils.java (61%) rename v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vppstate/VppStateTest.java (94%) rename v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/{vpp/facade => translate}/v3po/vppstate/VppStateUtils.java (63%) delete mode 100644 v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeRootVppReader.java delete mode 100644 v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java delete mode 100644 v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java create mode 100644 v3po/vpp-translate-utils/pom.xml rename v3po/{vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl => vpp-translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/v3po}/util/VppApiCustomizer.java (95%) diff --git a/v3po/artifacts/pom.xml b/v3po/artifacts/pom.xml index cdfb7c27f..1764b675f 100644 --- a/v3po/artifacts/pom.xml +++ b/v3po/artifacts/pom.xml @@ -31,22 +31,27 @@ ${project.groupId} - vpp-facade-api + translate-api ${project.version} ${project.groupId} - vpp-facade-spi + translate-spi ${project.version} ${project.groupId} - vpp-facade-impl + translate-impl ${project.version} ${project.groupId} - vpp-facade-utils + translate-utils + ${project.version} + + + ${project.groupId} + vpp-translate-utils ${project.version} diff --git a/v3po/features/pom.xml b/v3po/features/pom.xml index 142d803c1..810cec5e0 100644 --- a/v3po/features/pom.xml +++ b/v3po/features/pom.xml @@ -135,22 +135,27 @@ ${project.groupId} - vpp-facade-api + translate-api ${project.version} ${project.groupId} - vpp-facade-spi + translate-spi ${project.version} ${project.groupId} - vpp-facade-impl + translate-impl ${project.version} ${project.groupId} - vpp-facade-utils + translate-utils + ${project.version} + + + ${project.groupId} + vpp-translate-utils ${project.version} diff --git a/v3po/features/src/main/features/features.xml b/v3po/features/src/main/features/features.xml index cea5999ae..1f5237876 100644 --- a/v3po/features/src/main/features/features.xml +++ b/v3po/features/src/main/features/features.xml @@ -35,10 +35,11 @@ odl-netconf-connector-ssh odl-netconf-mdsal mvn:io.fd.honeycomb.v3po/v3po-impl/${project.version} - mvn:io.fd.honeycomb.v3po/vpp-facade-api/${project.version} - mvn:io.fd.honeycomb.v3po/vpp-facade-spi/${project.version} - mvn:io.fd.honeycomb.v3po/vpp-facade-utils/${project.version} - mvn:io.fd.honeycomb.v3po/vpp-facade-impl/${project.version} + mvn:io.fd.honeycomb.v3po/translate-api/${project.version} + mvn:io.fd.honeycomb.v3po/translate-spi/${project.version} + mvn:io.fd.honeycomb.v3po/translate-utils/${project.version} + mvn:io.fd.honeycomb.v3po/vpp-translate-utils/${project.version} + mvn:io.fd.honeycomb.v3po/translate-impl/${project.version} mvn:io.fd.honeycomb.v3po/v3po2vpp/${project.version} wrap:mvn:io.fd.vpp/vppjapi/1.0.0-SNAPSHOT mvn:io.fd.honeycomb.v3po/v3po-impl/${project.version}/xml/config diff --git a/v3po/impl/pom.xml b/v3po/impl/pom.xml index a8109a888..56dcf8555 100644 --- a/v3po/impl/pom.xml +++ b/v3po/impl/pom.xml @@ -36,7 +36,7 @@ ${project.groupId} - vpp-facade-impl + translate-impl ${project.version} diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java index 931ecefd6..0ea4525f0 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/V3poProvider.java @@ -21,8 +21,8 @@ import com.google.common.collect.Lists; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import io.fd.honeycomb.v3po.impl.data.VppDataBrokerInitializationProvider; -import io.fd.honeycomb.v3po.impl.data.VppReaderRegistry; -import io.fd.honeycomb.v3po.impl.data.VppWriterRegistry; +import io.fd.honeycomb.v3po.impl.data.ReaderRegistry; +import io.fd.honeycomb.v3po.impl.data.WriterRegistry; import java.io.IOException; import java.util.Collections; import java.util.HashMap; @@ -196,8 +196,8 @@ public class V3poProvider implements BindingAwareProvider, AutoCloseable, Broker vppPollOperData); startOperationalUpdateTimer(); - final VppReaderRegistry readerRegistry = VppReaderRegistry.getInstance(api); - final VppWriterRegistry writerRegistry = VppWriterRegistry.getInstance(api); + final ReaderRegistry readerRegistry = ReaderRegistry.getInstance(api); + final WriterRegistry writerRegistry = WriterRegistry.getInstance(api); // TODO make configurable: vppDataBrokerInitializationProvider = new VppDataBrokerInitializationProvider(db, readerRegistry, writerRegistry); diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/ReaderRegistry.java similarity index 60% rename from v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java rename to v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/ReaderRegistry.java index ba1865494..5e547094f 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppReaderRegistry.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/ReaderRegistry.java @@ -18,20 +18,19 @@ package io.fd.honeycomb.v3po.impl.data; import com.google.common.base.Optional; import com.google.common.collect.Multimap; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeListVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeRootVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.util.DelegatingReaderRegistry; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.util.ReflexiveChildReaderCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.util.ReflexiveRootReaderCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.read.ReaderRegistry; -import io.fd.honeycomb.v3po.vpp.facade.read.VppReader; -import io.fd.honeycomb.v3po.vpp.facade.v3po.vppstate.BridgeDomainCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.v3po.vppstate.VersionCustomizer; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeChildReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeListReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeRootReader; +import io.fd.honeycomb.v3po.translate.util.read.DelegatingReaderRegistry; +import io.fd.honeycomb.v3po.translate.util.read.ReflexiveChildReaderCustomizer; +import io.fd.honeycomb.v3po.translate.util.read.ReflexiveRootReaderCustomizer; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.ChildReader; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.read.Reader; +import io.fd.honeycomb.v3po.translate.v3po.vppstate.BridgeDomainCustomizer; +import io.fd.honeycomb.v3po.translate.v3po.vppstate.VersionCustomizer; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -50,47 +49,47 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.vppjapi.vppApi; // TODO use some DI framework instead of singleton -public class VppReaderRegistry implements ReaderRegistry { +public class ReaderRegistry implements io.fd.honeycomb.v3po.translate.read.ReaderRegistry { - private static VppReaderRegistry instance; + private static ReaderRegistry instance; private final DelegatingReaderRegistry reader; - private VppReaderRegistry(@Nonnull final vppApi vppApi) { - final CompositeRootVppReader vppStateReader = initVppStateReader(vppApi); + private ReaderRegistry(@Nonnull final vppApi vppApi) { + final CompositeRootReader vppStateReader = initVppStateReader(vppApi); // TODO add more root readers - reader = new DelegatingReaderRegistry(Collections.>singletonList(vppStateReader)); + reader = new DelegatingReaderRegistry(Collections.>singletonList(vppStateReader)); } - private static CompositeRootVppReader initVppStateReader(@Nonnull final vppApi vppApi) { + private static CompositeRootReader initVppStateReader(@Nonnull final vppApi vppApi) { - final ChildVppReader versionReader = new CompositeChildVppReader<>( + final ChildReader versionReader = new CompositeChildReader<>( Version.class, new VersionCustomizer(vppApi)); - final CompositeListVppReader - bridgeDomainReader = new CompositeListVppReader<>( + final CompositeListReader + bridgeDomainReader = new CompositeListReader<>( BridgeDomain.class, new BridgeDomainCustomizer(vppApi)); - final ChildVppReader bridgeDomainsReader = new CompositeChildVppReader<>( + final ChildReader bridgeDomainsReader = new CompositeChildReader<>( BridgeDomains.class, - VppRWUtils.singletonChildReaderList(bridgeDomainReader), + RWUtils.singletonChildReaderList(bridgeDomainReader), new ReflexiveChildReaderCustomizer<>(BridgeDomainsBuilder.class)); - final List>> childVppReaders = new ArrayList<>(); + final List>> childVppReaders = new ArrayList<>(); childVppReaders.add(versionReader); childVppReaders.add(bridgeDomainsReader); - return new CompositeRootVppReader<>( + return new CompositeRootReader<>( VppState.class, childVppReaders, - VppRWUtils.emptyAugReaderList(), + RWUtils.emptyAugReaderList(), new ReflexiveRootReaderCustomizer<>(VppStateBuilder.class)); } - public static synchronized VppReaderRegistry getInstance(@Nonnull final vppApi vppApi) { + public static synchronized ReaderRegistry getInstance(@Nonnull final vppApi vppApi) { if (instance == null) { - instance = new VppReaderRegistry(vppApi); + instance = new ReaderRegistry(vppApi); } return instance; } diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppConfigDataTree.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppConfigDataTree.java index 72848ad0f..1a631fc2e 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppConfigDataTree.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppConfigDataTree.java @@ -21,10 +21,9 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.TransactionWriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriterRegistry; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.util.write.TransactionWriteContext; +import io.fd.honeycomb.v3po.translate.write.WriteContext; import java.util.Collections; import java.util.Map; import javax.annotation.Nonnull; @@ -54,7 +53,7 @@ public final class VppConfigDataTree implements VppDataTree { private final BindingNormalizedNodeSerializer serializer; private final DataTree dataTree; - private final VppWriterRegistry writer; + private final WriterRegistry writer; public static final ReadableVppDataTree EMPTY_OPERATIONAL = new ReadableVppDataTree() { @Override public CheckedFuture>, ReadFailedException> read( @@ -72,7 +71,7 @@ public final class VppConfigDataTree implements VppDataTree { * @param vppWriter service for translation between Java Binding Data and Vpp. */ public VppConfigDataTree(@Nonnull final BindingNormalizedNodeSerializer serializer, - @Nonnull final DataTree dataTree, @Nonnull final VppWriterRegistry vppWriter) { + @Nonnull final DataTree dataTree, @Nonnull final WriterRegistry vppWriter) { this.serializer = checkNotNull(serializer, "serializer should not be null"); this.dataTree = checkNotNull(dataTree, "dataTree should not be null"); this.writer = checkNotNull(vppWriter, "vppWriter should not be null"); @@ -85,7 +84,7 @@ public final class VppConfigDataTree implements VppDataTree { @Override public void commit(final DataTreeModification modification) - throws DataValidationFailedException, VppException { + throws DataValidationFailedException, TranslationException { dataTree.validate(modification); final DataTreeCandidate candidate = dataTree.prepare(modification); @@ -109,21 +108,21 @@ public final class VppConfigDataTree implements VppDataTree { final DOMDataReadOnlyTransaction afterTx = new VppReadOnlyTransaction(EMPTY_OPERATIONAL, modificationSnapshot); try(final WriteContext ctx = new TransactionWriteContext(serializer, beforeTx, afterTx)) { writer.update(nodesBefore, nodesAfter, ctx); - } catch (WriterRegistry.BulkUpdateException e) { + } catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException e) { LOG.warn("Failed to apply all changes", e); LOG.info("Trying to revert successful changes for current transaction"); try { e.revertChanges(); LOG.info("Changes successfully reverted"); - } catch (WriterRegistry.Reverter.RevertFailedException revertFailedException) { + } catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.RevertFailedException revertFailedException) { // fail with failed revert LOG.error("Failed to revert successful changes", revertFailedException); throw revertFailedException; } throw e; // fail with success revert - } catch (VppException e) { + } catch (TranslationException e) { LOG.error("Error while processing data change (before={}, after={})", nodesBefore, nodesAfter, e); throw e; } diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProvider.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProvider.java index d84f0b7b7..bdfc89079 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProvider.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProvider.java @@ -24,7 +24,7 @@ import com.google.common.util.concurrent.AsyncFunction; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import io.fd.honeycomb.v3po.impl.LoggingFuturesCallBack; -import io.fd.honeycomb.v3po.vpp.facade.read.ReaderRegistry; +import io.fd.honeycomb.v3po.translate.read.ReaderRegistry; import java.util.Collection; import java.util.Collections; import javassist.ClassPool; @@ -85,13 +85,13 @@ public final class VppDataBrokerInitializationProvider implements Provider, Auto private final DataBroker bindingBroker; private final ReaderRegistry readerRegistry; private final InstanceIdentifier mountPointPath; - private final VppWriterRegistry writerRegistry; + private final WriterRegistry writerRegistry; private ObjectRegistration mountPointRegistration; private DOMDataBroker broker; public VppDataBrokerInitializationProvider(@Nonnull final DataBroker bindingBroker, final ReaderRegistry readerRegistry, - final VppWriterRegistry writerRegistry) { + final WriterRegistry writerRegistry) { this.bindingBroker = checkNotNull(bindingBroker, "bindingBroker should not be null"); this.readerRegistry = checkNotNull(readerRegistry, "readerRegistry should not be null"); this.writerRegistry = checkNotNull(writerRegistry, "writerRegistry should not be null"); diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataTree.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataTree.java index 7e62b57b0..aba8ab133 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataTree.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppDataTree.java @@ -17,7 +17,7 @@ package io.fd.honeycomb.v3po.impl.data; import com.google.common.annotations.Beta; -import io.fd.honeycomb.v3po.vpp.facade.VppException; +import io.fd.honeycomb.v3po.translate.TranslationException; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; @@ -31,9 +31,9 @@ public interface VppDataTree { * * @param modification VPP data tree modification * @throws DataValidationFailedException if modification data is not valid - * @throws VppException if commit failed while updating VPP state + * @throws TranslationException if commit failed while updating VPP state */ - void commit(final DataTreeModification modification) throws DataValidationFailedException, VppException; + void commit(final DataTreeModification modification) throws DataValidationFailedException, TranslationException; /** * Creates read-only snapshot of a VppDataTree. diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java index 12d281611..8f606fdbf 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTree.java @@ -26,10 +26,10 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Multimap; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.read.ReaderRegistry; +import io.fd.honeycomb.v3po.translate.Context; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.read.ReaderRegistry; import java.util.Collection; import java.util.Map; import javax.annotation.Nonnull; diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriteTransaction.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriteTransaction.java index 1baa586b1..b33fffa68 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriteTransaction.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriteTransaction.java @@ -26,7 +26,7 @@ import com.google.common.base.Preconditions; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; -import io.fd.honeycomb.v3po.vpp.facade.VppException; +import io.fd.honeycomb.v3po.translate.TranslationException; import javax.annotation.Nonnull; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.md.sal.common.api.TransactionStatus; @@ -121,7 +121,7 @@ final class VppWriteTransaction implements DOMDataWriteTransaction { try { configDataTree.commit(modification); status = COMMITED; - } catch (DataValidationFailedException | VppException e) { + } catch (DataValidationFailedException | TranslationException e) { status = FAILED; LOG.error("Failed to commit VPP state modification", e); return Futures.immediateFailedCheckedFuture( diff --git a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriterRegistry.java b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/WriterRegistry.java similarity index 57% rename from v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriterRegistry.java rename to v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/WriterRegistry.java index 04b4bd631..00dc22520 100644 --- a/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/VppWriterRegistry.java +++ b/v3po/impl/src/main/java/io/fd/honeycomb/v3po/impl/data/WriterRegistry.java @@ -16,19 +16,18 @@ package io.fd.honeycomb.v3po.impl.data; -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeListVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeRootVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.DelegatingWriterRegistry; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.NoopWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.ReflexiveChildWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.VppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriterRegistry; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.impl.write.CompositeChildWriter; +import io.fd.honeycomb.v3po.translate.impl.write.CompositeListWriter; +import io.fd.honeycomb.v3po.translate.impl.write.CompositeRootWriter; +import io.fd.honeycomb.v3po.translate.util.write.DelegatingWriterRegistry; +import io.fd.honeycomb.v3po.translate.util.write.NoopWriterCustomizer; +import io.fd.honeycomb.v3po.translate.util.write.ReflexiveChildWriterCustomizer; +import io.fd.honeycomb.v3po.translate.v3po.vpp.BridgeDomainCustomizer; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; +import io.fd.honeycomb.v3po.translate.write.Writer; +import io.fd.honeycomb.v3po.translate.write.WriteContext; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -45,39 +44,39 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.openvpp.vppjapi.vppApi; // TODO use some DI framework instead of singleton -public class VppWriterRegistry implements WriterRegistry { +public class WriterRegistry implements io.fd.honeycomb.v3po.translate.write.WriterRegistry { - private static VppWriterRegistry instance; + private static WriterRegistry instance; private final DelegatingWriterRegistry writer; - private VppWriterRegistry(@Nonnull final vppApi vppApi) { - final CompositeRootVppWriter vppWriter = initVppStateWriter(vppApi); - writer = new DelegatingWriterRegistry(Collections.>singletonList(vppWriter)); + private WriterRegistry(@Nonnull final vppApi vppApi) { + final CompositeRootWriter vppWriter = initVppStateWriter(vppApi); + writer = new DelegatingWriterRegistry(Collections.>singletonList(vppWriter)); } - private static CompositeRootVppWriter initVppStateWriter(@Nonnull final vppApi vppApi) { - final CompositeListVppWriter bridgeDomainWriter = new CompositeListVppWriter<>( + private static CompositeRootWriter initVppStateWriter(@Nonnull final vppApi vppApi) { + final CompositeListWriter bridgeDomainWriter = new CompositeListWriter<>( BridgeDomain.class, new BridgeDomainCustomizer(vppApi)); - final ChildVppWriter bridgeDomainsWriter = new CompositeChildVppWriter<>( + final ChildWriter bridgeDomainsWriter = new CompositeChildWriter<>( BridgeDomains.class, - VppRWUtils.singletonChildWriterList(bridgeDomainWriter), + RWUtils.singletonChildWriterList(bridgeDomainWriter), new ReflexiveChildWriterCustomizer()); - final List>> childWriters = new ArrayList<>(); + final List>> childWriters = new ArrayList<>(); childWriters.add(bridgeDomainsWriter); - return new CompositeRootVppWriter<>( + return new CompositeRootWriter<>( Vpp.class, childWriters, new NoopWriterCustomizer()); } - public static synchronized VppWriterRegistry getInstance(@Nonnull final vppApi vppApi) { + public static synchronized WriterRegistry getInstance(@Nonnull final vppApi vppApi) { if (instance == null) { - instance = new VppWriterRegistry(vppApi); + instance = new WriterRegistry(vppApi); } return instance; } @@ -91,7 +90,7 @@ public class VppWriterRegistry implements WriterRegistry { @Override public void update(@Nonnull final InstanceIdentifier id, @Nullable final DataObject dataBefore, - @Nullable final DataObject data, @Nonnull final WriteContext ctx) throws VppException { + @Nullable final DataObject data, @Nonnull final WriteContext ctx) throws TranslationException { writer.update(id, dataBefore, data, ctx); } @@ -99,7 +98,7 @@ public class VppWriterRegistry implements WriterRegistry { public void update(@Nonnull final Map, DataObject> dataBefore, @Nonnull final Map, DataObject> dataAfter, @Nonnull final WriteContext ctx) - throws VppException { + throws TranslationException { writer.update(dataBefore, dataAfter, ctx); } } diff --git a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VPPConfigDataTreeTest.java b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VPPConfigDataTreeTest.java index 207a64a99..c4315cd38 100644 --- a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VPPConfigDataTreeTest.java +++ b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VPPConfigDataTreeTest.java @@ -31,9 +31,8 @@ import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriterRegistry; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.write.WriteContext; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -60,7 +59,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; public class VPPConfigDataTreeTest { @Mock - private VppWriterRegistry vppWriter; + private WriterRegistry vppWriter; @Mock private BindingNormalizedNodeSerializer serializer; @Mock @@ -156,11 +155,12 @@ public class VPPConfigDataTreeTest { final DataObject dataBefore = mockDataObject("before", Ethernet.class); final DataObject dataAfter = mockDataObject("after", Ethernet.class); - final WriterRegistry.Reverter reverter = mock(WriterRegistry.Reverter.class); + final io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter reverter = mock( + io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.class); // Fail on update: - final VppException failedOnUpdateException = new VppException("update failed"); - doThrow(new WriterRegistry.BulkUpdateException(InstanceIdentifier.create(Ethernet.class), reverter, + final TranslationException failedOnUpdateException = new TranslationException("update failed"); + doThrow(new io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException(InstanceIdentifier.create(Ethernet.class), reverter, failedOnUpdateException)).when(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class)); // Prepare modification: @@ -175,7 +175,7 @@ public class VPPConfigDataTreeTest { // Run the test try { proxy.commit(modification); - } catch (WriterRegistry.BulkUpdateException e) { + } catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException e) { verify(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class)); verify(reverter).revert(); assertEquals(failedOnUpdateException, e.getCause()); @@ -191,16 +191,17 @@ public class VPPConfigDataTreeTest { final DataObject dataBefore = mockDataObject("before", Ethernet.class); final DataObject dataAfter = mockDataObject("after", Ethernet.class); - final WriterRegistry.Reverter reverter = mock(WriterRegistry.Reverter.class); + final io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter reverter = mock( + io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.class); // Fail on update: - doThrow(new WriterRegistry.BulkUpdateException(InstanceIdentifier.create(Ethernet.class), reverter, - new VppException("update failed"))).when(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class)); + doThrow(new io.fd.honeycomb.v3po.translate.write.WriterRegistry.BulkUpdateException(InstanceIdentifier.create(Ethernet.class), reverter, + new TranslationException("update failed"))).when(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class)); // Fail on revert: - final VppException failedOnRevertException = new VppException("update failed"); - final WriterRegistry.Reverter.RevertFailedException revertFailedException = - new WriterRegistry.Reverter.RevertFailedException(Collections.>emptyList(), + final TranslationException failedOnRevertException = new TranslationException("update failed"); + final io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.RevertFailedException revertFailedException = + new io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.RevertFailedException(Collections.>emptyList(), failedOnRevertException); doThrow(revertFailedException).when(reverter).revert(); @@ -216,7 +217,7 @@ public class VPPConfigDataTreeTest { // Run the test try { proxy.commit(modification); - } catch (WriterRegistry.Reverter.RevertFailedException e) { + } catch (io.fd.honeycomb.v3po.translate.write.WriterRegistry.Reverter.RevertFailedException e) { verify(vppWriter).update(anyMap(), anyMap(), any(WriteContext.class)); verify(reverter).revert(); assertEquals(failedOnRevertException, e.getCause()); diff --git a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProviderTest.java b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProviderTest.java index 2c50ec92d..51f57a252 100644 --- a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProviderTest.java +++ b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppDataBrokerInitializationProviderTest.java @@ -26,7 +26,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.util.concurrent.CheckedFuture; -import io.fd.honeycomb.v3po.vpp.facade.read.ReaderRegistry; +import io.fd.honeycomb.v3po.translate.read.ReaderRegistry; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; @@ -45,7 +45,7 @@ public class VppDataBrokerInitializationProviderTest { @Mock private ReaderRegistry readerRegistry; @Mock - private VppWriterRegistry writerRegistry; + private WriterRegistry writerRegistry; private VppDataBrokerInitializationProvider provider; diff --git a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java index 09e70941b..049c2a0c8 100644 --- a/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java +++ b/v3po/impl/src/test/java/io/fd/honeycomb/v3po/impl/data/VppOperationalDataTreeTest.java @@ -34,8 +34,8 @@ import com.google.common.collect.Iterables; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.Multimap; import com.google.common.util.concurrent.CheckedFuture; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReaderRegistry; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.ReaderRegistry; import java.util.Map; import org.junit.Before; import org.junit.Test; @@ -121,7 +121,7 @@ public class VppOperationalDataTreeTest { @Test public void testReadFailed() throws Exception{ - doThrow(io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException.class).when(reader).readAll(any(ReadContext.class)); + doThrow(io.fd.honeycomb.v3po.translate.read.ReadFailedException.class).when(reader).readAll(any(ReadContext.class)); final CheckedFuture>, ReadFailedException> future = operationalData.read( YangInstanceIdentifier.EMPTY); @@ -129,7 +129,7 @@ public class VppOperationalDataTreeTest { try { future.checkedGet(); } catch (ReadFailedException e) { - assertTrue(e.getCause() instanceof io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException); + assertTrue(e.getCause() instanceof io.fd.honeycomb.v3po.translate.read.ReadFailedException); return; } fail("ReadFailedException was expected"); diff --git a/v3po/pom.xml b/v3po/pom.xml index cb9073c9b..7fdf97b44 100644 --- a/v3po/pom.xml +++ b/v3po/pom.xml @@ -33,10 +33,11 @@ api - vpp-facade-spi - vpp-facade-api - vpp-facade-impl - vpp-facade-utils + translate-spi + translate-api + translate-impl + translate-utils + vpp-translate-utils v3po2vpp impl karaf diff --git a/v3po/vpp-facade-api/pom.xml b/v3po/translate-api/pom.xml similarity index 98% rename from v3po/vpp-facade-api/pom.xml rename to v3po/translate-api/pom.xml index 0406f1e80..42501e752 100644 --- a/v3po/vpp-facade-api/pom.xml +++ b/v3po/translate-api/pom.xml @@ -24,7 +24,7 @@ 4.0.0 io.fd.honeycomb.v3po - vpp-facade-api + translate-api 1.0.0-SNAPSHOT bundle diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/Context.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/Context.java similarity index 96% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/Context.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/Context.java index 16808db1f..b60963678 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/Context.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/Context.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade; +package io.fd.honeycomb.v3po.translate; import com.google.common.collect.Maps; import java.util.HashMap; diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/SubtreeManager.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/SubtreeManager.java similarity index 96% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/SubtreeManager.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/SubtreeManager.java index 28eee203b..39e403642 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/SubtreeManager.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/SubtreeManager.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade; +package io.fd.honeycomb.v3po.translate; import com.google.common.annotations.Beta; import javax.annotation.Nonnull; diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppException.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/TranslationException.java similarity index 70% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppException.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/TranslationException.java index ff6101bb8..ee0049977 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppException.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/TranslationException.java @@ -14,25 +14,25 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade; +package io.fd.honeycomb.v3po.translate; import com.google.common.annotations.Beta; /** - * Base exception for Vpp translation layer + * Base exception for the translation layer */ @Beta -public class VppException extends Exception { +public class TranslationException extends Exception { - public VppException(final String s) { + public TranslationException(final String s) { super(s); } - public VppException(final String s, final Throwable cause) { + public TranslationException(final String s, final Throwable cause) { super(s, cause); } - public VppException(final Throwable cause) { + public TranslationException(final Throwable cause) { super(cause); } } diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppApiInvocationException.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/VppApiInvocationException.java similarity index 95% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppApiInvocationException.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/VppApiInvocationException.java index ac1d7f7db..298c698f7 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/VppApiInvocationException.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/VppApiInvocationException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade; +package io.fd.honeycomb.v3po.translate; import com.google.common.annotations.Beta; import com.google.common.base.Preconditions; @@ -24,7 +24,7 @@ import javax.annotation.Nonnull; * Thrown when Vpp jAPI method invocation failed. */ @Beta -public class VppApiInvocationException extends VppException { +public class VppApiInvocationException extends TranslationException { private final String methodName; private final int ctxId; private final int errorCode; diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ChildVppReader.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ChildReader.java similarity index 90% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ChildVppReader.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ChildReader.java index 1608db4b2..02b6b8d26 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ChildVppReader.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ChildReader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.read; +package io.fd.honeycomb.v3po.translate.read; import com.google.common.annotations.Beta; import javax.annotation.Nonnull; @@ -23,12 +23,12 @@ import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Child VPP reader allowing its parent to pass the builder object + * Child reader allowing its parent to pass the builder object * * @param Specific DataObject derived type, that is handled by this reader */ @Beta -public interface ChildVppReader extends VppReader { +public interface ChildReader extends Reader { /** * Reads subtree starting from node managed by this reader and place the subtree within parent builder object if the diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ListVppReader.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ListReader.java similarity index 87% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ListVppReader.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ListReader.java index 950014574..faf6f0a19 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ListVppReader.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ListReader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.read; +package io.fd.honeycomb.v3po.translate.read; import com.google.common.annotations.Beta; import java.util.List; @@ -25,12 +25,12 @@ import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * List VPP reader, allowing read of all the elements + * List reader, allowing read of all the elements * * @param Specific DataObject derived type, that is handled by this reader */ @Beta -public interface ListVppReader, K extends Identifier> extends VppReader { +public interface ListReader, K extends Identifier> extends Reader { /** * Read all elements in this list diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReadContext.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReadContext.java similarity index 90% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReadContext.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReadContext.java index 527888ab1..6b1473548 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReadContext.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReadContext.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.read; +package io.fd.honeycomb.v3po.translate.read; -import io.fd.honeycomb.v3po.vpp.facade.Context; +import io.fd.honeycomb.v3po.translate.Context; import javax.annotation.Nonnull; /** diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReadFailedException.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReadFailedException.java similarity index 88% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReadFailedException.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReadFailedException.java index 3e87b925b..51d4fcb5a 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReadFailedException.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReadFailedException.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.read; +package io.fd.honeycomb.v3po.translate.read; import static com.google.common.base.Preconditions.checkNotNull; -import io.fd.honeycomb.v3po.vpp.facade.VppException; +import io.fd.honeycomb.v3po.translate.TranslationException; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Thrown when Vpp reader or customizer is not able to read data for the given id. + * Thrown when a reader or customizer is not able to read data for the given id. */ -public class ReadFailedException extends VppException { +public class ReadFailedException extends TranslationException { private final InstanceIdentifier failedId; diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/VppReader.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/Reader.java similarity index 85% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/VppReader.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/Reader.java index 6eea594b4..122263cb3 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/VppReader.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/Reader.java @@ -14,27 +14,27 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.read; +package io.fd.honeycomb.v3po.translate.read; import com.google.common.annotations.Beta; import com.google.common.base.Optional; -import io.fd.honeycomb.v3po.vpp.facade.SubtreeManager; +import io.fd.honeycomb.v3po.translate.SubtreeManager; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Base VPP reader, responsible for translation between DataObjects and VPP APIs + * Base reader, responsible for translation between DataObjects and any other side * * @param Specific DataObject derived type, that is handled by this reader */ @Beta -public interface VppReader extends SubtreeManager { +public interface Reader extends SubtreeManager { // TODO make async /** - * Reads from VPP data identified by id + * Reads data identified by id * * @param id unique identifier of subtree to be read. The subtree must contain managed data object type. For * identifiers pointing below node managed by this reader, it's reader's responsibility to filter out the diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReaderRegistry.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReaderRegistry.java similarity index 93% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReaderRegistry.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReaderRegistry.java index 2bd51254f..f34455a27 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/read/ReaderRegistry.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/read/ReaderRegistry.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.read; +package io.fd.honeycomb.v3po.translate.read; import com.google.common.annotations.Beta; import com.google.common.collect.Multimap; @@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * Simple delegating reader suitable as a holder for all other root readers, providing readAll feature. */ @Beta -public interface ReaderRegistry extends VppReader { +public interface ReaderRegistry extends Reader { /** * Performs read on all registered root readers and merges the results into a Multimap. Keys represent identifiers diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/ChildVppWriter.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/ChildWriter.java similarity index 90% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/ChildVppWriter.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/ChildWriter.java index 017f5d9aa..f933cfd4a 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/ChildVppWriter.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/ChildWriter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.write; +package io.fd.honeycomb.v3po.translate.write; import com.google.common.annotations.Beta; import javax.annotation.Nonnull; @@ -22,12 +22,12 @@ import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Child VPP writer allowing its parent to pass the builder object + * Child writer allowing its parent to pass the builder object * - * @param Specific DataObject derived type, that is handled by this writer + * @param Specific DataObject derived type, that is handled by this writer */ @Beta -public interface ChildVppWriter extends VppWriter { +public interface ChildWriter extends Writer { /** * Extract data object managed by this writer from parent data and perform write. diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/WriteContext.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/WriteContext.java similarity index 94% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/WriteContext.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/WriteContext.java index ffc9f20f7..bb0b33145 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/WriteContext.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/WriteContext.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.write; +package io.fd.honeycomb.v3po.translate.write; import com.google.common.annotations.Beta; import com.google.common.base.Optional; -import io.fd.honeycomb.v3po.vpp.facade.Context; +import io.fd.honeycomb.v3po.translate.Context; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/VppWriter.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/Writer.java similarity index 75% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/VppWriter.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/Writer.java index 83f600f5b..08465fdd7 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/VppWriter.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/Writer.java @@ -14,24 +14,24 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.write; +package io.fd.honeycomb.v3po.translate.write; import com.google.common.annotations.Beta; -import io.fd.honeycomb.v3po.vpp.facade.SubtreeManager; -import io.fd.honeycomb.v3po.vpp.facade.VppException; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.SubtreeManager; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Base VPP writer, responsible for translation between DataObjects and VPP APIs. Handling all update operations(create, + * Base writer, responsible for translation between DataObjects and any other side. Handling all update operations(create, * update, delete) * * @param Specific DataObject derived type, that is handled by this writer */ @Beta -public interface VppWriter extends SubtreeManager { +public interface Writer extends SubtreeManager { /** * Handle update operation. U from CRUD. @@ -40,10 +40,10 @@ public interface VppWriter extends SubtreeManager { * @param dataBefore Old data * @param dataAfter New, updated data * @param ctx Write context enabling writer to get information about candidate data as well as current data - * @throws VppException if update failed + * @throws TranslationException if update failed */ void update(@Nonnull final InstanceIdentifier id, @Nullable final DataObject dataBefore, @Nullable final DataObject dataAfter, - @Nonnull final WriteContext ctx) throws VppException; + @Nonnull final WriteContext ctx) throws TranslationException; } diff --git a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/WriterRegistry.java b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/WriterRegistry.java similarity index 89% rename from v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/WriterRegistry.java rename to v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/WriterRegistry.java index 0d3c17451..c5a8116c8 100644 --- a/v3po/vpp-facade-api/src/main/java/io/fd/honeycomb/v3po/vpp/facade/write/WriterRegistry.java +++ b/v3po/translate-api/src/main/java/io/fd/honeycomb/v3po/translate/write/WriterRegistry.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.write; +package io.fd.honeycomb.v3po.translate.write; import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; -import io.fd.honeycomb.v3po.vpp.facade.VppException; +import io.fd.honeycomb.v3po.translate.TranslationException; import java.util.List; import java.util.Map; import javax.annotation.Nonnull; @@ -28,26 +28,26 @@ import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Special {@link VppWriter} capable of performing bulk updates + * Special {@link Writer} capable of performing bulk updates */ @Beta -public interface WriterRegistry extends VppWriter { +public interface WriterRegistry extends Writer { /** * Performs bulk update * * @throws BulkUpdateException in case bulk update fails - * @throws VppException in case some other error occurs while processing update request + * @throws TranslationException in case some other error occurs while processing update request */ void update(@Nonnull final Map, DataObject> dataBefore, @Nonnull final Map, DataObject> dataAfter, - @Nonnull final WriteContext ctx) throws VppException; + @Nonnull final WriteContext ctx) throws TranslationException; /** * Thrown when bulk update failed. */ @Beta - class BulkUpdateException extends VppException { + class BulkUpdateException extends TranslationException { private final Reverter reverter; private final InstanceIdentifier failedId; // TODO change to VppDataModification @@ -103,7 +103,7 @@ public interface WriterRegistry extends VppWriter { * Thrown when some of the changes applied during bulk update were not reverted. */ @Beta - class RevertFailedException extends VppException { + class RevertFailedException extends TranslationException { // TODO change to list of VppDataModifications to make debugging easier private final List> notRevertedChanges; diff --git a/v3po/vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade/ReadFailedExceptionTest.java b/v3po/translate-api/src/test/java/io/fd/honeycomb/v3po/translate/ReadFailedExceptionTest.java similarity index 73% rename from v3po/vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade/ReadFailedExceptionTest.java rename to v3po/translate-api/src/test/java/io/fd/honeycomb/v3po/translate/ReadFailedExceptionTest.java index 594168df2..71c0afbd3 100644 --- a/v3po/vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade/ReadFailedExceptionTest.java +++ b/v3po/translate-api/src/test/java/io/fd/honeycomb/v3po/translate/ReadFailedExceptionTest.java @@ -14,20 +14,19 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade; +package io.fd.honeycomb.v3po.translate; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; import org.junit.Assert; import org.junit.Test; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.BridgeDomain; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.bridge.domain.Interface; +import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public class ReadFailedExceptionTest { @Test public void testInstantiation() { - final InstanceIdentifier id = InstanceIdentifier.create(BridgeDomain.class); + final InstanceIdentifier id = InstanceIdentifier.create(DataObject.class); ReadFailedException e = new ReadFailedException(id); Assert.assertEquals(id, e.getFailedId()); Assert.assertNull(e.getCause()); @@ -36,7 +35,7 @@ public class ReadFailedExceptionTest { @Test public void testInstantiationWithCause() { - final InstanceIdentifier id = InstanceIdentifier.create(Interface.class); + final InstanceIdentifier id = InstanceIdentifier.create(DataObject.class); final RuntimeException cause = new RuntimeException(); ReadFailedException e = new ReadFailedException(id, cause); Assert.assertEquals(id, e.getFailedId()); diff --git a/v3po/vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade/VppApiInvocationExceptionTest.java b/v3po/translate-api/src/test/java/io/fd/honeycomb/v3po/translate/VppApiInvocationExceptionTest.java similarity index 97% rename from v3po/vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade/VppApiInvocationExceptionTest.java rename to v3po/translate-api/src/test/java/io/fd/honeycomb/v3po/translate/VppApiInvocationExceptionTest.java index a3a37c192..b2cfbd216 100644 --- a/v3po/vpp-facade-api/src/test/java/io/fd/honeycomb/v3po/vpp/facade/VppApiInvocationExceptionTest.java +++ b/v3po/translate-api/src/test/java/io/fd/honeycomb/v3po/translate/VppApiInvocationExceptionTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade; +package io.fd.honeycomb.v3po.translate; import java.util.Random; import org.junit.Assert; diff --git a/v3po/vpp-facade-impl/pom.xml b/v3po/translate-impl/pom.xml similarity index 91% rename from v3po/vpp-facade-impl/pom.xml rename to v3po/translate-impl/pom.xml index fff69c2b7..214d48ff0 100644 --- a/v3po/vpp-facade-impl/pom.xml +++ b/v3po/translate-impl/pom.xml @@ -24,24 +24,24 @@ 4.0.0 io.fd.honeycomb.v3po - vpp-facade-impl + translate-impl 1.0.0-SNAPSHOT bundle ${project.groupId} - vpp-facade-api + translate-api ${project.version} ${project.groupId} - vpp-facade-spi + translate-spi ${project.version} ${project.groupId} - vpp-facade-utils + translate-utils ${project.version} @@ -77,7 +77,7 @@ ${project.groupId}.${project.artifactId} - io.fd.honeycomb.v3po.vpp.facade.impl.* + io.fd.honeycomb.v3po.translate.impl.* diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/AbstractCompositeVppReader.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/AbstractCompositeReader.java similarity index 83% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/AbstractCompositeVppReader.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/AbstractCompositeReader.java index 2856937ba..f9fa0eeaa 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/AbstractCompositeVppReader.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/AbstractCompositeReader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read; +package io.fd.honeycomb.v3po.translate.impl.read; import static com.google.common.base.Preconditions.checkArgument; @@ -22,12 +22,12 @@ import com.google.common.annotations.Beta; import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.ReflectionUtils; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.read.VppReader; +import io.fd.honeycomb.v3po.translate.util.ReflectionUtils; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.ChildReader; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.read.Reader; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collections; @@ -45,19 +45,19 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Beta -abstract class AbstractCompositeVppReader> implements VppReader { +abstract class AbstractCompositeReader> implements Reader { - private static final Logger LOG = LoggerFactory.getLogger(AbstractCompositeVppReader.class); + private static final Logger LOG = LoggerFactory.getLogger(AbstractCompositeReader.class); - private final Map, ChildVppReader>> childReaders; - private final Map, ChildVppReader>> augReaders; + private final Map, ChildReader>> childReaders; + private final Map, ChildReader>> augReaders; private final InstanceIdentifier instanceIdentifier; - AbstractCompositeVppReader(final Class managedDataObjectType, - final List>> childReaders, - final List>> augReaders) { - this.childReaders = VppRWUtils.uniqueLinkedIndex(childReaders, VppRWUtils.MANAGER_CLASS_FUNCTION); - this.augReaders = VppRWUtils.uniqueLinkedIndex(augReaders, VppRWUtils.MANAGER_CLASS_AUG_FUNCTION); + AbstractCompositeReader(final Class managedDataObjectType, + final List>> childReaders, + final List>> augReaders) { + this.childReaders = RWUtils.uniqueLinkedIndex(childReaders, RWUtils.MANAGER_CLASS_FUNCTION); + this.augReaders = RWUtils.uniqueLinkedIndex(augReaders, RWUtils.MANAGER_CLASS_AUG_FUNCTION); this.instanceIdentifier = InstanceIdentifier.create(managedDataObjectType); } @@ -82,12 +82,12 @@ abstract class AbstractCompositeVppReader> child : childReaders.values()) { + for (ChildReader> child : childReaders.values()) { LOG.debug("{}: Reading child from: {}", this, child); child.read(id, builder, ctx); } - for (ChildVppReader> child : augReaders.values()) { + for (ChildReader> child : augReaders.values()) { LOG.debug("{}: Reading augment from: {}", this, child); child.read(id, builder, ctx); } @@ -120,16 +120,16 @@ abstract class AbstractCompositeVppReader next = VppRWUtils.getNextId(id, getManagedDataObjectType()).getType(); - final ChildVppReader> vppReader = childReaders.get(next); + final Class next = RWUtils.getNextId(id, getManagedDataObjectType()).getType(); + final ChildReader> reader = childReaders.get(next); - if (vppReader != null) { - LOG.debug("{}: Reading subtree: {} from: {}", this, id, vppReader); - return vppReader.read(id, ctx); + if (reader != null) { + LOG.debug("{}: Reading subtree: {} from: {}", this, id, reader); + return reader.read(id, ctx); } else { LOG.debug("{}: Dedicated subtree reader missing for: {}. Reading current and filtering", this, next); // If there's no dedicated reader, use read current - final InstanceIdentifier currentId = VppRWUtils.cutId(id, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.cutId(id, getManagedDataObjectType()); final Optional current = readCurrent(currentId, ctx); // then perform post-reading filtering (return only requested sub-node) final Optional readSubtree = current.isPresent() @@ -168,7 +168,7 @@ abstract class AbstractCompositeVppReader method = ReflectionUtils.findMethodReflex(managedType, "get", Collections.>emptyList(), nextId.getType()); diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeChildVppReader.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeChildReader.java similarity index 53% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeChildVppReader.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeChildReader.java index 76e793dbe..46a59bb90 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeChildVppReader.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeChildReader.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read; +package io.fd.honeycomb.v3po.translate.impl.read; import com.google.common.annotations.Beta; import com.google.common.base.Optional; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.ChildVppReaderCustomizer; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.ChildReader; +import io.fd.honeycomb.v3po.translate.spi.read.ChildReaderCustomizer; import java.util.List; import javax.annotation.Nonnull; import javax.annotation.concurrent.ThreadSafe; @@ -33,18 +33,18 @@ import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * Composite implementation of {@link ChildVppReader} able to place the read result into + * Composite implementation of {@link ChildReader} able to place the read result into * parent builder object. */ @Beta @ThreadSafe -public final class CompositeChildVppReader> extends AbstractCompositeVppReader - implements ChildVppReader { +public final class CompositeChildReader> extends AbstractCompositeReader + implements ChildReader { - private final ChildVppReaderCustomizer customizer; + private final ChildReaderCustomizer customizer; /** - * Create new {@link CompositeChildVppReader} + * Create new {@link CompositeChildReader} * * @param managedDataObjectType Class object for managed data type * @param childReaders Child nodes(container, list) readers @@ -52,29 +52,29 @@ public final class CompositeChildVppReader managedDataObjectType, - @Nonnull final List>> childReaders, - @Nonnull final List>> augReaders, - @Nonnull final ChildVppReaderCustomizer customizer) { + public CompositeChildReader(@Nonnull final Class managedDataObjectType, + @Nonnull final List>> childReaders, + @Nonnull final List>> augReaders, + @Nonnull final ChildReaderCustomizer customizer) { super(managedDataObjectType, childReaders, augReaders); this.customizer = customizer; } /** - * @see {@link CompositeChildVppReader#CompositeChildVppReader(Class, List, List, ChildVppReaderCustomizer)} + * @see {@link CompositeChildReader#CompositeChildReader(Class, List, List, ChildReaderCustomizer)} */ - public CompositeChildVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final List>> childReaders, - @Nonnull final ChildVppReaderCustomizer customizer) { - this(managedDataObjectType, childReaders, VppRWUtils.emptyAugReaderList(), customizer); + public CompositeChildReader(@Nonnull final Class managedDataObjectType, + @Nonnull final List>> childReaders, + @Nonnull final ChildReaderCustomizer customizer) { + this(managedDataObjectType, childReaders, RWUtils.emptyAugReaderList(), customizer); } /** - * @see {@link CompositeChildVppReader#CompositeChildVppReader(Class, List, List, ChildVppReaderCustomizer)} + * @see {@link CompositeChildReader#CompositeChildReader(Class, List, List, ChildReaderCustomizer)} */ - public CompositeChildVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final ChildVppReaderCustomizer customizer) { - this(managedDataObjectType, VppRWUtils.emptyChildReaderList(), VppRWUtils.emptyAugReaderList(), + public CompositeChildReader(@Nonnull final Class managedDataObjectType, + @Nonnull final ChildReaderCustomizer customizer) { + this(managedDataObjectType, RWUtils.emptyChildReaderList(), RWUtils.emptyAugReaderList(), customizer); } @@ -82,7 +82,7 @@ public final class CompositeChildVppReader parentId, @Nonnull final Builder parentBuilder, @Nonnull final ReadContext ctx) throws ReadFailedException { - final Optional read = readCurrent(VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()), ctx); + final Optional read = readCurrent(RWUtils.appendTypeToId(parentId, getManagedDataObjectType()), ctx); if(read.isPresent()) { customizer.merge(parentBuilder, read.get()); diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeListVppReader.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeListReader.java similarity index 61% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeListVppReader.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeListReader.java index fcfa8b428..fd7b279ca 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeListVppReader.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeListReader.java @@ -14,18 +14,18 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read; +package io.fd.honeycomb.v3po.translate.impl.read; import static com.google.common.base.Preconditions.checkArgument; import com.google.common.annotations.Beta; import com.google.common.base.Optional; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ListVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.ListVppReaderCustomizer; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.ChildReader; +import io.fd.honeycomb.v3po.translate.read.ListReader; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.spi.read.ListReaderCustomizer; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; @@ -41,7 +41,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Composite implementation of {@link io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader} able to place the read result into parent builder object intended + * Composite implementation of {@link ChildReader} able to place the read result into parent builder object intended * for list node type. * * This reader checks if the IDs are wildcarded in which case it performs read of all list entries. In case the ID has a @@ -49,44 +49,44 @@ import org.slf4j.LoggerFactory; */ @Beta @ThreadSafe -public final class CompositeListVppReader, K extends Identifier, B extends Builder> - extends AbstractCompositeVppReader implements ChildVppReader, ListVppReader { +public final class CompositeListReader, K extends Identifier, B extends Builder> + extends AbstractCompositeReader implements ChildReader, ListReader { - private static final Logger LOG = LoggerFactory.getLogger(CompositeListVppReader.class); + private static final Logger LOG = LoggerFactory.getLogger(CompositeListReader.class); - private final ListVppReaderCustomizer customizer; + private final ListReaderCustomizer customizer; /** - * Create new {@link CompositeListVppReader} + * Create new {@link CompositeListReader} * * @param managedDataObjectType Class object for managed data type. Must come from a list node type. * @param childReaders Child nodes(container, list) readers * @param augReaders Child augmentations readers * @param customizer Customizer instance to customize this generic reader */ - public CompositeListVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final List>> childReaders, - @Nonnull final List>> augReaders, - @Nonnull final ListVppReaderCustomizer customizer) { + public CompositeListReader(@Nonnull final Class managedDataObjectType, + @Nonnull final List>> childReaders, + @Nonnull final List>> augReaders, + @Nonnull final ListReaderCustomizer customizer) { super(managedDataObjectType, childReaders, augReaders); this.customizer = customizer; } /** - * @see {@link CompositeListVppReader#CompositeListVppReader(Class, List, List, ListVppReaderCustomizer)} + * @see {@link CompositeListReader#CompositeListReader(Class, List, List, ListReaderCustomizer)} */ - public CompositeListVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final List>> childReaders, - @Nonnull final ListVppReaderCustomizer customizer) { - this(managedDataObjectType, childReaders, VppRWUtils.emptyAugReaderList(), customizer); + public CompositeListReader(@Nonnull final Class managedDataObjectType, + @Nonnull final List>> childReaders, + @Nonnull final ListReaderCustomizer customizer) { + this(managedDataObjectType, childReaders, RWUtils.emptyAugReaderList(), customizer); } /** - * @see {@link CompositeListVppReader#CompositeListVppReader(Class, List, List, ListVppReaderCustomizer)} + * @see {@link CompositeListReader#CompositeListReader(Class, List, List, ListReaderCustomizer)} */ - public CompositeListVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final ListVppReaderCustomizer customizer) { - this(managedDataObjectType, VppRWUtils.emptyChildReaderList(), VppRWUtils.emptyAugReaderList(), + public CompositeListReader(@Nonnull final Class managedDataObjectType, + @Nonnull final ListReaderCustomizer customizer) { + this(managedDataObjectType, RWUtils.emptyChildReaderList(), RWUtils.emptyAugReaderList(), customizer); } @@ -95,7 +95,7 @@ public final class CompositeListVppReader @Nonnull final Builder parentBuilder, @Nonnull final ReadContext ctx) throws ReadFailedException { // Create ID pointing to current node - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(id, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(id, getManagedDataObjectType()); // Read all, since current ID is definitely wildcarded final List ifcs = readList(currentId, ctx); customizer.merge(parentBuilder, ifcs); @@ -112,8 +112,8 @@ public final class CompositeListVppReader final ArrayList allEntries = new ArrayList<>(allIds.size()); for (K key : allIds) { final InstanceIdentifier.IdentifiableItem currentBdItem = - VppRWUtils.getCurrentIdItem(id, key); - final InstanceIdentifier keyedId = VppRWUtils.replaceLastInId(id, currentBdItem); + RWUtils.getCurrentIdItem(id, key); + final InstanceIdentifier keyedId = RWUtils.replaceLastInId(id, currentBdItem); final Optional read = readCurrent(keyedId, ctx); final DataObject singleItem = read.get(); checkArgument(getManagedDataObjectType().getTargetType().isAssignableFrom(singleItem.getClass())); diff --git a/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeRootReader.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeRootReader.java new file mode 100644 index 000000000..f297abb76 --- /dev/null +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/read/CompositeRootReader.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.v3po.translate.impl.read; + +import com.google.common.annotations.Beta; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.ChildReader; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.Reader; +import io.fd.honeycomb.v3po.translate.spi.read.RootReaderCustomizer; +import java.util.List; +import javax.annotation.Nonnull; +import javax.annotation.concurrent.ThreadSafe; +import org.opendaylight.yangtools.concepts.Builder; +import org.opendaylight.yangtools.yang.binding.Augmentation; +import org.opendaylight.yangtools.yang.binding.ChildOf; +import org.opendaylight.yangtools.yang.binding.DataObject; +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; + +/** + * Composite implementation of {@link Reader} + */ +@Beta +@ThreadSafe +public final class CompositeRootReader> extends AbstractCompositeReader + implements Reader { + + private final RootReaderCustomizer customizer; + + /** + * Create new {@link CompositeRootReader} + * + * @param managedDataObjectType Class object for managed data type + * @param childReaders Child nodes(container, list) readers + * @param augReaders Child augmentations readers + * @param customizer Customizer instance to customize this generic reader + * + */ + public CompositeRootReader(@Nonnull final Class managedDataObjectType, + @Nonnull final List>> childReaders, + @Nonnull final List>> augReaders, + @Nonnull final RootReaderCustomizer customizer) { + super(managedDataObjectType, childReaders, augReaders); + this.customizer = customizer; + } + + /** + * @see {@link CompositeRootReader#CompositeRootReader(Class, List, List, RootReaderCustomizer)} + */ + public CompositeRootReader(@Nonnull final Class managedDataObjectType, + @Nonnull final List>> childReaders, + @Nonnull final RootReaderCustomizer customizer) { + this(managedDataObjectType, childReaders, RWUtils.emptyAugReaderList(), customizer); + } + + /** + * @see {@link CompositeRootReader#CompositeRootReader(Class, List, List, RootReaderCustomizer)} + */ + public CompositeRootReader(@Nonnull final Class managedDataObjectType, + @Nonnull final RootReaderCustomizer customizer) { + this(managedDataObjectType, RWUtils.emptyChildReaderList(), RWUtils.emptyAugReaderList(), + customizer); + } + + @Override + protected void readCurrentAttributes(@Nonnull final InstanceIdentifier id, @Nonnull final B builder, + @Nonnull final ReadContext ctx) throws ReadFailedException { + customizer.readCurrentAttributes(id, builder, ctx.getContext()); + } + + @Override + protected B getBuilder(@Nonnull final InstanceIdentifier id) { + return customizer.getBuilder(id); + } + +} diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/AbstractCompositeVppWriter.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/AbstractCompositeWriter.java similarity index 75% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/AbstractCompositeVppWriter.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/AbstractCompositeWriter.java index add62e2ba..e971fbeff 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/AbstractCompositeVppWriter.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/AbstractCompositeWriter.java @@ -14,17 +14,17 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write; +package io.fd.honeycomb.v3po.translate.impl.write; import static com.google.common.base.Preconditions.checkArgument; import com.google.common.base.Optional; import com.google.common.collect.Lists; -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.VppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.write.Writer; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -39,20 +39,20 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public abstract class AbstractCompositeVppWriter implements VppWriter { +public abstract class AbstractCompositeWriter implements Writer { - private static final Logger LOG = LoggerFactory.getLogger(AbstractCompositeVppWriter.class); + private static final Logger LOG = LoggerFactory.getLogger(AbstractCompositeWriter.class); - private final Map, ChildVppWriter>> childWriters; - private final Map, ChildVppWriter>> augWriters; + private final Map, ChildWriter>> childWriters; + private final Map, ChildWriter>> augWriters; private final InstanceIdentifier instanceIdentifier; - public AbstractCompositeVppWriter(final Class type, - final List>> childWriters, - final List>> augWriters) { + public AbstractCompositeWriter(final Class type, + final List>> childWriters, + final List>> augWriters) { this.instanceIdentifier = InstanceIdentifier.create(type); - this.childWriters = VppRWUtils.uniqueLinkedIndex(childWriters, VppRWUtils.MANAGER_CLASS_FUNCTION); - this.augWriters = VppRWUtils.uniqueLinkedIndex(augWriters, VppRWUtils.MANAGER_CLASS_AUG_FUNCTION); + this.childWriters = RWUtils.uniqueLinkedIndex(childWriters, RWUtils.MANAGER_CLASS_FUNCTION); + this.augWriters = RWUtils.uniqueLinkedIndex(augWriters, RWUtils.MANAGER_CLASS_AUG_FUNCTION); } protected void writeCurrent(final InstanceIdentifier id, final D data, final WriteContext ctx) { @@ -61,12 +61,12 @@ public abstract class AbstractCompositeVppWriter implement LOG.trace("{}: Writing current attributes", this); writeCurrentAttributes(id, data, ctx); - for (ChildVppWriter> child : childWriters.values()) { + for (ChildWriter> child : childWriters.values()) { LOG.debug("{}: Writing child in: {}", this, child); child.writeChild(id, data, ctx); } - for (ChildVppWriter> child : augWriters.values()) { + for (ChildWriter> child : augWriters.values()) { LOG.debug("{}: Writing augment in: {}", this, child); child.writeChild(id, data, ctx); } @@ -87,12 +87,12 @@ public abstract class AbstractCompositeVppWriter implement LOG.trace("{}: Updating current attributes", this); updateCurrentAttributes(id, dataBefore, dataAfter, ctx); - for (ChildVppWriter> child : childWriters.values()) { + for (ChildWriter> child : childWriters.values()) { LOG.debug("{}: Updating child in: {}", this, child); child.updateChild(id, dataBefore, dataAfter, ctx); } - for (ChildVppWriter> child : augWriters.values()) { + for (ChildWriter> child : augWriters.values()) { LOG.debug("{}: Updating augment in: {}", this, child); child.updateChild(id, dataBefore, dataAfter, ctx); } @@ -104,12 +104,12 @@ public abstract class AbstractCompositeVppWriter implement LOG.debug("{}: Deleting current: {} dataBefore: {}", this, id, dataBefore); // delete in reversed order - for (ChildVppWriter> child : reverseCollection(augWriters.values())) { + for (ChildWriter> child : reverseCollection(augWriters.values())) { LOG.debug("{}: Deleting augment in: {}", this, child); child.deleteChild(id, dataBefore, ctx); } - for (ChildVppWriter> child : reverseCollection(childWriters.values())) { + for (ChildWriter> child : reverseCollection(childWriters.values())) { LOG.debug("{}: Deleting child in: {}", this, child); child.deleteChild(id, dataBefore, ctx); } @@ -123,7 +123,7 @@ public abstract class AbstractCompositeVppWriter implement public void update(@Nonnull final InstanceIdentifier id, @Nullable final DataObject dataBefore, @Nullable final DataObject dataAfter, - @Nonnull final WriteContext ctx) throws VppException { + @Nonnull final WriteContext ctx) throws TranslationException { LOG.debug("{}: Updating : {}", this, id); LOG.trace("{}: Updating : {}, from: {} to: {}", this, id, dataBefore, dataAfter); @@ -168,20 +168,20 @@ public abstract class AbstractCompositeVppWriter implement } private void writeSubtree(final InstanceIdentifier id, - final DataObject dataAfter, final WriteContext ctx) throws VppException { + final DataObject dataAfter, final WriteContext ctx) throws TranslationException { LOG.debug("{}: Writing subtree: {}", this, id); - final VppWriter> vppWriter = getNextWriter(id); + final Writer> writer = getNextWriter(id); - if (vppWriter != null) { - LOG.debug("{}: Writing subtree: {} in: {}", this, id, vppWriter); - vppWriter.update(id, null, dataAfter, ctx); + if (writer != null) { + LOG.debug("{}: Writing subtree: {} in: {}", this, id, writer); + writer.update(id, null, dataAfter, ctx); } else { // If there's no dedicated writer, use write current // But we need current data after to do so - final InstanceIdentifier currentId = VppRWUtils.cutId(id, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.cutId(id, getManagedDataObjectType()); Optional currentDataAfter = ctx.readAfter(currentId); LOG.debug("{}: Dedicated subtree writer missing for: {}. Writing current.", this, - VppRWUtils.getNextId(id, getManagedDataObjectType()).getType(), currentDataAfter); + RWUtils.getNextId(id, getManagedDataObjectType()).getType(), currentDataAfter); writeCurrent(currentId, castToManaged(currentDataAfter.get()), ctx); } } @@ -192,13 +192,13 @@ public abstract class AbstractCompositeVppWriter implement @SuppressWarnings("unchecked") private void deleteSubtree(final InstanceIdentifier id, - final DataObject dataBefore, final WriteContext ctx) throws VppException { + final DataObject dataBefore, final WriteContext ctx) throws TranslationException { LOG.debug("{}: Deleting subtree: {}", this, id); - final VppWriter> vppWriter = getNextWriter(id); + final Writer> writer = getNextWriter(id); - if (vppWriter != null) { - LOG.debug("{}: Deleting subtree: {} in: {}", this, id, vppWriter); - vppWriter.update(id, dataBefore, null, ctx); + if (writer != null) { + LOG.debug("{}: Deleting subtree: {} in: {}", this, id, writer); + writer.update(id, dataBefore, null, ctx); } else { updateSubtreeFromCurrent(id, ctx); } @@ -206,11 +206,11 @@ public abstract class AbstractCompositeVppWriter implement @SuppressWarnings("unchecked") private void updateSubtreeFromCurrent(final InstanceIdentifier id, final WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.cutId(id, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.cutId(id, getManagedDataObjectType()); Optional currentDataBefore = ctx.readBefore(currentId); Optional currentDataAfter = ctx.readAfter(currentId); LOG.debug("{}: Dedicated subtree writer missing for: {}. Updating current without subtree", this, - VppRWUtils.getNextId(id, getManagedDataObjectType()).getType(), currentDataAfter); + RWUtils.getNextId(id, getManagedDataObjectType()).getType(), currentDataAfter); updateCurrent((InstanceIdentifier) id, castToManaged(currentDataBefore.orNull()), castToManaged(currentDataAfter.orNull()), ctx); } @@ -219,20 +219,20 @@ public abstract class AbstractCompositeVppWriter implement private void updateSubtree(final InstanceIdentifier id, final DataObject dataBefore, final DataObject dataAfter, - final WriteContext ctx) throws VppException { + final WriteContext ctx) throws TranslationException { LOG.debug("{}: Updating subtree: {}", this, id); - final VppWriter> vppWriter = getNextWriter(id); + final Writer> writer = getNextWriter(id); - if (vppWriter != null) { - LOG.debug("{}: Updating subtree: {} in: {}", this, id, vppWriter); - vppWriter.update(id, dataBefore, dataAfter, ctx); + if (writer != null) { + LOG.debug("{}: Updating subtree: {} in: {}", this, id, writer); + writer.update(id, dataBefore, dataAfter, ctx); } else { updateSubtreeFromCurrent(id, ctx); } } - private VppWriter> getNextWriter(final InstanceIdentifier id) { - final Class next = VppRWUtils.getNextId(id, getManagedDataObjectType()).getType(); + private Writer> getNextWriter(final InstanceIdentifier id) { + final Class next = RWUtils.getNextId(id, getManagedDataObjectType()).getType(); return childWriters.get(next); } diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeChildVppWriter.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeChildWriter.java similarity index 65% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeChildVppWriter.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeChildWriter.java index a11004e86..fbfeffbdb 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeChildVppWriter.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeChildWriter.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write; +package io.fd.honeycomb.v3po.translate.impl.write; import com.google.common.base.Optional; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.spi.write.ChildVppWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.spi.write.ChildWriterCustomizer; import java.util.List; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.Augmentation; @@ -28,28 +28,28 @@ import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public class CompositeChildVppWriter extends AbstractCompositeVppWriter - implements ChildVppWriter { +public class CompositeChildWriter extends AbstractCompositeWriter + implements ChildWriter { - private final ChildVppWriterCustomizer customizer; + private final ChildWriterCustomizer customizer; - public CompositeChildVppWriter(@Nonnull final Class type, - @Nonnull final List>> childWriters, - @Nonnull final List>> augWriters, - @Nonnull final ChildVppWriterCustomizer customizer) { + public CompositeChildWriter(@Nonnull final Class type, + @Nonnull final List>> childWriters, + @Nonnull final List>> augWriters, + @Nonnull final ChildWriterCustomizer customizer) { super(type, childWriters, augWriters); this.customizer = customizer; } - public CompositeChildVppWriter(@Nonnull final Class type, - @Nonnull final List>> childWriters, - @Nonnull final ChildVppWriterCustomizer customizer) { - this(type, childWriters, VppRWUtils.emptyAugWriterList(), customizer); + public CompositeChildWriter(@Nonnull final Class type, + @Nonnull final List>> childWriters, + @Nonnull final ChildWriterCustomizer customizer) { + this(type, childWriters, RWUtils.emptyAugWriterList(), customizer); } - public CompositeChildVppWriter(@Nonnull final Class type, - @Nonnull final ChildVppWriterCustomizer customizer) { - this(type, VppRWUtils.emptyChildWriterList(), VppRWUtils.emptyAugWriterList(), customizer); + public CompositeChildWriter(@Nonnull final Class type, + @Nonnull final ChildWriterCustomizer customizer) { + this(type, RWUtils.emptyChildWriterList(), RWUtils.emptyAugWriterList(), customizer); } @Override @@ -73,7 +73,7 @@ public class CompositeChildVppWriter extends AbstractCompo @Override public void writeChild(@Nonnull final InstanceIdentifier parentId, @Nonnull final DataObject parentData, @Nonnull WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(parentId, getManagedDataObjectType()); final Optional currentData = customizer.extract(currentId, parentData); if(currentData.isPresent()) { writeCurrent(currentId, currentData.get(), ctx); @@ -84,7 +84,7 @@ public class CompositeChildVppWriter extends AbstractCompo public void deleteChild(@Nonnull final InstanceIdentifier parentId, @Nonnull final DataObject parentData, @Nonnull final WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(parentId, getManagedDataObjectType()); final Optional currentData = customizer.extract(currentId, parentData); if(currentData.isPresent()) { deleteCurrent(currentId, currentData.get(), ctx); @@ -95,7 +95,7 @@ public class CompositeChildVppWriter extends AbstractCompo public void updateChild(@Nonnull final InstanceIdentifier parentId, @Nonnull final DataObject parentDataBefore, @Nonnull final DataObject parentDataAfter, @Nonnull final WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(parentId, getManagedDataObjectType()); final Optional before = customizer.extract(currentId, parentDataBefore); final Optional after = customizer.extract(currentId, parentDataAfter); if(before.isPresent() && after.isPresent()) { diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeListVppWriter.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeListWriter.java similarity index 76% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeListVppWriter.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeListWriter.java index 805d951f9..dc924fe39 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeListVppWriter.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeListWriter.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write; +package io.fd.honeycomb.v3po.translate.impl.write; import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.spi.write.ListVppWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; +import io.fd.honeycomb.v3po.translate.spi.write.ListWriterCustomizer; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.util.RWUtils; import java.util.List; import java.util.Map; import javax.annotation.Nonnull; @@ -34,8 +34,9 @@ import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public class CompositeListVppWriter, K extends Identifier> extends AbstractCompositeVppWriter - implements ChildVppWriter { +public class CompositeListWriter, K extends Identifier> extends + AbstractCompositeWriter + implements ChildWriter { public static final Function INDEX_FUNCTION = new Function() { @Override @@ -47,25 +48,25 @@ public class CompositeListVppWriter, K ex }; - private final ListVppWriterCustomizer customizer; + private final ListWriterCustomizer customizer; - public CompositeListVppWriter(@Nonnull final Class type, - @Nonnull final List>> childWriters, - @Nonnull final List>> augWriters, - @Nonnull final ListVppWriterCustomizer customizer) { + public CompositeListWriter(@Nonnull final Class type, + @Nonnull final List>> childWriters, + @Nonnull final List>> augWriters, + @Nonnull final ListWriterCustomizer customizer) { super(type, childWriters, augWriters); this.customizer = customizer; } - public CompositeListVppWriter(@Nonnull final Class type, - @Nonnull final List>> childWriters, - @Nonnull final ListVppWriterCustomizer customizer) { - this(type, childWriters, VppRWUtils.emptyAugWriterList(), customizer); + public CompositeListWriter(@Nonnull final Class type, + @Nonnull final List>> childWriters, + @Nonnull final ListWriterCustomizer customizer) { + this(type, childWriters, RWUtils.emptyAugWriterList(), customizer); } - public CompositeListVppWriter(@Nonnull final Class type, - @Nonnull final ListVppWriterCustomizer customizer) { - this(type, VppRWUtils.emptyChildWriterList(), VppRWUtils.emptyAugWriterList(), customizer); + public CompositeListWriter(@Nonnull final Class type, + @Nonnull final ListWriterCustomizer customizer) { + this(type, RWUtils.emptyChildWriterList(), RWUtils.emptyAugWriterList(), customizer); } @@ -91,7 +92,7 @@ public class CompositeListVppWriter, K ex public void writeChild(@Nonnull final InstanceIdentifier parentId, @Nonnull final DataObject parentData, @Nonnull final WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(parentId, getManagedDataObjectType()); final List currentData = customizer.extract(currentId, parentData); for (D entry : currentData) { writeCurrent(currentId, entry, ctx); @@ -102,7 +103,7 @@ public class CompositeListVppWriter, K ex public void deleteChild(@Nonnull final InstanceIdentifier parentId, @Nonnull final DataObject parentDataBefore, @Nonnull final WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(parentId, getManagedDataObjectType()); final List dataBefore = customizer.extract(currentId, parentDataBefore); for (D entry : dataBefore) { deleteCurrent(currentId, entry, ctx); @@ -113,7 +114,7 @@ public class CompositeListVppWriter, K ex public void updateChild(@Nonnull final InstanceIdentifier parentId, @Nonnull final DataObject parentDataBefore, @Nonnull final DataObject parentDataAfter, @Nonnull final WriteContext ctx) { - final InstanceIdentifier currentId = VppRWUtils.appendTypeToId(parentId, getManagedDataObjectType()); + final InstanceIdentifier currentId = RWUtils.appendTypeToId(parentId, getManagedDataObjectType()); final ImmutableMap dataBefore = Maps.uniqueIndex(customizer.extract(currentId, parentDataBefore), INDEX_FUNCTION); final ImmutableMap @@ -172,7 +173,7 @@ public class CompositeListVppWriter, K ex } private InstanceIdentifier getSpecificId(final InstanceIdentifier currentId, final D current) { - return VppRWUtils.replaceLastInId(currentId, + return RWUtils.replaceLastInId(currentId, new InstanceIdentifier.IdentifiableItem<>(currentId.getTargetType(), current.getKey())); } } diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeRootVppWriter.java b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeRootWriter.java similarity index 58% rename from v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeRootVppWriter.java rename to v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeRootWriter.java index 7bcb8dbbb..acf2cfd2e 100644 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/CompositeRootVppWriter.java +++ b/v3po/translate-impl/src/main/java/io/fd/honeycomb/v3po/translate/impl/write/CompositeRootWriter.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write; +package io.fd.honeycomb.v3po.translate.impl.write; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.spi.write.RootVppWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.spi.write.RootWriterCustomizer; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; import java.util.List; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.Augmentation; @@ -27,27 +27,27 @@ import org.opendaylight.yangtools.yang.binding.ChildOf; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public class CompositeRootVppWriter extends AbstractCompositeVppWriter { +public class CompositeRootWriter extends AbstractCompositeWriter { - private final RootVppWriterCustomizer customizer; + private final RootWriterCustomizer customizer; - public CompositeRootVppWriter(@Nonnull final Class type, - @Nonnull final List>> childWriters, - @Nonnull final List>> augWriters, - @Nonnull final RootVppWriterCustomizer customizer) { + public CompositeRootWriter(@Nonnull final Class type, + @Nonnull final List>> childWriters, + @Nonnull final List>> augWriters, + @Nonnull final RootWriterCustomizer customizer) { super(type, childWriters, augWriters); this.customizer = customizer; } - public CompositeRootVppWriter(@Nonnull final Class type, - @Nonnull final List>> childWriters, - @Nonnull final RootVppWriterCustomizer customizer) { - this(type, childWriters, VppRWUtils.emptyAugWriterList(), customizer); + public CompositeRootWriter(@Nonnull final Class type, + @Nonnull final List>> childWriters, + @Nonnull final RootWriterCustomizer customizer) { + this(type, childWriters, RWUtils.emptyAugWriterList(), customizer); } - public CompositeRootVppWriter(@Nonnull final Class type, - @Nonnull final RootVppWriterCustomizer customizer) { - this(type, VppRWUtils.emptyChildWriterList(), VppRWUtils.emptyAugWriterList(), customizer); + public CompositeRootWriter(@Nonnull final Class type, + @Nonnull final RootWriterCustomizer customizer) { + this(type, RWUtils.emptyChildWriterList(), RWUtils.emptyAugWriterList(), customizer); } @Override diff --git a/v3po/vpp-facade-spi/pom.xml b/v3po/translate-spi/pom.xml similarity index 96% rename from v3po/vpp-facade-spi/pom.xml rename to v3po/translate-spi/pom.xml index 87f9c2848..17e108810 100644 --- a/v3po/vpp-facade-spi/pom.xml +++ b/v3po/translate-spi/pom.xml @@ -24,7 +24,7 @@ 4.0.0 io.fd.honeycomb.v3po - vpp-facade-spi + translate-spi 1.0.0-SNAPSHOT bundle @@ -47,7 +47,7 @@ ${project.groupId} - vpp-facade-api + translate-api ${project.version} diff --git a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ChildVppReaderCustomizer.java b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ChildReaderCustomizer.java similarity index 85% rename from v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ChildVppReaderCustomizer.java rename to v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ChildReaderCustomizer.java index 376474301..8acc54db9 100644 --- a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ChildVppReaderCustomizer.java +++ b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ChildReaderCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.spi.read; +package io.fd.honeycomb.v3po.translate.spi.read; import com.google.common.annotations.Beta; import javax.annotation.Nonnull; @@ -22,14 +22,14 @@ import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; /** - * CompositeChildVppReader SPI to customize its behavior + * CompositeChildReader SPI to customize its behavior * * @param Specific DataObject derived type (Identifiable), that is handled by this customizer * @param Specific Builder for handled type (C) */ @Beta -public interface ChildVppReaderCustomizer> extends - RootVppReaderCustomizer { +public interface ChildReaderCustomizer> extends + RootReaderCustomizer { // FIXME need to capture parent builder type, but that's inconvenient at best, is it ok to leave it Builder and // cast in specific customizers ? ... probably better than adding another type parameter diff --git a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ListVppReaderCustomizer.java b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ListReaderCustomizer.java similarity index 84% rename from v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ListVppReaderCustomizer.java rename to v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ListReaderCustomizer.java index 610b2da8b..746b439a8 100644 --- a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/ListVppReaderCustomizer.java +++ b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/ListReaderCustomizer.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.spi.read; +package io.fd.honeycomb.v3po.translate.spi.read; import com.google.common.annotations.Beta; -import io.fd.honeycomb.v3po.vpp.facade.Context; +import io.fd.honeycomb.v3po.translate.Context; import java.util.List; import javax.annotation.Nonnull; import org.opendaylight.yangtools.concepts.Builder; @@ -27,15 +27,15 @@ import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * CompositeListVppReader SPI to customize its behavior + * CompositeListReader SPI to customize its behavior * * @param Specific DataObject derived type (Identifiable), that is handled by this customizer * @param Specific Identifier for handled type (C) * @param Specific Builder for handled type (C) */ @Beta -public interface ListVppReaderCustomizer, K extends Identifier, B extends Builder> - extends RootVppReaderCustomizer { +public interface ListReaderCustomizer, K extends Identifier, B extends Builder> + extends RootReaderCustomizer { /** * Return list with IDs of all list nodes to be read. diff --git a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/RootVppReaderCustomizer.java b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/RootReaderCustomizer.java similarity index 84% rename from v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/RootVppReaderCustomizer.java rename to v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/RootReaderCustomizer.java index 8035933df..da599eb58 100644 --- a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/read/RootVppReaderCustomizer.java +++ b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/read/RootReaderCustomizer.java @@ -14,24 +14,24 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.spi.read; +package io.fd.honeycomb.v3po.translate.spi.read; import com.google.common.annotations.Beta; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.Context; import javax.annotation.Nonnull; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * CompositeRootVppReader SPI to customize its behavior + * CompositeRootReader SPI to customize its behavior * * @param Specific DataObject derived type, that is handled by this customizer * @param Specific Builder for handled type (C) */ @Beta -public interface RootVppReaderCustomizer> { +public interface RootReaderCustomizer> { /** * Creates new builder that will be used to build read value. diff --git a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ChildVppWriterCustomizer.java b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ChildWriterCustomizer.java similarity index 86% rename from v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ChildVppWriterCustomizer.java rename to v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ChildWriterCustomizer.java index 7b7e257a2..e8f248495 100644 --- a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ChildVppWriterCustomizer.java +++ b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ChildWriterCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.spi.write; +package io.fd.honeycomb.v3po.translate.spi.write; import com.google.common.annotations.Beta; import com.google.common.base.Optional; @@ -23,12 +23,12 @@ import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * CompositeChildVppWriter SPI to customize its behavior + * CompositeChildWriter SPI to customize its behavior * * @param Specific DataObject derived type (Identifiable), that is handled by this customizer */ @Beta -public interface ChildVppWriterCustomizer extends RootVppWriterCustomizer { +public interface ChildWriterCustomizer extends RootWriterCustomizer { /** * Get child of parentData identified by currentId diff --git a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ListVppWriterCustomizer.java b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ListWriterCustomizer.java similarity index 85% rename from v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ListVppWriterCustomizer.java rename to v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ListWriterCustomizer.java index b4bf1aa41..1eb18a238 100644 --- a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/ListVppWriterCustomizer.java +++ b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/ListWriterCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.spi.write; +package io.fd.honeycomb.v3po.translate.spi.write; import com.google.common.annotations.Beta; import java.util.List; @@ -25,13 +25,14 @@ import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * CompositeListVppWriter SPI to customize its behavior + * CompositeListWriter SPI to customize its behavior * * @param Specific DataObject derived type (Identifiable), that is handled by this customizer * @param Specific Identifier for handled type (C) */ @Beta -public interface ListVppWriterCustomizer, K extends Identifier> extends RootVppWriterCustomizer { +public interface ListWriterCustomizer, K extends Identifier> extends + RootWriterCustomizer { /** * Get children of parentData identified by currentId diff --git a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/RootVppWriterCustomizer.java b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/RootWriterCustomizer.java similarity index 92% rename from v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/RootVppWriterCustomizer.java rename to v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/RootWriterCustomizer.java index 1335e8afb..ca4f02dce 100644 --- a/v3po/vpp-facade-spi/src/main/java/io/fd/honeycomb/v3po/vpp/facade/spi/write/RootVppWriterCustomizer.java +++ b/v3po/translate-spi/src/main/java/io/fd/honeycomb/v3po/translate/spi/write/RootWriterCustomizer.java @@ -14,21 +14,21 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.spi.write; +package io.fd.honeycomb.v3po.translate.spi.write; import com.google.common.annotations.Beta; -import io.fd.honeycomb.v3po.vpp.facade.Context; +import io.fd.honeycomb.v3po.translate.Context; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; /** - * CompositeRootVppReader SPI to customize its behavior + * CompositeRootReader SPI to customize its behavior * * @param Specific DataObject derived type, that is handled by this customizer */ @Beta -public interface RootVppWriterCustomizer { +public interface RootWriterCustomizer { /** * Handle write operation. C from CRUD. diff --git a/v3po/vpp-facade-utils/pom.xml b/v3po/translate-utils/pom.xml similarity index 90% rename from v3po/vpp-facade-utils/pom.xml rename to v3po/translate-utils/pom.xml index 83c7d7415..d547cb483 100644 --- a/v3po/vpp-facade-utils/pom.xml +++ b/v3po/translate-utils/pom.xml @@ -24,7 +24,7 @@ 4.0.0 io.fd.honeycomb.v3po - vpp-facade-utils + translate-utils 1.0.0-SNAPSHOT bundle @@ -50,19 +50,14 @@ ${project.groupId} - vpp-facade-api + translate-api ${project.version} ${project.groupId} - vpp-facade-spi + translate-spi ${project.version} - - io.fd.vpp - vppjapi - 1.0.0-SNAPSHOT - org.opendaylight.controller sal-core-api diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppRWUtils.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/RWUtils.java similarity index 83% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppRWUtils.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/RWUtils.java index 64667b85f..027d9bbb7 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppRWUtils.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/RWUtils.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.util; +package io.fd.honeycomb.v3po.translate.util; import com.google.common.base.Function; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; -import io.fd.honeycomb.v3po.vpp.facade.SubtreeManager; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; +import io.fd.honeycomb.v3po.translate.read.ChildReader; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; +import io.fd.honeycomb.v3po.translate.SubtreeManager; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -36,9 +36,9 @@ import org.opendaylight.yangtools.yang.binding.Identifiable; import org.opendaylight.yangtools.yang.binding.Identifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public final class VppRWUtils { +public final class RWUtils { - private VppRWUtils() {} + private RWUtils() {} /** * Find next item in ID after provided type @@ -58,35 +58,35 @@ public final class VppRWUtils { return Iterables.get(pathArguments, i + 1); } - public static List>> emptyChildReaderList() { + public static List>> emptyChildReaderList() { return Collections.emptyList(); } - public static List>> emptyChildWriterList() { + public static List>> emptyChildWriterList() { return Collections.emptyList(); } - public static List>> emptyAugReaderList() { + public static List>> emptyAugReaderList() { return Collections.emptyList(); } - public static List>> emptyAugWriterList() { + public static List>> emptyAugWriterList() { return Collections.emptyList(); } - public static List>> singletonAugReaderList( - ChildVppReader> item) { - return Collections.>>singletonList(item); + public static List>> singletonAugReaderList( + ChildReader> item) { + return Collections.>>singletonList(item); } - public static List>> singletonChildReaderList( - ChildVppReader> item) { - return Collections.>>singletonList(item); + public static List>> singletonChildReaderList( + ChildReader> item) { + return Collections.>>singletonList(item); } - public static List>> singletonChildWriterList( - ChildVppWriter> item) { - return Collections.>>singletonList(item); + public static List>> singletonChildWriterList( + ChildWriter> item) { + return Collections.>>singletonList(item); } /** diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/ReflectionUtils.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java similarity index 98% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/ReflectionUtils.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java index db560622c..ea0b3b2c4 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/ReflectionUtils.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/ReflectionUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.util; +package io.fd.honeycomb.v3po.translate.util; import com.google.common.base.Optional; import java.lang.reflect.Method; diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/DelegatingReaderRegistry.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/DelegatingReaderRegistry.java similarity index 75% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/DelegatingReaderRegistry.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/DelegatingReaderRegistry.java index 5217024e8..387f3cc7c 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/DelegatingReaderRegistry.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/DelegatingReaderRegistry.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read.util; +package io.fd.honeycomb.v3po.translate.util.read; import static com.google.common.base.Preconditions.checkNotNull; @@ -22,12 +22,12 @@ import com.google.common.base.Optional; import com.google.common.collect.Iterables; import com.google.common.collect.LinkedListMultimap; import com.google.common.collect.Multimap; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ListVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.read.ReaderRegistry; -import io.fd.honeycomb.v3po.vpp.facade.read.VppReader; +import io.fd.honeycomb.v3po.translate.read.ListReader; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.ReadFailedException; +import io.fd.honeycomb.v3po.translate.read.ReaderRegistry; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.Reader; import java.util.Collections; import java.util.List; import java.util.Map; @@ -47,15 +47,15 @@ public final class DelegatingReaderRegistry implements ReaderRegistry { private static final Logger LOG = LoggerFactory.getLogger(DelegatingReaderRegistry.class); - private final Map, VppReader> rootReaders; + private final Map, Reader> rootReaders; /** * Create new {@link DelegatingReaderRegistry} * * @param rootReaders List of delegate readers */ - public DelegatingReaderRegistry(@Nonnull final List> rootReaders) { - this.rootReaders = VppRWUtils.uniqueLinkedIndex(checkNotNull(rootReaders), VppRWUtils.MANAGER_CLASS_FUNCTION); + public DelegatingReaderRegistry(@Nonnull final List> rootReaders) { + this.rootReaders = RWUtils.uniqueLinkedIndex(checkNotNull(rootReaders), RWUtils.MANAGER_CLASS_FUNCTION); } @Override @@ -67,12 +67,12 @@ public final class DelegatingReaderRegistry implements ReaderRegistry { LOG.trace("Reading from all delegates: {}", rootReaders.values()); final Multimap, DataObject> objects = LinkedListMultimap.create(); - for (VppReader rootReader : rootReaders.values()) { + for (Reader rootReader : rootReaders.values()) { LOG.debug("Reading from delegate: {}", rootReader); - if (rootReader instanceof ListVppReader) { + if (rootReader instanceof ListReader) { final List listEntries = - ((ListVppReader) rootReader).readList(rootReader.getManagedDataObjectType(), ctx); + ((ListReader) rootReader).readList(rootReader.getManagedDataObjectType(), ctx); if (!listEntries.isEmpty()) { objects.putAll(rootReader.getManagedDataObjectType(), listEntries); } @@ -94,11 +94,11 @@ public final class DelegatingReaderRegistry implements ReaderRegistry { throws ReadFailedException { final InstanceIdentifier.PathArgument first = checkNotNull( Iterables.getFirst(id.getPathArguments(), null), "Empty id"); - final VppReader vppReader = rootReaders.get(first.getType()); - checkNotNull(vppReader, + final Reader reader = rootReaders.get(first.getType()); + checkNotNull(reader, "Unable to read %s. Missing reader. Current readers for: %s", id, rootReaders.keySet()); - LOG.debug("Reading from delegate: {}", vppReader); - return vppReader.read(id, ctx); + LOG.debug("Reading from delegate: {}", reader); + return reader.read(id, ctx); } /** diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/NoopReaderCustomizer.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/NoopReaderCustomizer.java similarity index 83% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/NoopReaderCustomizer.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/NoopReaderCustomizer.java index 5b78cdbba..5ed033755 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/NoopReaderCustomizer.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/NoopReaderCustomizer.java @@ -14,16 +14,16 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read.util; +package io.fd.honeycomb.v3po.translate.util.read; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.RootVppReaderCustomizer; +import io.fd.honeycomb.v3po.translate.Context; +import io.fd.honeycomb.v3po.translate.spi.read.RootReaderCustomizer; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; public abstract class NoopReaderCustomizer> implements - RootVppReaderCustomizer { + RootReaderCustomizer { @Override public void readCurrentAttributes(InstanceIdentifier id, final B builder, final Context context) { diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/ReflexiveChildReaderCustomizer.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/ReflexiveChildReaderCustomizer.java similarity index 89% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/ReflexiveChildReaderCustomizer.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/ReflexiveChildReaderCustomizer.java index a83269658..3d5f9f4e8 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/ReflexiveChildReaderCustomizer.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/ReflexiveChildReaderCustomizer.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read.util; +package io.fd.honeycomb.v3po.translate.util.read; import com.google.common.base.Optional; import com.google.common.base.Preconditions; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.ReflectionUtils; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.ChildVppReaderCustomizer; +import io.fd.honeycomb.v3po.translate.util.ReflectionUtils; +import io.fd.honeycomb.v3po.translate.spi.read.ChildReaderCustomizer; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collections; @@ -31,7 +31,7 @@ import org.opendaylight.yangtools.yang.binding.DataObject; */ public class ReflexiveChildReaderCustomizer> extends ReflexiveRootReaderCustomizer - implements ChildVppReaderCustomizer { + implements ChildReaderCustomizer { public ReflexiveChildReaderCustomizer(final Class builderClass) { super(builderClass); diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/ReflexiveRootReaderCustomizer.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/ReflexiveRootReaderCustomizer.java similarity index 96% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/ReflexiveRootReaderCustomizer.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/ReflexiveRootReaderCustomizer.java index b78bcdc06..029f359bb 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/util/ReflexiveRootReaderCustomizer.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/read/ReflexiveRootReaderCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.read.util; +package io.fd.honeycomb.v3po.translate.util.read; import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistry.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/DelegatingWriterRegistry.java similarity index 85% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistry.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/DelegatingWriterRegistry.java index 14cec7a55..fda289e2b 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistry.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/DelegatingWriterRegistry.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; +package io.fd.honeycomb.v3po.translate.util.write; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -24,11 +24,11 @@ import com.google.common.collect.Collections2; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.write.VppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriterRegistry; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.write.Writer; +import io.fd.honeycomb.v3po.translate.write.WriterRegistry; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -57,15 +57,15 @@ public final class DelegatingWriterRegistry implements WriterRegistry { } }; - private final Map, VppWriter> rootWriters; + private final Map, Writer> rootWriters; /** * Create new {@link DelegatingWriterRegistry} * * @param rootWriters List of delegate writers */ - public DelegatingWriterRegistry(@Nonnull final List> rootWriters) { - this.rootWriters = VppRWUtils.uniqueLinkedIndex(checkNotNull(rootWriters), VppRWUtils.MANAGER_CLASS_FUNCTION); + public DelegatingWriterRegistry(@Nonnull final List> rootWriters) { + this.rootWriters = RWUtils.uniqueLinkedIndex(checkNotNull(rootWriters), RWUtils.MANAGER_CLASS_FUNCTION); } /** @@ -82,25 +82,25 @@ public final class DelegatingWriterRegistry implements WriterRegistry { public void update(@Nonnull final InstanceIdentifier id, @Nullable final DataObject dataBefore, @Nullable final DataObject dataAfter, - @Nonnull final WriteContext ctx) throws VppException { + @Nonnull final WriteContext ctx) throws TranslationException { final InstanceIdentifier.PathArgument first = checkNotNull( Iterables.getFirst(id.getPathArguments(), null), "Empty id"); - final VppWriter vppWriter = rootWriters.get(first.getType()); - checkNotNull(vppWriter, + final Writer writer = rootWriters.get(first.getType()); + checkNotNull(writer, "Unable to write %s. Missing writer. Current writers for: %s", id, rootWriters.keySet()); - vppWriter.update(id, dataBefore, dataAfter, ctx); + writer.update(id, dataBefore, dataAfter, ctx); } @Override public void update(@Nonnull final Map, DataObject> nodesBefore, @Nonnull final Map, DataObject> nodesAfter, - @Nonnull final WriteContext ctx) throws VppException { + @Nonnull final WriteContext ctx) throws TranslationException { checkAllWritersPresent(nodesBefore); checkAllWritersPresent(nodesAfter); final List> processedNodes = Lists.newArrayList(); - for (Map.Entry, VppWriter> rootWriterEntry : rootWriters + for (Map.Entry, Writer> rootWriterEntry : rootWriters .entrySet()) { final InstanceIdentifier id = rootWriterEntry.getValue().getManagedDataObjectType(); diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/NoopWriterCustomizer.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/NoopWriterCustomizer.java similarity index 88% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/NoopWriterCustomizer.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/NoopWriterCustomizer.java index 96b7d19b4..266325815 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/NoopWriterCustomizer.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/NoopWriterCustomizer.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; +package io.fd.honeycomb.v3po.translate.util.write; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.spi.write.RootVppWriterCustomizer; +import io.fd.honeycomb.v3po.translate.spi.write.RootWriterCustomizer; +import io.fd.honeycomb.v3po.translate.Context; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; @@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * Customizer not performing any changes on current level. Suitable for nodes that don't have any leaves and all of * its child nodes are managed by dedicated writers */ -public class NoopWriterCustomizer implements RootVppWriterCustomizer { +public class NoopWriterCustomizer implements RootWriterCustomizer { @Override public void writeCurrentAttributes(@Nonnull final InstanceIdentifier id, @Nonnull final D dataAfter, diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/ReflexiveChildWriterCustomizer.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/ReflexiveChildWriterCustomizer.java similarity index 90% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/ReflexiveChildWriterCustomizer.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/ReflexiveChildWriterCustomizer.java index 820f469d6..ba67e560c 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/ReflexiveChildWriterCustomizer.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/ReflexiveChildWriterCustomizer.java @@ -14,13 +14,13 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; +package io.fd.honeycomb.v3po.translate.util.write; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.ReflectionUtils; -import io.fd.honeycomb.v3po.vpp.facade.spi.write.ChildVppWriterCustomizer; +import io.fd.honeycomb.v3po.translate.util.ReflectionUtils; +import io.fd.honeycomb.v3po.translate.spi.write.ChildWriterCustomizer; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collections; @@ -32,7 +32,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; * Might be slow ! */ public class ReflexiveChildWriterCustomizer extends NoopWriterCustomizer implements - ChildVppWriterCustomizer { + ChildWriterCustomizer { @Nonnull @Override diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContext.java b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/TransactionWriteContext.java similarity index 95% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContext.java rename to v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/TransactionWriteContext.java index da124b03c..0bb68e3b2 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContext.java +++ b/v3po/translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/util/write/TransactionWriteContext.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; +package io.fd.honeycomb.v3po.translate.util.write; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.Context; import java.util.Map; import javax.annotation.Nonnull; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; diff --git a/v3po/vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java b/v3po/translate-utils/src/test/java/io/fd/honeycomb/v3po/translate/impl/write/util/DelegatingWriterRegistryTest.java similarity index 83% rename from v3po/vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java rename to v3po/translate-utils/src/test/java/io/fd/honeycomb/v3po/translate/impl/write/util/DelegatingWriterRegistryTest.java index 774974d4f..e201890b5 100644 --- a/v3po/vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java +++ b/v3po/translate-utils/src/test/java/io/fd/honeycomb/v3po/translate/impl/write/util/DelegatingWriterRegistryTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; +package io.fd.honeycomb.v3po.translate.impl.write.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -24,10 +24,11 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.write.VppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriterRegistry; +import io.fd.honeycomb.v3po.translate.TranslationException; +import io.fd.honeycomb.v3po.translate.util.write.DelegatingWriterRegistry; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.write.Writer; +import io.fd.honeycomb.v3po.translate.write.WriterRegistry; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -49,9 +50,9 @@ public class DelegatingWriterRegistryTest { private final InstanceIdentifier interfaceId; private WriteContext ctx; - private VppWriter vppWriter; - private VppWriter vppStateWriter; - private VppWriter interfacesWriter; + private Writer writer; + private Writer vppStateWriter; + private Writer interfacesWriter; private DelegatingWriterRegistry registry; @@ -62,8 +63,8 @@ public class DelegatingWriterRegistryTest { } @SuppressWarnings("unchecked") - private VppWriter mockWriter(Class clazz) { - final VppWriter mock = (VppWriter) Mockito.mock(VppWriter.class); + private Writer mockWriter(Class clazz) { + final Writer mock = (Writer) Mockito.mock(Writer.class); doReturn(InstanceIdentifier.create(clazz)).when(mock).getManagedDataObjectType(); return mock; } @@ -89,12 +90,12 @@ public class DelegatingWriterRegistryTest { @Before public void setUp() { ctx = mock(WriteContext.class); - vppWriter = mockWriter(Vpp.class); + writer = mockWriter(Vpp.class); vppStateWriter = mockWriter(VppState.class); interfacesWriter = mockWriter(Interfaces.class); - final List> writers = new ArrayList<>(); - writers.add(vppWriter); + final List> writers = new ArrayList<>(); + writers.add(writer); writers.add(vppStateWriter); writers.add(interfacesWriter); @@ -116,7 +117,7 @@ public class DelegatingWriterRegistryTest { final DataObject dataAfter2 = mockDataObject("VppState after", VppState.class); // Fail on update - doThrow(new VppException("vpp failed")).when(vppStateWriter) + Mockito.doThrow(new TranslationException("vpp failed")).when(vppStateWriter) .update(vppStateId, dataBefore2, dataAfter2, ctx); // Run the test @@ -125,14 +126,14 @@ public class DelegatingWriterRegistryTest { } catch (WriterRegistry.BulkUpdateException e) { // Check second update failed assertEquals(vppStateId, e.getFailedId()); - verify(vppWriter).update(vppId, dataBefore1, dataAfter1, ctx); + verify(writer).update(vppId, dataBefore1, dataAfter1, ctx); verify(vppStateWriter).update(vppStateId, dataBefore2, dataAfter2, ctx); // Try to revert changes e.revertChanges(); // Check revert was successful - verify(vppWriter).update(vppId, dataAfter1, dataBefore1, ctx); + verify(writer).update(vppId, dataAfter1, dataBefore1, ctx); verify(vppStateWriter, never()).update(vppStateId, dataAfter2, dataBefore2, ctx); return; @@ -153,11 +154,11 @@ public class DelegatingWriterRegistryTest { final DataObject dataAfter3 = mockDataObject("Interfaces after", Interfaces.class); // Fail on the third update - doThrow(new VppException("vpp failed")).when(interfacesWriter) + doThrow(new TranslationException("vpp failed")).when(interfacesWriter) .update(interfaceId, dataBefore3, dataAfter3, ctx); // Fail on the second revert - doThrow(new VppException("vpp failed again")).when(vppWriter) + doThrow(new TranslationException("vpp failed again")).when(writer) .update(vppId, dataAfter1, dataBefore1, ctx); // Run the test @@ -166,7 +167,7 @@ public class DelegatingWriterRegistryTest { } catch (WriterRegistry.BulkUpdateException e) { // Check third update failed assertEquals(interfaceId, e.getFailedId()); - verify(vppWriter).update(vppId, dataBefore1, dataAfter1, ctx); + verify(writer).update(vppId, dataBefore1, dataAfter1, ctx); verify(vppStateWriter).update(vppStateId, dataBefore2, dataAfter2, ctx); verify(interfacesWriter).update(interfaceId, dataBefore3, dataAfter3, ctx); @@ -176,7 +177,7 @@ public class DelegatingWriterRegistryTest { } catch (WriterRegistry.Reverter.RevertFailedException e2) { // Check second revert failed assertEquals(Collections.singletonList(vppId), e2.getNotRevertedChanges()); - verify(vppWriter).update(vppId, dataAfter1, dataBefore1, ctx); + verify(writer).update(vppId, dataAfter1, dataBefore1, ctx); verify(vppStateWriter).update(vppStateId, dataAfter2, dataBefore2, ctx); verify(interfacesWriter, never()).update(interfaceId, dataAfter3, dataBefore3, ctx); return; diff --git a/v3po/vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java b/v3po/translate-utils/src/test/java/io/fd/honeycomb/v3po/translate/impl/write/util/TransactionWriteContextTest.java similarity index 97% rename from v3po/vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java rename to v3po/translate-utils/src/test/java/io/fd/honeycomb/v3po/translate/impl/write/util/TransactionWriteContextTest.java index 0e46e2fa4..5a8740b2d 100644 --- a/v3po/vpp-facade-utils/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java +++ b/v3po/translate-utils/src/test/java/io/fd/honeycomb/v3po/translate/impl/write/util/TransactionWriteContextTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; +package io.fd.honeycomb.v3po.translate.impl.write.util; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -29,7 +29,8 @@ import static org.mockito.MockitoAnnotations.initMocks; import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; -import io.fd.honeycomb.v3po.vpp.facade.Context; +import io.fd.honeycomb.v3po.translate.Context; +import io.fd.honeycomb.v3po.translate.util.write.TransactionWriteContext; import java.util.Map; import org.junit.Before; import org.junit.Test; diff --git a/v3po/v3po2vpp/pom.xml b/v3po/v3po2vpp/pom.xml index eb4aca7fa..e14730594 100644 --- a/v3po/v3po2vpp/pom.xml +++ b/v3po/v3po2vpp/pom.xml @@ -31,12 +31,17 @@ ${project.groupId} - vpp-facade-spi + translate-spi ${project.version} ${project.groupId} - vpp-facade-utils + translate-utils + ${project.version} + + + ${project.groupId} + vpp-translate-utils ${project.version} @@ -53,7 +58,7 @@ ${project.groupId} - vpp-facade-impl + translate-impl ${project.version} test diff --git a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainCustomizer.java similarity index 94% rename from v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainCustomizer.java rename to v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainCustomizer.java index 2c394fe77..ffbc95beb 100644 --- a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainCustomizer.java +++ b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainCustomizer.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vpp; +package io.fd.honeycomb.v3po.translate.v3po.vpp; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppApiCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.spi.write.ListVppWriterCustomizer; +import io.fd.honeycomb.v3po.translate.spi.write.ListWriterCustomizer; +import io.fd.honeycomb.v3po.translate.v3po.util.VppApiCustomizer; +import io.fd.honeycomb.v3po.translate.Context; import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -36,7 +36,7 @@ import org.slf4j.LoggerFactory; public class BridgeDomainCustomizer extends VppApiCustomizer - implements ListVppWriterCustomizer { + implements ListWriterCustomizer { private static final Logger LOG = LoggerFactory.getLogger(BridgeDomainCustomizer.class); diff --git a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/BridgeDomainCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/BridgeDomainCustomizer.java similarity index 95% rename from v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/BridgeDomainCustomizer.java rename to v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/BridgeDomainCustomizer.java index 178deaddf..36e1da366 100644 --- a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/BridgeDomainCustomizer.java +++ b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/BridgeDomainCustomizer.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vppstate; +package io.fd.honeycomb.v3po.translate.v3po.vppstate; import com.google.common.collect.Lists; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppApiCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.ListVppReaderCustomizer; +import io.fd.honeycomb.v3po.translate.spi.read.ListReaderCustomizer; +import io.fd.honeycomb.v3po.translate.v3po.util.VppApiCustomizer; +import io.fd.honeycomb.v3po.translate.Context; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; @@ -41,7 +41,7 @@ import org.openvpp.vppjapi.vppBridgeDomainInterfaceDetails; import org.openvpp.vppjapi.vppL2Fib; public final class BridgeDomainCustomizer extends VppApiCustomizer - implements ListVppReaderCustomizer { + implements ListReaderCustomizer { public BridgeDomainCustomizer(@Nonnull final org.openvpp.vppjapi.vppApi vppApi) { super(vppApi); diff --git a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VersionCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VersionCustomizer.java similarity index 87% rename from v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VersionCustomizer.java rename to v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VersionCustomizer.java index 3e928176e..31e3166bb 100644 --- a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VersionCustomizer.java +++ b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VersionCustomizer.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vppstate; +package io.fd.honeycomb.v3po.translate.v3po.vppstate; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppApiCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.ChildVppReaderCustomizer; +import io.fd.honeycomb.v3po.translate.Context; +import io.fd.honeycomb.v3po.translate.v3po.util.VppApiCustomizer; +import io.fd.honeycomb.v3po.translate.spi.read.ChildReaderCustomizer; import javax.annotation.Nonnull; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppStateBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.Version; @@ -30,7 +30,7 @@ import org.openvpp.vppjapi.vppVersion; public final class VersionCustomizer extends VppApiCustomizer - implements ChildVppReaderCustomizer { + implements ChildReaderCustomizer { public VersionCustomizer(@Nonnull final org.openvpp.vppjapi.vppApi vppApi) { super(vppApi); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainCustomizerTest.java similarity index 74% rename from v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainCustomizerTest.java rename to v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainCustomizerTest.java index 059713544..f504918a8 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainCustomizerTest.java @@ -14,13 +14,8 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vpp; +package io.fd.honeycomb.v3po.translate.v3po.vpp; -import static io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainTestUtils.BD_NAME_TO_ID_ANSWER; -import static io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainTestUtils.bdIdentifierForName; -import static io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainTestUtils.bdNameToID; -import static io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainTestUtils.booleanToByte; -import static io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainTestUtils.intToBoolean; import static org.junit.Assert.fail; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; @@ -28,7 +23,7 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.MockitoAnnotations.initMocks; -import io.fd.honeycomb.v3po.vpp.facade.Context; +import io.fd.honeycomb.v3po.translate.Context; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -65,8 +60,8 @@ public class BridgeDomainCustomizerTest { initMocks(this); customizer = new BridgeDomainCustomizer(api); - PowerMockito.doAnswer(BD_NAME_TO_ID_ANSWER).when(api).findOrAddBridgeDomainId(anyString()); - PowerMockito.doAnswer(BD_NAME_TO_ID_ANSWER).when(api).bridgeDomainIdFromName(anyString()); + PowerMockito.doAnswer(BridgeDomainTestUtils.BD_NAME_TO_ID_ANSWER).when(api).findOrAddBridgeDomainId(anyString()); + PowerMockito.doAnswer(BridgeDomainTestUtils.BD_NAME_TO_ID_ANSWER).when(api).bridgeDomainIdFromName(anyString()); PowerMockito.when(api.getRetval(anyInt(), anyInt())).thenReturn(RESPONSE_NOT_READY).thenReturn(0); PowerMockito.doReturn(0).when(api).getRetval(anyInt(), anyInt()); } @@ -84,41 +79,41 @@ public class BridgeDomainCustomizerTest { final int forward, final int learn, final int uuf) { return new BridgeDomainBuilder() .setName(bdName) - .setArpTermination(intToBoolean(arpTerm)) - .setFlood(intToBoolean(flood)) - .setForward(intToBoolean(forward)) - .setLearn(intToBoolean(learn)) - .setUnknownUnicastFlood(intToBoolean(uuf)) + .setArpTermination(BridgeDomainTestUtils.intToBoolean(arpTerm)) + .setFlood(BridgeDomainTestUtils.intToBoolean(flood)) + .setForward(BridgeDomainTestUtils.intToBoolean(forward)) + .setLearn(BridgeDomainTestUtils.intToBoolean(learn)) + .setUnknownUnicastFlood(BridgeDomainTestUtils.intToBoolean(uuf)) .build(); } private final int verifyBridgeDomainAddOrUpdateWasInvoked(final BridgeDomain bd) { - final int bdn1Id = bdNameToID(bd.getName()); - final byte arpTerm = booleanToByte(bd.isArpTermination()); - final byte flood = booleanToByte(bd.isFlood()); - final byte forward = booleanToByte(bd.isForward()); - final byte learn = booleanToByte(bd.isLearn()); - final byte uuf = booleanToByte(bd.isUnknownUnicastFlood()); + final int bdn1Id = BridgeDomainTestUtils.bdNameToID(bd.getName()); + final byte arpTerm = BridgeDomainTestUtils.booleanToByte(bd.isArpTermination()); + final byte flood = BridgeDomainTestUtils.booleanToByte(bd.isFlood()); + final byte forward = BridgeDomainTestUtils.booleanToByte(bd.isForward()); + final byte learn = BridgeDomainTestUtils.booleanToByte(bd.isLearn()); + final byte uuf = BridgeDomainTestUtils.booleanToByte(bd.isUnknownUnicastFlood()); return verify(api).bridgeDomainAddDel(bdn1Id, flood, forward, learn, uuf, arpTerm, ADD_OR_UPDATE_BD); } private int verifyBridgeDomainAddOrUpdateWasNotInvoked(final BridgeDomain bd) { - final int bdn1Id = bdNameToID(bd.getName()); - final byte arpTerm = booleanToByte(bd.isArpTermination()); - final byte flood = booleanToByte(bd.isFlood()); - final byte forward = booleanToByte(bd.isForward()); - final byte learn = booleanToByte(bd.isLearn()); - final byte uuf = booleanToByte(bd.isUnknownUnicastFlood()); + final int bdn1Id = BridgeDomainTestUtils.bdNameToID(bd.getName()); + final byte arpTerm = BridgeDomainTestUtils.booleanToByte(bd.isArpTermination()); + final byte flood = BridgeDomainTestUtils.booleanToByte(bd.isFlood()); + final byte forward = BridgeDomainTestUtils.booleanToByte(bd.isForward()); + final byte learn = BridgeDomainTestUtils.booleanToByte(bd.isLearn()); + final byte uuf = BridgeDomainTestUtils.booleanToByte(bd.isUnknownUnicastFlood()); return verify(api, never()).bridgeDomainAddDel(bdn1Id, flood, forward, learn, uuf, arpTerm, ADD_OR_UPDATE_BD); } private int verifyBridgeDomainDeletedWasInvoked(final BridgeDomain bd) { - final int bdn1Id = bdNameToID(bd.getName()); + final int bdn1Id = BridgeDomainTestUtils.bdNameToID(bd.getName()); return verify(api).bridgeDomainAddDel(bdn1Id, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO); } private int verifyBridgeDomainDeletedWasNotInvoked(final BridgeDomain bd) { - final int bdn1Id = bdNameToID(bd.getName()); + final int bdn1Id = BridgeDomainTestUtils.bdNameToID(bd.getName()); return verify(api, never()).bridgeDomainAddDel(bdn1Id, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO); } @@ -127,7 +122,7 @@ public class BridgeDomainCustomizerTest { final String bdName = "bd1"; final BridgeDomain bd = generateBridgeDomain("bd1"); - customizer.writeCurrentAttributes(bdIdentifierForName(bdName), bd, ctx); + customizer.writeCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, ctx); verifyBridgeDomainAddOrUpdateWasInvoked(bd); } @@ -141,7 +136,7 @@ public class BridgeDomainCustomizerTest { PowerMockito.doReturn(-1).when(api).findOrAddBridgeDomainId(bdName); try { - customizer.writeCurrentAttributes(bdIdentifierForName(bdName), bd, ctx); + customizer.writeCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, ctx); } catch (IllegalStateException e) { verifyBridgeDomainAddOrUpdateWasNotInvoked(bd); return; @@ -158,7 +153,7 @@ public class BridgeDomainCustomizerTest { final BridgeDomain bd = generateBridgeDomain(bdName); try { - customizer.writeCurrentAttributes(bdIdentifierForName(bdName), bd, ctx); + customizer.writeCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, ctx); } catch (IllegalStateException e) { verifyBridgeDomainAddOrUpdateWasInvoked(bd); return; @@ -171,7 +166,7 @@ public class BridgeDomainCustomizerTest { final String bdName = "bd1"; final BridgeDomain bd = generateBridgeDomain("bd1"); - customizer.deleteCurrentAttributes(bdIdentifierForName(bdName), bd, ctx); + customizer.deleteCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, ctx); verifyBridgeDomainDeletedWasInvoked(bd); } @@ -185,7 +180,7 @@ public class BridgeDomainCustomizerTest { PowerMockito.doReturn(-1).when(api).bridgeDomainIdFromName(bdName); try { - customizer.deleteCurrentAttributes(bdIdentifierForName(bdName), bd, ctx); + customizer.deleteCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, ctx); } catch (IllegalStateException e) { verifyBridgeDomainDeletedWasNotInvoked(bd); return; @@ -202,7 +197,7 @@ public class BridgeDomainCustomizerTest { final BridgeDomain bd = generateBridgeDomain(bdName); try { - customizer.deleteCurrentAttributes(bdIdentifierForName(bdName), bd, ctx); + customizer.deleteCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, ctx); } catch (IllegalStateException e) { verifyBridgeDomainDeletedWasInvoked(bd); return; @@ -225,7 +220,7 @@ public class BridgeDomainCustomizerTest { generateBridgeDomain(bdName, arpTermBefore ^ 1, floodBefore ^ 1, forwardBefore ^ 1, learnBefore ^ 1, uufBefore ^ 1); - final KeyedInstanceIdentifier id = bdIdentifierForName(bdName); + final KeyedInstanceIdentifier id = BridgeDomainTestUtils.bdIdentifierForName(bdName); customizer.updateCurrentAttributes(id, dataBefore, dataAfter, ctx); @@ -241,7 +236,7 @@ public class BridgeDomainCustomizerTest { PowerMockito.doReturn(-1).when(api).bridgeDomainIdFromName(bdName); try { - customizer.updateCurrentAttributes(bdIdentifierForName(bdName), bd, bd, ctx); + customizer.updateCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, bd, ctx); } catch (IllegalStateException e) { verifyBridgeDomainAddOrUpdateWasNotInvoked(bd); return; @@ -258,7 +253,7 @@ public class BridgeDomainCustomizerTest { final BridgeDomain bd = generateBridgeDomain(bdName); try { - customizer.updateCurrentAttributes(bdIdentifierForName(bdName), bd, bd, ctx); + customizer.updateCurrentAttributes(BridgeDomainTestUtils.bdIdentifierForName(bdName), bd, bd, ctx); } catch (IllegalStateException e) { verifyBridgeDomainAddOrUpdateWasInvoked(bd); return; diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainTestUtils.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainTestUtils.java similarity index 97% rename from v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainTestUtils.java rename to v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainTestUtils.java index 51a6b023e..ba4df9e49 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/BridgeDomainTestUtils.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/BridgeDomainTestUtils.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vpp; +package io.fd.honeycomb.v3po.translate.v3po.vpp; import javax.annotation.Nullable; import org.mockito.invocation.InvocationOnMock; diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/VppTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/VppTest.java similarity index 89% rename from v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/VppTest.java rename to v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/VppTest.java index bc5bda383..0ff3ba16d 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/VppTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/VppTest.java @@ -14,9 +14,8 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vpp; +package io.fd.honeycomb.v3po.translate.v3po.vpp; -import static io.fd.honeycomb.v3po.vpp.facade.v3po.vpp.BridgeDomainTestUtils.BD_NAME_TO_ID_ANSWER; import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; @@ -25,10 +24,10 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyZeroInteractions; import com.google.common.collect.Lists; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeRootVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.DelegatingWriterRegistry; -import io.fd.honeycomb.v3po.vpp.facade.write.VppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; +import io.fd.honeycomb.v3po.translate.impl.write.CompositeRootWriter; +import io.fd.honeycomb.v3po.translate.write.WriteContext; +import io.fd.honeycomb.v3po.translate.util.write.DelegatingWriterRegistry; +import io.fd.honeycomb.v3po.translate.write.Writer; import java.util.Collections; import java.util.List; import org.junit.Before; @@ -55,7 +54,7 @@ public class VppTest { private vppApi api; private DelegatingWriterRegistry rootRegistry; - private CompositeRootVppWriter vppWriter; + private CompositeRootWriter vppWriter; private WriteContext ctx; final byte zero = (byte) 0; @@ -70,12 +69,12 @@ public class VppTest { public void setUp() throws Exception { api = PowerMockito.mock(vppApi.class); ctx = mock(WriteContext.class); - PowerMockito.doAnswer(BD_NAME_TO_ID_ANSWER).when(api).findOrAddBridgeDomainId(anyString()); - PowerMockito.doAnswer(BD_NAME_TO_ID_ANSWER).when(api).bridgeDomainIdFromName(anyString()); + PowerMockito.doAnswer(BridgeDomainTestUtils.BD_NAME_TO_ID_ANSWER).when(api).findOrAddBridgeDomainId(anyString()); + PowerMockito.doAnswer(BridgeDomainTestUtils.BD_NAME_TO_ID_ANSWER).when(api).bridgeDomainIdFromName(anyString()); PowerMockito.doReturn(1).when(api).getRetval(anyInt(), anyInt()); vppWriter = VppUtils.getVppWriter(api); rootRegistry = new DelegatingWriterRegistry( - Collections.>singletonList(vppWriter)); + Collections.>singletonList(vppWriter)); } @Test diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/VppUtils.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/VppUtils.java similarity index 61% rename from v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/VppUtils.java rename to v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/VppUtils.java index ccf19c81c..cb74314e3 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vpp/VppUtils.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vpp/VppUtils.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vpp; - -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeChildVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeListVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeRootVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.NoopWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.util.ReflexiveChildWriterCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.write.ChildVppWriter; +package io.fd.honeycomb.v3po.translate.v3po.vpp; + +import io.fd.honeycomb.v3po.translate.impl.write.CompositeChildWriter; +import io.fd.honeycomb.v3po.translate.impl.write.CompositeListWriter; +import io.fd.honeycomb.v3po.translate.impl.write.CompositeRootWriter; +import io.fd.honeycomb.v3po.translate.util.write.NoopWriterCustomizer; +import io.fd.honeycomb.v3po.translate.util.write.ReflexiveChildWriterCustomizer; +import io.fd.honeycomb.v3po.translate.write.ChildWriter; +import io.fd.honeycomb.v3po.translate.util.RWUtils; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; @@ -40,21 +40,21 @@ final class VppUtils { /** * Create root Vpp writer with all its children wired */ - static CompositeRootVppWriter getVppWriter(@Nonnull final vppApi vppApi) { + static CompositeRootWriter getVppWriter(@Nonnull final vppApi vppApi) { - final CompositeListVppWriter bridgeDomainWriter = new CompositeListVppWriter<>( + final CompositeListWriter bridgeDomainWriter = new CompositeListWriter<>( BridgeDomain.class, new BridgeDomainCustomizer(vppApi)); - final ChildVppWriter bridgeDomainsReader = new CompositeChildVppWriter<>( + final ChildWriter bridgeDomainsReader = new CompositeChildWriter<>( BridgeDomains.class, - VppRWUtils.singletonChildWriterList(bridgeDomainWriter), + RWUtils.singletonChildWriterList(bridgeDomainWriter), new ReflexiveChildWriterCustomizer()); - final List>> childWriters = new ArrayList<>(); + final List>> childWriters = new ArrayList<>(); childWriters.add(bridgeDomainsReader); - return new CompositeRootVppWriter<>( + return new CompositeRootWriter<>( Vpp.class, childWriters, new NoopWriterCustomizer()); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VppStateTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VppStateTest.java similarity index 94% rename from v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VppStateTest.java rename to v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VppStateTest.java index 059c98f56..6f53f6519 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VppStateTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VppStateTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vppstate; +package io.fd.honeycomb.v3po.translate.v3po.vppstate; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -26,11 +26,11 @@ import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; import com.google.common.collect.Multimap; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeListVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeRootVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.util.DelegatingReaderRegistry; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.VppReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeListReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeRootReader; +import io.fd.honeycomb.v3po.translate.util.read.DelegatingReaderRegistry; +import io.fd.honeycomb.v3po.translate.read.ReadContext; +import io.fd.honeycomb.v3po.translate.read.Reader; import java.util.Collections; import java.util.List; import org.junit.Before; @@ -71,7 +71,7 @@ public class VppStateTest { public static final vppVersion VERSION = new vppVersion("test", "1", "2", "33"); private vppApi api; - private CompositeRootVppReader vppStateReader; + private CompositeRootReader vppStateReader; private DelegatingReaderRegistry readerRegistry; private vppBridgeDomainDetails bdDetails; private vppBridgeDomainDetails bdDetails2; @@ -120,7 +120,7 @@ public class VppStateTest { PowerMockito.doReturn(new int[] {1, 2}).when(api).bridgeDomainDump(Matchers.anyInt()); PowerMockito.doReturn(VERSION).when(api).getVppVersion(); vppStateReader = VppStateUtils.getVppStateReader(api); - readerRegistry = new DelegatingReaderRegistry(Collections.>singletonList(vppStateReader)); + readerRegistry = new DelegatingReaderRegistry(Collections.>singletonList(vppStateReader)); } private vppL2Fib[] getL2Fibs() { @@ -210,7 +210,7 @@ public class VppStateTest { public void testReadBridgeDomainAll() throws Exception { VppState readRoot = (VppState) readerRegistry.read(InstanceIdentifier.create(VppState.class), ctx).get(); - final CompositeListVppReader bridgeDomainReader = + final CompositeListReader bridgeDomainReader = VppStateUtils.getBridgeDomainReader(api); final List read = diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VppStateUtils.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VppStateUtils.java similarity index 63% rename from v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VppStateUtils.java rename to v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VppStateUtils.java index 7d5441769..5c619d84d 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/vpp/facade/v3po/vppstate/VppStateUtils.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/vppstate/VppStateUtils.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.v3po.vppstate; +package io.fd.honeycomb.v3po.translate.v3po.vppstate; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeListVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.CompositeRootVppReader; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.util.ReflexiveChildReaderCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.impl.read.util.ReflexiveRootReaderCustomizer; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeChildReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeListReader; +import io.fd.honeycomb.v3po.translate.impl.read.CompositeRootReader; +import io.fd.honeycomb.v3po.translate.util.read.ReflexiveChildReaderCustomizer; +import io.fd.honeycomb.v3po.translate.util.read.ReflexiveRootReaderCustomizer; +import io.fd.honeycomb.v3po.translate.util.RWUtils; +import io.fd.honeycomb.v3po.translate.read.ChildReader; import java.util.ArrayList; import java.util.List; import javax.annotation.Nonnull; @@ -44,33 +44,33 @@ final class VppStateUtils { /** * Create root VppState reader with all its children wired */ - static CompositeRootVppReader getVppStateReader(@Nonnull final vppApi vppApi) { + static CompositeRootReader getVppStateReader(@Nonnull final vppApi vppApi) { - final ChildVppReader versionReader = new CompositeChildVppReader<>( + final ChildReader versionReader = new CompositeChildReader<>( Version.class, new VersionCustomizer(vppApi)); - final CompositeListVppReader bridgeDomainReader = + final CompositeListReader bridgeDomainReader = getBridgeDomainReader(vppApi); - final ChildVppReader bridgeDomainsReader = new CompositeChildVppReader<>( + final ChildReader bridgeDomainsReader = new CompositeChildReader<>( BridgeDomains.class, - VppRWUtils.singletonChildReaderList(bridgeDomainReader), + RWUtils.singletonChildReaderList(bridgeDomainReader), new ReflexiveChildReaderCustomizer<>(BridgeDomainsBuilder.class)); - final List>> childVppReaders = new ArrayList<>(); + final List>> childVppReaders = new ArrayList<>(); childVppReaders.add(versionReader); childVppReaders.add(bridgeDomainsReader); - return new CompositeRootVppReader<>( + return new CompositeRootReader<>( VppState.class, childVppReaders, - VppRWUtils.emptyAugReaderList(), + RWUtils.emptyAugReaderList(), new ReflexiveRootReaderCustomizer<>(VppStateBuilder.class)); } - static CompositeListVppReader getBridgeDomainReader( + static CompositeListReader getBridgeDomainReader( final @Nonnull vppApi vppApi) { - return new CompositeListVppReader<>( + return new CompositeListReader<>( BridgeDomain.class, new BridgeDomainCustomizer(vppApi)); } diff --git a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeRootVppReader.java b/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeRootVppReader.java deleted file mode 100644 index 95f2a8eec..000000000 --- a/v3po/vpp-facade-impl/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/read/CompositeRootVppReader.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.v3po.vpp.facade.impl.read; - -import com.google.common.annotations.Beta; -import io.fd.honeycomb.v3po.vpp.facade.impl.util.VppRWUtils; -import io.fd.honeycomb.v3po.vpp.facade.read.ChildVppReader; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadContext; -import io.fd.honeycomb.v3po.vpp.facade.read.ReadFailedException; -import io.fd.honeycomb.v3po.vpp.facade.read.VppReader; -import io.fd.honeycomb.v3po.vpp.facade.spi.read.RootVppReaderCustomizer; -import java.util.List; -import javax.annotation.Nonnull; -import javax.annotation.concurrent.ThreadSafe; -import org.opendaylight.yangtools.concepts.Builder; -import org.opendaylight.yangtools.yang.binding.Augmentation; -import org.opendaylight.yangtools.yang.binding.ChildOf; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -/** - * Composite implementation of {@link io.fd.honeycomb.v3po.vpp.facade.read.VppReader} - */ -@Beta -@ThreadSafe -public final class CompositeRootVppReader> extends AbstractCompositeVppReader - implements VppReader { - - private final RootVppReaderCustomizer customizer; - - /** - * Create new {@link CompositeRootVppReader} - * - * @param managedDataObjectType Class object for managed data type - * @param childReaders Child nodes(container, list) readers - * @param augReaders Child augmentations readers - * @param customizer Customizer instance to customize this generic reader - * - */ - public CompositeRootVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final List>> childReaders, - @Nonnull final List>> augReaders, - @Nonnull final RootVppReaderCustomizer customizer) { - super(managedDataObjectType, childReaders, augReaders); - this.customizer = customizer; - } - - /** - * @see {@link CompositeRootVppReader#CompositeRootVppReader(Class, List, List, RootVppReaderCustomizer)} - */ - public CompositeRootVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final List>> childReaders, - @Nonnull final RootVppReaderCustomizer customizer) { - this(managedDataObjectType, childReaders, VppRWUtils.emptyAugReaderList(), customizer); - } - - /** - * @see {@link CompositeRootVppReader#CompositeRootVppReader(Class, List, List, RootVppReaderCustomizer)} - */ - public CompositeRootVppReader(@Nonnull final Class managedDataObjectType, - @Nonnull final RootVppReaderCustomizer customizer) { - this(managedDataObjectType, VppRWUtils.emptyChildReaderList(), VppRWUtils.emptyAugReaderList(), - customizer); - } - - @Override - protected void readCurrentAttributes(@Nonnull final InstanceIdentifier id, @Nonnull final B builder, - @Nonnull final ReadContext ctx) throws ReadFailedException { - customizer.readCurrentAttributes(id, builder, ctx.getContext()); - } - - @Override - protected B getBuilder(@Nonnull final InstanceIdentifier id) { - return customizer.getBuilder(id); - } - -} diff --git a/v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java b/v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java deleted file mode 100644 index 6730cfe26..000000000 --- a/v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/DelegatingWriterRegistryTest.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; - -import io.fd.honeycomb.v3po.vpp.facade.VppException; -import io.fd.honeycomb.v3po.vpp.facade.impl.write.CompositeRootVppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.VppWriter; -import io.fd.honeycomb.v3po.vpp.facade.write.WriteContext; -import io.fd.honeycomb.v3po.vpp.facade.write.WriterRegistry; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.Vpp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppState; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - -public class DelegatingWriterRegistryTest { - - private final InstanceIdentifier vppId; - private final InstanceIdentifier vppStateId; - private final InstanceIdentifier interfaceId; - - private WriteContext ctx; - private CompositeRootVppWriter vppWriter; - private CompositeRootVppWriter vppStateWriter; - private CompositeRootVppWriter interfacesWriter; - - private DelegatingWriterRegistry registry; - - public DelegatingWriterRegistryTest() { - vppId = InstanceIdentifier.create(Vpp.class); - vppStateId = InstanceIdentifier.create(VppState.class); - interfaceId = InstanceIdentifier.create(Interfaces.class); - } - - @SuppressWarnings("unchecked") - private CompositeRootVppWriter mockWriter(Class clazz) { - final CompositeRootVppWriter mock = (CompositeRootVppWriter) Mockito.mock(CompositeRootVppWriter.class); - doReturn(InstanceIdentifier.create(clazz)).when(mock).getManagedDataObjectType(); - return mock; - } - - private DataObject mockDataObject(final String name, final Class classToMock) { - final DataObject dataBefore = mock(classToMock, name); - doReturn(classToMock).when(dataBefore).getImplementedInterface(); - return dataBefore; - } - - @SuppressWarnings("unchecked") - private static Map, DataObject> asMap(DataObject... objects) { - final Map, DataObject> map = new HashMap<>(); - for (DataObject object : objects) { - final Class implementedInterface = - (Class) object.getImplementedInterface(); - final InstanceIdentifier id = InstanceIdentifier.create(implementedInterface); - map.put(id, object); - } - return map; - } - - @Before - public void setUp() { - ctx = mock(WriteContext.class); - vppWriter = mockWriter(Vpp.class); - vppStateWriter = mockWriter(VppState.class); - interfacesWriter = mockWriter(Interfaces.class); - - final List> writers = new ArrayList<>(); - writers.add(vppWriter); - writers.add(vppStateWriter); - writers.add(interfacesWriter); - - registry = new DelegatingWriterRegistry(writers); - } - - @Test(expected = UnsupportedOperationException.class) - public void testGetManagedDataObjectType() { - registry.getManagedDataObjectType(); - } - - @Test - public void testBulkUpdateRevert() throws Exception { - // Prepare data changes: - final DataObject dataBefore1 = mockDataObject("Vpp before", Vpp.class); - final DataObject dataAfter1 = mockDataObject("Vpp after", Vpp.class); - - final DataObject dataBefore2 = mockDataObject("VppState before", VppState.class); - final DataObject dataAfter2 = mockDataObject("VppState after", VppState.class); - - // Fail on update - doThrow(new VppException("vpp failed")).when(vppStateWriter) - .update(vppStateId, dataBefore2, dataAfter2, ctx); - - // Run the test - try { - registry.update(asMap(dataBefore1, dataBefore2), asMap(dataAfter1, dataAfter2), ctx); - } catch (WriterRegistry.BulkUpdateException e) { - // Check second update failed - assertEquals(vppStateId, e.getFailedId()); - verify(vppWriter).update(vppId, dataBefore1, dataAfter1, ctx); - verify(vppStateWriter).update(vppStateId, dataBefore2, dataAfter2, ctx); - - // Try to revert changes - e.revertChanges(); - - // Check revert was successful - verify(vppWriter).update(vppId, dataAfter1, dataBefore1, ctx); - verify(vppStateWriter, never()).update(vppStateId, dataAfter2, dataBefore2, ctx); - - return; - } - fail("BulkUpdateException expected"); - } - - @Test - public void testBulkUpdateRevertFail() throws Exception { - // Prepare data changes: - final DataObject dataBefore1 = mockDataObject("Vpp before", Vpp.class); - final DataObject dataAfter1 = mockDataObject("Vpp after", Vpp.class); - - final DataObject dataBefore2 = mockDataObject("VppState before", VppState.class); - final DataObject dataAfter2 = mockDataObject("VppState after", VppState.class); - - final DataObject dataBefore3 = mockDataObject("Interfaces before", Interfaces.class); - final DataObject dataAfter3 = mockDataObject("Interfaces after", Interfaces.class); - - // Fail on the third update - doThrow(new VppException("vpp failed")).when(interfacesWriter) - .update(interfaceId, dataBefore3, dataAfter3, ctx); - - // Fail on the second revert - doThrow(new VppException("vpp failed again")).when(vppWriter) - .update(vppId, dataAfter1, dataBefore1, ctx); - - // Run the test - try { - registry.update(asMap(dataBefore1, dataBefore2, dataBefore3), asMap(dataAfter1, dataAfter2, dataAfter3), ctx); - } catch (WriterRegistry.BulkUpdateException e) { - // Check third update failed - assertEquals(interfaceId, e.getFailedId()); - verify(vppWriter).update(vppId, dataBefore1, dataAfter1, ctx); - verify(vppStateWriter).update(vppStateId, dataBefore2, dataAfter2, ctx); - verify(interfacesWriter).update(interfaceId, dataBefore3, dataAfter3, ctx); - - // Try to revert changes - try { - e.revertChanges(); - } catch (WriterRegistry.Reverter.RevertFailedException e2) { - // Check second revert failed - assertEquals(Collections.singletonList(vppId), e2.getNotRevertedChanges()); - verify(vppWriter).update(vppId, dataAfter1, dataBefore1, ctx); - verify(vppStateWriter).update(vppStateId, dataAfter2, dataBefore2, ctx); - verify(interfacesWriter, never()).update(interfaceId, dataAfter3, dataBefore3, ctx); - return; - } - fail("WriterRegistry.Revert.RevertFailedException expected"); - } - fail("BulkUpdateException expected"); - } -} \ No newline at end of file diff --git a/v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java b/v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java deleted file mode 100644 index 0e46e2fa4..000000000 --- a/v3po/vpp-facade-impl/src/test/java/io/fd/honeycomb/v3po/vpp/facade/impl/write/util/TransactionWriteContextTest.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2016 Cisco and/or its affiliates. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.fd.honeycomb.v3po.vpp.facade.impl.write.util; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.mockito.MockitoAnnotations.initMocks; - -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; -import io.fd.honeycomb.v3po.vpp.facade.Context; -import java.util.Map; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; -import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.Vpp; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppState; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.BridgeDomains; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.bridge.domains.BridgeDomain; -import org.opendaylight.yangtools.yang.binding.DataObject; -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; - -public class TransactionWriteContextTest { - - @Mock - private BindingNormalizedNodeSerializer serializer; - @Mock - private DOMDataReadOnlyTransaction beforeTx; - @Mock - private DOMDataReadOnlyTransaction afterTx; - @Mock - private CheckedFuture>, ReadFailedException> future; - @Mock - private Optional> optional; - @Mock - private Map.Entry entry; - - private TransactionWriteContext transactionWriteContext; - - @Before - public void setUp() { - initMocks(this); - transactionWriteContext = new TransactionWriteContext(serializer, beforeTx, afterTx); - } - - @Test - public void testReadBeforeNoData() throws Exception { - when(beforeTx.read(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class))).thenReturn(future); - when(future.checkedGet()).thenReturn(optional); - when(optional.isPresent()).thenReturn(false); - - final InstanceIdentifier instanceId = - InstanceIdentifier.create(Vpp.class).child(BridgeDomains.class).child(BridgeDomain.class); - - final Optional dataObjects = transactionWriteContext.readBefore(instanceId); - assertNotNull(dataObjects); - assertFalse(dataObjects.isPresent()); - - verify(serializer).toYangInstanceIdentifier(instanceId); - verify(serializer, never()).fromNormalizedNode(any(YangInstanceIdentifier.class), any(NormalizedNode.class)); - } - - - @Test - public void testReadBefore() throws Exception { - when(beforeTx.read(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class))).thenReturn(future); - when(future.checkedGet()).thenReturn(optional); - when(optional.isPresent()).thenReturn(true); - - final InstanceIdentifier instanceId = - InstanceIdentifier.create(Vpp.class).child(BridgeDomains.class).child(BridgeDomain.class); - final YangInstanceIdentifier yangId = YangInstanceIdentifier.builder().node(VppState.QNAME).node( - BridgeDomains.QNAME).node(BridgeDomain.QNAME).build(); - when(serializer.toYangInstanceIdentifier(any(InstanceIdentifier.class))).thenReturn(yangId); - when(serializer.fromNormalizedNode(eq(yangId), any(NormalizedNode.class))).thenReturn(entry); - when(entry.getValue()).thenReturn(mock(DataObject.class)); - - final Optional dataObjects = transactionWriteContext.readBefore(instanceId); - assertNotNull(dataObjects); - assertTrue(dataObjects.isPresent()); - - verify(serializer).toYangInstanceIdentifier(instanceId); - verify(serializer).fromNormalizedNode(eq(yangId), any(NormalizedNode.class)); - } - - @Test(expected = IllegalStateException.class) - public void testReadBeforeFailed() throws Exception { - when(beforeTx.read(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class))).thenReturn(future); - when(future.checkedGet()).thenThrow(ReadFailedException.class); - transactionWriteContext.readBefore(mock(InstanceIdentifier.class)); - } - - @Test(expected = IllegalStateException.class) - public void testReadAfterFailed() throws Exception { - when(afterTx.read(eq(LogicalDatastoreType.CONFIGURATION), any(YangInstanceIdentifier.class))).thenReturn(future); - when(future.checkedGet()).thenThrow(ReadFailedException.class); - transactionWriteContext.readAfter(mock(InstanceIdentifier.class)); - } - - @Test - public void testGetContext() throws Exception { - assertNotNull(transactionWriteContext.getContext()); - } - - @Test - public void testClose() throws Exception { - final Context context = transactionWriteContext.getContext(); - transactionWriteContext.close(); - // TODO verify context was closed - } -} \ No newline at end of file diff --git a/v3po/vpp-translate-utils/pom.xml b/v3po/vpp-translate-utils/pom.xml new file mode 100644 index 000000000..b63b6d4f3 --- /dev/null +++ b/v3po/vpp-translate-utils/pom.xml @@ -0,0 +1,57 @@ + + + + + io.fd.honeycomb.common + api-parent + 1.0.0-SNAPSHOT + ../../common/api-parent + + + 4.0.0 + io.fd.honeycomb.v3po + vpp-translate-utils + 1.0.0-SNAPSHOT + bundle + + + + ${project.groupId} + translate-utils + ${project.version} + + + io.fd.vpp + vppjapi + 1.0.0-SNAPSHOT + + + + + junit + junit + test + + + org.mockito + mockito-all + test + + + + + diff --git a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppApiCustomizer.java b/v3po/vpp-translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/v3po/util/VppApiCustomizer.java similarity index 95% rename from v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppApiCustomizer.java rename to v3po/vpp-translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/v3po/util/VppApiCustomizer.java index 41090f493..de4602456 100644 --- a/v3po/vpp-facade-utils/src/main/java/io/fd/honeycomb/v3po/vpp/facade/impl/util/VppApiCustomizer.java +++ b/v3po/vpp-translate-utils/src/main/java/io/fd/honeycomb/v3po/translate/v3po/util/VppApiCustomizer.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package io.fd.honeycomb.v3po.vpp.facade.impl.util; +package io.fd.honeycomb.v3po.translate.v3po.util; import com.google.common.annotations.Beta; -- 2.16.6