Bug 5984 - Do not use deprecated Yang parser classes 41/39641/2
authorMilos Fabian <milfabia@cisco.com>
Tue, 31 May 2016 11:49:39 +0000 (13:49 +0200)
committerMilos Fabian <milfabia@cisco.com>
Tue, 31 May 2016 17:13:29 +0000 (17:13 +0000)
Stop using deprecated classes from
org.opendaylight.yangtools.yang.parser.impl.* package,
use classes from new Yang parser implementation instead.

Change-Id: If91747d41683e16801e5ccd8691b0a0330daa7e2
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/bmp-impl/src/test/java/org/opendaylight/controller/config/yang/bmp/impl/BmpMonitorImplModuleTest.java
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/AbstractRIBImplModuleTest.java
programming/impl/src/test/java/org/opendaylight/controller/config/yang/programming/impl/AbstractInstructionSchedulerTest.java

index 73aad4335119a4027b803849279458234803d276..ce44523f58a73a33286b4e3b905c79b88576a690 100644 (file)
@@ -13,6 +13,7 @@ import static org.mockito.Matchers.contains;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 import com.google.common.io.ByteSource;
@@ -20,6 +21,7 @@ import com.google.common.io.Resources;
 import com.google.common.util.concurrent.CheckedFuture;
 import io.netty.channel.EventLoopGroup;
 import io.netty.util.concurrent.EventExecutor;
+import java.io.IOException;
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
 import java.net.URL;
@@ -71,9 +73,10 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 import org.opendaylight.yangtools.yang.parser.repo.URLSchemaContextResolver;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleListener;
 import org.osgi.framework.Filter;
