import com.google.common.base.Preconditions;
import java.util.Hashtable;
-import javassist.ClassPool;
import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder;
import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator;
import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl;
-import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
/**
-*
-*/
+ *
+**/
public final class RuntimeMappingModule extends AbstractRuntimeMappingModule {
private BundleContext bundleContext;
@Override
public java.lang.AutoCloseable createInstance() {
final GeneratedClassLoadingStrategy classLoading = getGlobalClassLoadingStrategy();
- final BindingIndependentMappingService legacyMapping = getGlobalLegacyMappingService(classLoading);
BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(SingletonHolder.JAVASSIST));
- BindingToNormalizedNodeCodec instance = new BindingToNormalizedNodeCodec(classLoading, legacyMapping, codecRegistry);
+ BindingToNormalizedNodeCodec instance = new BindingToNormalizedNodeCodec(classLoading, codecRegistry);
bundleContext.registerService(SchemaContextListener.class, instance, new Hashtable<String,String>());
return instance;
}
- private BindingIndependentMappingService getGlobalLegacyMappingService(final GeneratedClassLoadingStrategy classLoading) {
- BindingIndependentMappingService potential = tryToReuseGlobalMappingServiceInstance();
- if(potential == null) {
- potential = new RuntimeGeneratedMappingServiceImpl(ClassPool.getDefault(),classLoading);
- bundleContext.registerService(SchemaContextListener.class, (SchemaContextListener) potential, new Hashtable<String,String>());
- }
- return potential;
- }
-
private GeneratedClassLoadingStrategy getGlobalClassLoadingStrategy() {
ServiceReference<GeneratedClassLoadingStrategy> ref = bundleContext.getServiceReference(GeneratedClassLoadingStrategy.class);
return bundleContext.getService(ref);
}
- private BindingIndependentMappingService tryToReuseGlobalMappingServiceInstance() {
- ServiceReference<BindingIndependentMappingService> serviceRef = getBundleContext().getServiceReference(BindingIndependentMappingService.class);
- if(serviceRef == null) {
- return null;
- }
- return bundleContext.getService(serviceRef);
-
- }
-
- private BundleContext getBundleContext() {
- return bundleContext;
- }
-
public void setBundleContext(final BundleContext bundleContext) {
this.bundleContext = bundleContext;
}
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
public class BindingToNormalizedNodeCodec implements BindingCodecTreeFactory, SchemaContextListener, AutoCloseable {
- private final BindingIndependentMappingService bindingToLegacy;
private final BindingNormalizedNodeCodecRegistry codecRegistry;
private DataNormalizer legacyToNormalized;
private final GeneratedClassLoadingStrategy classLoadingStrategy;
private BindingRuntimeContext runtimeContext;
public BindingToNormalizedNodeCodec(final GeneratedClassLoadingStrategy classLoadingStrategy,
- final BindingIndependentMappingService mappingService,
final BindingNormalizedNodeCodecRegistry codecRegistry) {
- this.bindingToLegacy = mappingService;
this.classLoadingStrategy = classLoadingStrategy;
this.codecRegistry = codecRegistry;
return currentOp.createDefault(path.getLastPathArgument());
}
- public BindingIndependentMappingService getLegacy() {
- return bindingToLegacy;
- }
-
public BindingNormalizedNodeCodecRegistry getCodecRegistry() {
return codecRegistry;
}
package org.opendaylight.controller.md.sal.binding.impl.test;
import static org.junit.Assert.assertTrue;
-import javassist.ClassPool;
+import javassist.ClassPool;
import org.junit.Test;
import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
import org.opendaylight.controller.md.sal.binding.test.AbstractSchemaAwareTest;
import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator;
import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl;
import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.QName;
private static final QName SIMPLE_VALUE_QNAME = QName.create(TreeComplexUsesAugment.QNAME, "simple-value");
- private RuntimeGeneratedMappingServiceImpl mappingService;
- private BindingToNormalizedNodeCodec codec;
+ private BindingToNormalizedNodeCodec codec;
@Override
protected void setupWithSchema(final SchemaContext context) {
- mappingService = new RuntimeGeneratedMappingServiceImpl(ClassPool.getDefault());
DataObjectSerializerGenerator streamWriter = StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()));
BindingNormalizedNodeCodecRegistry registry = new BindingNormalizedNodeCodecRegistry(streamWriter);
- codec = new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(), mappingService, registry);
- mappingService.onGlobalContextUpdated(context);
+ codec = new BindingToNormalizedNodeCodec(GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(), registry);
codec.onGlobalContextUpdated(context);
};
import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.TOP_FOO_KEY;
import static org.opendaylight.controller.md.sal.test.model.util.ListsBindingUtils.path;
-import org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry;
-
import com.google.common.base.Throwables;
import java.util.Arrays;
import javassist.ClassPool;
import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
+import org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(ClassPool.getDefault()));
final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator);
final GeneratedClassLoadingStrategy classLoadingStrategy = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy();
- final BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(classLoadingStrategy, null, codecRegistry);
+ final BindingToNormalizedNodeCodec codec = new BindingToNormalizedNodeCodec(classLoadingStrategy, codecRegistry);
final DOMRpcRouter domRpcRegistry = new DOMRpcRouter();
domRpcRegistry.onGlobalContextUpdated(context);
codec.onGlobalContextUpdated(context);
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.NotificationService;
-import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter;
+import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
import org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter;
import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator;
import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl;
import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
private DOMDataBroker domDataBroker;
private final DOMNotificationRouter domNotificationRouter;
- private final RuntimeGeneratedMappingServiceImpl mappingService;
private final MockSchemaService schemaService;
private ImmutableMap<LogicalDatastoreType, DOMStore> datastores;
private final BindingToNormalizedNodeCodec bindingToNormalized;
public DataBrokerTestCustomizer() {
schemaService = new MockSchemaService();
final ClassPool pool = ClassPool.getDefault();
- mappingService = new RuntimeGeneratedMappingServiceImpl(pool);
final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(pool));
final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator);
final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy();
- bindingToNormalized = new BindingToNormalizedNodeCodec(loading, mappingService, codecRegistry);
+ bindingToNormalized = new BindingToNormalizedNodeCodec(loading, codecRegistry);
schemaService.registerSchemaContextListener(bindingToNormalized);
domNotificationRouter = DOMNotificationRouter.create(16);
}
public void updateSchema(final SchemaContext ctx) {
schemaService.changeSchema(ctx);
- mappingService.onGlobalContextUpdated(ctx);
}
public DOMNotificationRouter getDomNotificationRouter() {
*/
package org.opendaylight.controller.sal.binding.test;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
import org.junit.Before;
import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
import org.opendaylight.controller.sal.binding.test.util.BindingBrokerTestFactory;
import org.opendaylight.controller.sal.binding.test.util.BindingTestContext;
-import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
-
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
@SuppressWarnings("deprecation")
public abstract class AbstractDataServiceTest {
protected org.opendaylight.controller.sal.core.api.data.DataProviderService biDataService;
protected DataProviderService baDataService;
- protected BindingIndependentMappingService mappingService;
+
protected BindingTestContext testContext;
@Before
baDataService = testContext.getBindingDataBroker();
biDataService = testContext.getDomDataBroker();
- mappingService = testContext.getBindingToDomMappingService();
}
protected boolean getStartWithSchema() {
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.test.compat;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import org.junit.Test;
-import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.nt.l3.unicast.igp.topology.rev131021.igp.node.attributes.igp.node.attributes.Prefix;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.nt.l3.unicast.igp.topology.rev131021.igp.node.attributes.igp.node.attributes.PrefixBuilder;
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-
-public class UnionSerializationTest extends AbstractDataServiceTest {
-
- public static final String PREFIX_STRING = "192.168.0.1/32";
-
-
- @Test
- public void testPrefixSerialization() throws Exception {
-
- Ipv4Prefix ipv4prefix = new Ipv4Prefix(PREFIX_STRING);
- IpPrefix ipPrefix = new IpPrefix(ipv4prefix);
- Prefix prefix = new PrefixBuilder().setPrefix(ipPrefix).build();
-
- CompositeNode serialized = testContext.getBindingToDomMappingService().toDataDom(prefix);
- assertNotNull(serialized);
- assertNotNull(serialized.getFirstSimpleByName(Prefix.QNAME));
- assertEquals(PREFIX_STRING, serialized.getFirstSimpleByName(Prefix.QNAME).getValue());
-
- Prefix deserialized = (Prefix) testContext.getBindingToDomMappingService().dataObjectFromDataDom(Prefix.class, serialized);
- assertNotNull(deserialized);
- assertNotNull(deserialized.getPrefix());
- assertNotNull(deserialized.getPrefix().getIpv4Prefix());
- assertEquals(PREFIX_STRING, deserialized.getPrefix().getIpv4Prefix().getValue());
- }
-
-}
import org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry;
import org.opendaylight.controller.md.sal.binding.compat.HydrogenDataBrokerAdapter;
import org.opendaylight.controller.md.sal.binding.compat.HydrogenMountProvisionServiceAdapter;
+import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter;
import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
-import org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker;
import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl;
import org.opendaylight.yangtools.sal.binding.generator.util.JavassistUtils;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@Beta
public class BindingTestContext implements AutoCloseable {
- private RuntimeGeneratedMappingServiceImpl mappingServiceImpl;
private BindingToNormalizedNodeCodec codec;
private RootBindingAwareBroker baBrokerImpl;
public void startBindingToDomMappingService() {
checkState(classPool != null, "ClassPool needs to be present");
- mappingServiceImpl = new RuntimeGeneratedMappingServiceImpl(classPool);
- mockSchemaService.registerSchemaContextListener(mappingServiceImpl);
final DataObjectSerializerGenerator generator = StreamWriterGenerator.create(JavassistUtils.forClassPool(classPool));
final BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(generator);
final GeneratedClassLoadingStrategy loading = GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy();
- codec = new BindingToNormalizedNodeCodec(loading, mappingServiceImpl, codecRegistry);
+ codec = new BindingToNormalizedNodeCodec(loading, codecRegistry);
mockSchemaService.registerSchemaContextListener(codec);
}
return biDataLegacyBroker;
}
- public BindingIndependentMappingService getBindingToDomMappingService() {
- return mappingServiceImpl;
- }
-
public RpcProviderRegistry getBindingRpcRegistry() {
return baBrokerImpl.getRoot();
}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.md.sal.binding.data;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.junit.Test;
-import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
-import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
-import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.Lists;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.OrderedContainer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.UnkeyedContainer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.UnkeyedContainerBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.UnorderedContainer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.ordered.container.OrderedList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.ordered.container.OrderedListBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.ordered.container.OrderedListKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.unkeyed.container.UnkeyedList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.unkeyed.container.UnkeyedListBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.unordered.container.UnorderedList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.unordered.container.UnorderedListBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.store.rev140422.lists.unordered.container.UnorderedListKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-import org.opendaylight.yangtools.yang.data.api.Node;
-import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
-import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.util.concurrent.ListenableFuture;
-
-/*
- * FIXME: THis test should be moved to sal-binding-broker and rewriten
- * to use new DataBroker API
- */
-@SuppressWarnings("deprecation")
-public class ListProcessingAndOrderingTest extends AbstractDataServiceTest {
-
- private static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier DOM_UNORDERED_LIST_PATH = org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier
- .builder().node(Lists.QNAME).node(UnorderedContainer.QNAME).node(UnorderedList.QNAME).build();
-
- private static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier DOM_ORDERED_LIST_PATH = org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier
- .builder().node(Lists.QNAME).node(OrderedContainer.QNAME).node(OrderedList.QNAME).build();
-
-
- private static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier DOM_UNKEYED_LIST_PATH = org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier
- .builder().node(Lists.QNAME).node(UnkeyedContainer.QNAME).node(UnkeyedList.QNAME).build();
-
- private static final InstanceIdentifier<UnorderedContainer> UNORDERED_CONTAINER_PATH = InstanceIdentifier.builder(Lists.class).child(UnorderedContainer.class).build();
- private static final InstanceIdentifier<OrderedContainer> ORDERED_CONTAINER_PATH = InstanceIdentifier.builder(Lists.class).child(OrderedContainer.class).build();
- private static final InstanceIdentifier<UnkeyedContainer> UNKEYED_CONTAINER_PATH = InstanceIdentifier.builder(Lists.class).child(UnkeyedContainer.class).build();
-
- private static final UnorderedListKey UNORDERED_FOO_KEY = new UnorderedListKey("foo");
- private static final UnorderedListKey UNORDERED_BAR_KEY = new UnorderedListKey("bar");
-
- private static final InstanceIdentifier<UnorderedList> UNORDERED_FOO_PATH = UNORDERED_CONTAINER_PATH.child(UnorderedList.class,UNORDERED_FOO_KEY);
- private static final InstanceIdentifier<UnorderedList> UNORDERED_BAR_PATH = UNORDERED_CONTAINER_PATH.child(UnorderedList.class,UNORDERED_BAR_KEY);
-
- private static final OrderedListKey ORDERED_FOO_KEY = new OrderedListKey("foo");
- private static final OrderedListKey ORDERED_BAR_KEY = new OrderedListKey("bar");
- private static final InstanceIdentifier<OrderedList> ORDERED_FOO_PATH = ORDERED_CONTAINER_PATH.child(OrderedList.class,ORDERED_FOO_KEY);
- private static final InstanceIdentifier<OrderedList> ORDERED_BAR_PATH = ORDERED_CONTAINER_PATH.child(OrderedList.class,ORDERED_BAR_KEY);
-
-
- @Test
- public void unorderedListReadWriteTest() throws InterruptedException, ExecutionException {
- DataModificationTransaction tx = baDataService.beginTransaction();
-
- tx.putOperationalData(UNORDERED_FOO_PATH, createUnordered("foo"));
- tx.putOperationalData(UNORDERED_BAR_PATH, createUnordered("bar"));
- assertedCommit(tx);
-
- NormalizedNode<?, ?> data = resolveDataAsserted(DOM_UNORDERED_LIST_PATH);
- assertTrue(data instanceof MapNode);
- assertFalse(data instanceof OrderedMapNode);
-
- assertXmlRepresentation(UNORDERED_CONTAINER_PATH, "foo","bar");
- }
-
-
-
- @Test
- public void orderedListReadWriteTest() throws InterruptedException, ExecutionException {
- DataModificationTransaction tx = baDataService.beginTransaction();
-
- tx.putOperationalData(ORDERED_FOO_PATH, createOrdered("foo"));
- tx.putOperationalData(ORDERED_BAR_PATH, createOrdered("bar"));
- assertedCommit(tx);
- NormalizedNode<?, ?> data = resolveDataAsserted(DOM_ORDERED_LIST_PATH);
- assertTrue(data instanceof MapNode);
- assertTrue(data instanceof OrderedMapNode);
-
- assertXmlRepresentation(ORDERED_CONTAINER_PATH, "foo","bar");
-
- }
-
-
-
- @Test
- public void unkeyedListReadWriteTest() throws InterruptedException, ExecutionException {
- DataModificationTransaction tx = baDataService.beginTransaction();
-
- ImmutableList<UnkeyedList> unkeyedItems= ImmutableList.<UnkeyedList>builder()
- .add(createUnkeyed("foo"))
- .add(createUnkeyed("bar"))
- .build();
-
- tx.putOperationalData(UNKEYED_CONTAINER_PATH, new UnkeyedContainerBuilder().setUnkeyedList(unkeyedItems).build());
- assertedCommit(tx);
- NormalizedNode<?, ?> data = resolveDataAsserted(DOM_UNKEYED_LIST_PATH);
- assertFalse(data instanceof MapNode);
- assertTrue(data instanceof UnkeyedListNode);
-
- assertXmlRepresentation(UNKEYED_CONTAINER_PATH, "foo","bar");
- }
-
- private NormalizedNode<?, ?> resolveDataAsserted(
- final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier domPath) {
-
- try (DOMDataReadOnlyTransaction readTx = testContext.getDomAsyncDataBroker().newReadOnlyTransaction()){
- ListenableFuture<Optional<NormalizedNode<?, ?>>> data = readTx.read(LogicalDatastoreType.OPERATIONAL, domPath);
- Optional<NormalizedNode<?, ?>> potential = data.get();
- assertTrue(potential.isPresent());
- return potential.get();
- } catch (InterruptedException | ExecutionException e) {
- throw new RuntimeException(e);
- }
- }
-
- private static UnorderedList createUnordered(final String name) {
- return new UnorderedListBuilder().setName(name).setValue(createValue(name)).build();
- }
-
- private static OrderedList createOrdered(final String name) {
- return new OrderedListBuilder().setName(name).setValue(createValue(name)).build();
- }
-
- private static UnkeyedList createUnkeyed(final String name) {
- return new UnkeyedListBuilder().setName(name).setValue(createValue(name)).build();
- }
-
- private static String createValue(final String name) {
- return name + "-" + name.hashCode();
- }
-
- private static void assertedCommit(final DataModificationTransaction tx) throws InterruptedException, ExecutionException {
- RpcResult<TransactionStatus> result = tx.commit().get();
- assertTrue(result.isSuccessful());
- assertEquals(TransactionStatus.COMMITED,result.getResult());
- }
-
- private void assertXmlRepresentation(final InstanceIdentifier<?> containerPath, final String... childNameValues) {
-
- org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier domPath = testContext.getBindingToDomMappingService().toDataDom(containerPath);
- CompositeNode compositeNode = testContext.getDomDataBroker().readOperationalData(domPath);
- assertNotNull(compositeNode);
-
- Set<String> childValues = new HashSet<>();
- Collections.addAll(childValues, childNameValues);
-
- for(Node<?> child : compositeNode.getChildren()) {
- assertTrue(child instanceof CompositeNode);
- CompositeNode compChild = (CompositeNode) child;
- String nameLeafValue = (String) compChild.getSimpleNodesByName("name").get(0).getValue();
- String valueLeafValue = (String) compChild.getSimpleNodesByName("value").get(0).getValue();
-
- assertEquals(createValue(nameLeafValue), valueLeafValue);
- childValues.remove(nameLeafValue);
- }
- assertTrue(childValues.isEmpty());
- }
-
-}
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
import java.util.Collections;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-
import org.junit.Test;
import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.common.RpcResult;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-
@SuppressWarnings("deprecation")
public class DOMCodecBug02Test extends AbstractDataServiceTest {
baDataService = testContext.getBindingDataBroker();
biDataService = testContext.getDomDataBroker();
- mappingService = testContext.getBindingToDomMappingService();
};
@Test
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.test.bugfix;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import org.junit.Test;
-import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
-import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
-import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.BitFlags;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.TllComplexAugment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.List1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.List1Key;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List11;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List11Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List11Key;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.Top;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelListKey;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-
-import com.google.common.collect.ImmutableSet;
-
-@SuppressWarnings("deprecation")
-public class FlagsSerializationTest extends AbstractDataServiceTest {
- private static final TopLevelListKey TLL_KEY = new TopLevelListKey("foo");
- private static final List11Key LIST11_KEY = new List11Key(1234);
- private static final List1Key LIST1_KEY = new List1Key("1");
-
- private static final InstanceIdentifier<TopLevelList> TLL_INSTANCE_ID_BA = InstanceIdentifier.builder(Top.class) //
- .child(TopLevelList.class, TLL_KEY).toInstance();
-
- private static final InstanceIdentifier<? extends DataObject> LIST11_INSTANCE_ID_BA = //
- TLL_INSTANCE_ID_BA.builder() //
- .augmentation(TllComplexAugment.class)
- .child(List1.class,LIST1_KEY)
- .child(List11.class, LIST11_KEY) //
- .toInstance();
- private static final QName LIST11_FLAGS_QNAME = QName.create(List11.QNAME, "flags");
-
- @Test
- public void testIndirectGeneration() throws Exception {
-
- BitFlags checkOverlapFlags = new BitFlags(true,false,false,false,false);
- ImmutableSet<String> domCheckOverlapFlags = ImmutableSet.<String>of("FLAG_FIVE");
- testFlags(checkOverlapFlags,domCheckOverlapFlags);
-
-
-
- BitFlags allFalseFlags = new BitFlags(false,false,false,false,false);
- ImmutableSet<String> domAllFalseFlags = ImmutableSet.<String>of();
- testFlags(allFalseFlags,domAllFalseFlags);
-
- BitFlags allTrueFlags = new BitFlags(true,true,true,true,true);
- ImmutableSet<String> domAllTrueFlags = ImmutableSet.<String>of("FLAG_ONE","FLAG_TWO","FLAG_THREE","FLAG_FOUR","FLAG_FIVE");
- testFlags(allTrueFlags,domAllTrueFlags);
-
- testFlags(null,null);
-
-
-
- }
-
- private void testFlags(final BitFlags flagsToTest, final ImmutableSet<String> domFlags) throws Exception {
- List11 list11 = createList11(flagsToTest);
- assertNotNull(list11);
-
- CompositeNode domList11 = biDataService.readConfigurationData(mappingService.toDataDom(LIST11_INSTANCE_ID_BA));
-
- assertNotNull(domList11);
- org.opendaylight.yangtools.yang.data.api.Node<?> readedFlags = domList11.getFirstSimpleByName(LIST11_FLAGS_QNAME);
-
- if(domFlags != null) {
- assertNotNull(readedFlags);
- assertEquals(domFlags,readedFlags.getValue());
- } else {
- assertNull(readedFlags);
- }
- assertEquals(flagsToTest, list11.getFlags());
-
- DataModificationTransaction transaction = baDataService.beginTransaction();
- transaction.removeConfigurationData(LIST11_INSTANCE_ID_BA);
- RpcResult<TransactionStatus> result = transaction.commit().get();
- assertEquals(TransactionStatus.COMMITED, result.getResult());
-
- }
-
- private List11 createList11(final BitFlags flagsToTest) throws Exception {
-
- DataModificationTransaction modification = baDataService.beginTransaction();
-
- List11Builder list11b = new List11Builder();
-
- list11b.setKey(LIST11_KEY);
- list11b.setAttrStr("list:1:1");
-
- list11b.setFlags(flagsToTest);
-
- modification.putConfigurationData(LIST11_INSTANCE_ID_BA, list11b.build());
- RpcResult<TransactionStatus> ret = modification.commit().get();
- assertNotNull(ret);
- assertEquals(TransactionStatus.COMMITED, ret.getResult());
- return (List11) baDataService.readConfigurationData(LIST11_INSTANCE_ID_BA);
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.test.connect.dom;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import org.junit.Test;
-import org.opendaylight.controller.md.sal.common.api.TransactionStatus;
-import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent;
-import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
-import org.opendaylight.controller.sal.binding.test.AbstractDataServiceTest;
-import org.opendaylight.controller.sal.core.api.data.DataModificationTransaction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.TllComplexAugment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.List1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.List1Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.List1Key;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List11Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List11Key;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List12Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.of.migration.test.model.rev150210.aug.grouping.list1.List12Key;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.Top;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelList;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.two.level.list.TopLevelListKey;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.util.concurrent.SettableFuture;
-
-/**
- * FIXME: Migrate to use new Data Broker APIs
- */
-@SuppressWarnings("deprecation")
-public class ChangeOriginatedInDomBrokerTest extends AbstractDataServiceTest {
-
- protected static final Logger LOG = LoggerFactory.getLogger(ChangeOriginatedInDomBrokerTest.class);
-
- private static final QName TLL_NAME_QNAME = QName.create(TopLevelList.QNAME, "name");
- private static final QName LIST1_ATTR_STR_QNAME = QName.create(List1.QNAME, "attr-str");
-
- private static final String TLL_NAME = "1";
- private static final int LIST11_ATTR_INT = 1234;
- private static final String LIST1_ATTR_STR = "foo:foo";
-
- private static final TopLevelListKey TLL_KEY = new TopLevelListKey(TLL_NAME);
- private static final List1Key LIST1_KEY = new List1Key(LIST1_ATTR_STR);
- private static final List11Key LIST11_KEY = new List11Key(LIST11_ATTR_INT);
-
- protected final SettableFuture<DataChangeEvent<InstanceIdentifier<?>, DataObject>> modificationCapture = SettableFuture.create();
-
- private static final Map<QName, Object> TLL_KEY_BI = Collections.<QName, Object> singletonMap(TLL_NAME_QNAME,
- TLL_NAME);
-
- private static final InstanceIdentifier<TopLevelList> NODE_INSTANCE_ID_BA = InstanceIdentifier.builder(Top.class) //
- .child(TopLevelList.class, TLL_KEY).toInstance();
-
- private static final Map<QName, Object> LIST1_KEY_BI = //
- ImmutableMap.<QName, Object> of(LIST1_ATTR_STR_QNAME, LIST1_ATTR_STR);;
-
- private static final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier LIST1_INSTANCE_ID_BI = //
- org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.builder() //
- .node(Top.QNAME) //
- .nodeWithKey(TopLevelList.QNAME, TLL_KEY_BI) //
- .nodeWithKey(List1.QNAME, LIST1_KEY_BI) //
- .toInstance();
-
- private static final InstanceIdentifier<List1> LIST1_PATH_BA = //
- NODE_INSTANCE_ID_BA.builder() //
- .augmentation(TllComplexAugment.class) //
- .child(List1.class, LIST1_KEY) //
- .toInstance();
-
- @Test
- public void simpleModifyOperation() throws Exception {
-
- assertNull(biDataService.readConfigurationData(LIST1_INSTANCE_ID_BI));
-
- registerChangeListener();
-
- CompositeNode domflow = createTestList1();
- DataModificationTransaction biTransaction = biDataService.beginTransaction();
- biTransaction.putConfigurationData(LIST1_INSTANCE_ID_BI, domflow);
- RpcResult<TransactionStatus> biResult = biTransaction.commit().get();
- assertEquals(TransactionStatus.COMMITED, biResult.getResult());
- DataChangeEvent<InstanceIdentifier<?>, DataObject> event = modificationCapture.get(1000,TimeUnit.MILLISECONDS);
- assertNotNull(event);
- LOG.info("Created Configuration :{}",event.getCreatedConfigurationData());
- List1 list1 = (List1) event.getCreatedConfigurationData().get(LIST1_PATH_BA);
- assertNotNull(list1);
- assertNotNull(list1.getAttrStr());
- assertNotNull(list1.getList11());
- assertNotNull(list1.getList12());
- assertEquals(TransactionStatus.COMMITED, biResult.getResult());
-
- }
-
- private void registerChangeListener() {
- baDataService.registerDataChangeListener(LIST1_PATH_BA, new DataChangeListener() {
-
- @Override
- public void onDataChanged(final DataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
- LOG.info("Data Change listener invoked.");
- modificationCapture.set(change);
- }
- });
- }
-
- private CompositeNode createTestList1() {
- List1Builder l1b = new List1Builder();
- List11Builder l11b = new List11Builder();
- List12Builder l12b = new List12Builder();
- l11b.setKey(LIST11_KEY);
- l11b.setAttrStr("foo:foo:foo");
- l12b.setKey(new List12Key(321));
- l12b.setAttrStr("foo:foo:bar");
- l1b.setKey(LIST1_KEY);
- l1b.setList11(ImmutableList.of(l11b.build()));
- l1b.setList12(ImmutableList.of(l12b.build()));
- CompositeNode domList1 = mappingService.toDataDom(l1b.build());
- return domList1;
- }
-}
package org.opendaylight.controller.sal.restconf.binding.impl;
import java.net.URL;
-
import org.opendaylight.controller.sal.binding.api.data.DataBrokerService;
import org.opendaylight.controller.sal.binding.api.data.DataChangeListener;
import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
import org.opendaylight.yangtools.restconf.client.api.UnsupportedProtocolException;
import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
import org.opendaylight.yangtools.yang.model.api.SchemaContextHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final RestconfClientContext restconfClientContext;
private final RestconfClientContextFactory restconfClientContextFactory = null;
- public DataBrokerServiceImpl(URL baseUrl, BindingIndependentMappingService mappingService, SchemaContextHolder schemaContextHolder) throws UnsupportedProtocolException {
- this.restconfClientContext = restconfClientContextFactory.getRestconfClientContext(baseUrl, mappingService, schemaContextHolder);
+ public DataBrokerServiceImpl(URL baseUrl, SchemaContextHolder schemaContextHolder) throws UnsupportedProtocolException {
+ this.restconfClientContext = restconfClientContextFactory.getRestconfClientContext(baseUrl, schemaContextHolder);
}
@Override
*/
package org.opendaylight.controller.sal.restconf.broker.client;
+import com.google.common.base.Preconditions;
import java.net.URL;
-
-import javassist.ClassPool;
-
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
import org.opendaylight.controller.sal.restconf.broker.SalRemoteServiceBroker;
import org.opendaylight.yangtools.restconf.client.api.RestconfClientContext;
import org.opendaylight.yangtools.restconf.client.api.UnsupportedProtocolException;
import org.opendaylight.yangtools.sal.binding.generator.impl.ModuleInfoBackedContext;
-import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl;
import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaContextHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Preconditions;
-
-class SalRemoteClientImpl implements SalRemoteClient {
+class SalRemoteClientImpl implements SalRemoteClient, SchemaContextHolder {
private static final Logger logger = LoggerFactory.getLogger(SalRemoteClientImpl.class);
private final RestconfClientContext restconfClientContext;
private final SalRemoteServiceBroker salRemoteBroker;
- private final RuntimeGeneratedMappingServiceImpl mappingService;
+
+ private SchemaContext schemaContext;
public SalRemoteClientImpl(final URL url) {
Preconditions.checkNotNull(url);
- this.mappingService = new RuntimeGeneratedMappingServiceImpl(ClassPool.getDefault());
final ModuleInfoBackedContext moduleInfo = ModuleInfoBackedContext.create();
moduleInfo.addModuleInfos(BindingReflections.loadModuleInfos());
- this.mappingService.onGlobalContextUpdated(moduleInfo.tryToCreateSchemaContext().get());
-
+ schemaContext = moduleInfo.tryToCreateSchemaContext().get();
try {
- this.restconfClientContext = new RestconfClientFactory().getRestconfClientContext(url, this.mappingService,
- this.mappingService);
+ this.restconfClientContext = new RestconfClientFactory().getRestconfClientContext(url,this);
this.salRemoteBroker = new SalRemoteServiceBroker("remote-broker", restconfClientContext);
this.salRemoteBroker.start();
}, null);
}
+ @Override
+ public SchemaContext getSchemaContext() {
+ return schemaContext;
+ }
+
@Override
public void close() throws Exception {
this.restconfClientContext.close();
+++ /dev/null
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.impl.test;
-
-public class DataBrokerImplTest {
-
- public static void main(String[] args){
-
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.sal.binding.impl.test;
-
-public class NotificationServiceImplTest {
-
- public static void main(String[] args){
-
- }
-}