@@ -112,9 +115,9 @@ public class BmpMonitorImplModuleTest extends AbstractConfigTest {
 
         doAnswer(new Answer<Filter>() {
             @Override
-            public Filter answer(InvocationOnMock invocation) {
-                String str = invocation.getArgumentAt(0, String.class);
-                Filter mockFilter = mock(Filter.class);
+            public Filter answer(final InvocationOnMock invocation) {
+                final String str = invocation.getArgumentAt(0, String.class);
+                final Filter mockFilter = mock(Filter.class);
                 doReturn(str).when(mockFilter).toString();
                 return mockFilter;
             }
@@ -163,8 +166,7 @@ public class BmpMonitorImplModuleTest extends AbstractConfigTest {
 
         Mockito.doReturn(null).when(this.mockedFuture).get();
 
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseSources(getFilesAsByteSources(getYangModelsPaths()));
+        final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
         final URLSchemaContextResolver mockedContextResolver = Mockito.mock(URLSchemaContextResolver.class);
         Mockito.doReturn(Optional.of(context)).when(mockedContextResolver).getSchemaContext();
 
@@ -184,13 +186,23 @@ public class BmpMonitorImplModuleTest extends AbstractConfigTest {
         setupMockService(EventExecutor.class, AutoCloseableEventExecutor.CloseableEventExecutorMixin.globalEventExecutor());
     }
 
-    private void setupMockService(Class<?> serviceInterface, Object instance) throws Exception {
-        ServiceReference<?> mockServiceRef = mock(ServiceReference.class);
+    private void setupMockService(final Class<?> serviceInterface, final Object instance) throws Exception {
+        final ServiceReference<?> mockServiceRef = mock(ServiceReference.class);
         doReturn(new ServiceReference[]{mockServiceRef}).when(mockedContext).
                 getServiceReferences(anyString(), contains(serviceInterface.getName()));
         doReturn(instance).when(mockedContext).getService(mockServiceRef);
     }
 
+    private static SchemaContext parseYangStreams(final Collection<ByteSource> streams) {
+        final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR
+                .newBuild();
+        try {
+            return reactor.buildEffective(streams);
+        } catch (final ReactorException | IOException e) {
+            throw new RuntimeException("Unable to build schema context from " + streams, e);
+        }
+    }
+
     private List<String> getYangModelsPaths() {
         final List<String> paths = Lists.newArrayList("/META-INF/yang/bgp-rib.yang", "/META-INF/yang/ietf-inet-types.yang",
                 "/META-INF/yang/bgp-message.yang", "/META-INF/yang/bgp-multiprotocol.yang", "/META-INF/yang/bgp-types.yang",
index ae4c59bcc048d2b0a6698acf361cbff926b0ebb7..be5f964077474758dccfb846de4df87f46f6d255 100755 (executable)
@@ -89,10 +89,10 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
-import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 import org.opendaylight.yangtools.yang.parser.repo.URLSchemaContextResolver;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleListener;
 import org.osgi.framework.Filter;
@@ -141,9 +141,9 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
 
         doAnswer(new Answer<Filter>() {
             @Override
-            public Filter answer(InvocationOnMock invocation) {
-                String str = invocation.getArgumentAt(0, String.class);
-                Filter mockFilter = mock(Filter.class);
+            public Filter answer(final InvocationOnMock invocation) {
+                final String str = invocation.getArgumentAt(0, String.class);
+                final Filter mockFilter = mock(Filter.class);
                 doReturn(str).when(mockFilter).toString();
                 return mockFilter;
             }
@@ -188,8 +188,7 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
         Mockito.doReturn(null).when(this.mockedFuture).get();
 
         final GlobalBundleScanningSchemaServiceImpl schemaService = GlobalBundleScanningSchemaServiceImpl.createInstance(this.mockedContext);
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseSources(getFilesAsByteSources(getYangModelsPaths()));
+        final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
         final URLSchemaContextResolver mockedContextResolver = Mockito.mock(URLSchemaContextResolver.class);
         Mockito.doReturn(Optional.of(context)).when(mockedContextResolver).getSchemaContext();
 
@@ -215,8 +214,8 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
         setupMockService(DOMMountPointService.class, mock(DOMMountPointService.class));
     }
 
-    private void setupMockService(Class<?> serviceInterface, Object instance) throws Exception {
-        ServiceReference<?> mockServiceRef = mock(ServiceReference.class);
+    private void setupMockService(final Class<?> serviceInterface, final Object instance) throws Exception {
+        final ServiceReference<?> mockServiceRef = mock(ServiceReference.class);
         doReturn(new ServiceReference[]{mockServiceRef}).when(mockedContext).
                 getServiceReferences(anyString(), contains(serviceInterface.getName()));
         doReturn(new ServiceReference[]{mockServiceRef}).when(mockedContext).
@@ -224,6 +223,16 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
         doReturn(instance).when(mockedContext).getService(mockServiceRef);
     }
 
+    private static SchemaContext parseYangStreams(final Collection<ByteSource> streams) {
+        final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR
+                .newBuild();
+        try {
+            return reactor.buildEffective(streams);
+        } catch (final ReactorException | IOException e) {
+            throw new RuntimeException("Unable to build schema context from " + streams, e);
+        }
+    }
+
     protected List<ModuleFactory> getModuleFactories() {
         return Lists.newArrayList(new RIBImplModuleFactory(), new GlobalEventExecutorModuleFactory(),
                 new BGPDispatcherImplModuleFactory(), new NettyThreadgroupModuleFactory(),
@@ -242,13 +251,7 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
                 @Override
                 public void handleServiceRegistration(final Class<?> clazz, final Object serviceInstance, final Dictionary<String, ?> props) {
                     final SchemaContextListener listener = (SchemaContextListener) serviceInstance;
-                    final YangContextParser parser = new YangParserImpl();
-                    final SchemaContext context;
-                    try {
-                        context = parser.parseSources(getFilesAsByteSources(getYangModelsPaths()));
-                    } catch (IOException | YangSyntaxErrorException e) {
-                        throw new IllegalStateException("Failed to parse models", e);
-                    }
+                    final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
                     listener.onGlobalContextUpdated(context);
                 }
             };
index 0edea6ca45247aa86c5b8c2a1d97a48bfb86c6d0..8cad7516e57b41d249599e96af6b383e1fbc2497 100644 (file)
@@ -13,6 +13,7 @@ import static org.mockito.Matchers.contains;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 import com.google.common.io.ByteSource;
@@ -76,10 +77,10 @@ import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadi
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
-import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser;
-import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
-import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
 import org.opendaylight.yangtools.yang.parser.repo.URLSchemaContextResolver;
+import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
+import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
+import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleListener;
 import org.osgi.framework.Filter;
@@ -112,9 +113,9 @@ public abstract class AbstractInstructionSchedulerTest extends AbstractConfigTes
 
         doAnswer(new Answer<Filter>() {
             @Override
-            public Filter answer(InvocationOnMock invocation) {
-                String str = invocation.getArgumentAt(0, String.class);
-                Filter mockFilter = mock(Filter.class);
+            public Filter answer(final InvocationOnMock invocation) {
+                final String str = invocation.getArgumentAt(0, String.class);
+                final Filter mockFilter = mock(Filter.class);
                 doReturn(str).when(mockFilter).toString();
                 return mockFilter;
             }
@@ -146,8 +147,7 @@ public abstract class AbstractInstructionSchedulerTest extends AbstractConfigTes
         Mockito.doReturn(null).when(mockedContext).getService(emptyServiceReference);
 
         final GlobalBundleScanningSchemaServiceImpl schemaService = GlobalBundleScanningSchemaServiceImpl.createInstance(this.mockedContext);
-        final YangContextParser parser = new YangParserImpl();
-        final SchemaContext context = parser.parseSources(getFilesAsByteSources(getYangModelsPaths()));
+        final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
         final URLSchemaContextResolver mockedContextResolver = Mockito.mock(URLSchemaContextResolver.class);
         Mockito.doReturn(Optional.of(context)).when(mockedContextResolver).getSchemaContext();
 
@@ -170,14 +170,14 @@ public abstract class AbstractInstructionSchedulerTest extends AbstractConfigTes
         setupMockService(DOMRpcService.class, mock(DOMRpcService.class));
         setupMockService(DOMMountPointService.class, mock(DOMMountPointService.class));
 
-        DOMRpcProviderService mockRpcProvider = mock(DOMRpcProviderService.class);
+        final DOMRpcProviderService mockRpcProvider = mock(DOMRpcProviderService.class);
         doReturn(mock(DOMRpcImplementationRegistration.class)).when(mockRpcProvider).registerRpcImplementation(
                 any(DOMRpcImplementation.class), any(Set.class));
         setupMockService(DOMRpcProviderService.class, mockRpcProvider);
     }
 
-    private void setupMockService(Class<?> serviceInterface, Object instance) throws Exception {
-        ServiceReference<?> mockServiceRef = mock(ServiceReference.class);
+    private void setupMockService(final Class<?> serviceInterface, final Object instance) throws Exception {
+        final ServiceReference<?> mockServiceRef = mock(ServiceReference.class);
         doReturn(new ServiceReference[]{mockServiceRef}).when(mockedContext).
                 getServiceReferences(anyString(), contains(serviceInterface.getName()));
         doReturn(new ServiceReference[]{mockServiceRef}).when(mockedContext).
@@ -314,13 +314,8 @@ public abstract class AbstractInstructionSchedulerTest extends AbstractConfigTes
                 @Override
                 public void handleServiceRegistration(final Class<?> clazz, final Object serviceInstance, final Dictionary<String, ?> props) {
                     final SchemaContextListener listener = (SchemaContextListener) serviceInstance;
-                    final YangContextParser parser = new YangParserImpl();
-                    SchemaContext context;
-                    try {
-                        context = parser.parseSources(getFilesAsByteSources(getYangModelsPaths()));
-                    } catch (final IOException | YangSyntaxErrorException e) {
-                        throw new IllegalStateException("Failed to parse models", e);
-                    }
+                    final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
+                    listener.onGlobalContextUpdated(context);
                     listener.onGlobalContextUpdated(context);
                 }
             };
@@ -358,4 +353,14 @@ public abstract class AbstractInstructionSchedulerTest extends AbstractConfigTes
         return resources;
     }
 
+    private static SchemaContext parseYangStreams(final Collection<ByteSource> streams) {
+        final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR
+                .newBuild();
+        try {
+            return reactor.buildEffective(streams);
+        } catch (final ReactorException | IOException e) {
+            throw new RuntimeException("Unable to build schema context from " + streams, e);
+        }
+    }
+
 }