YangTextSchemaContextResolver is the replacement, use that.
Change-Id: Ie8967f9ddba3352815f084926441eeb1e0530aac
Signed-off-by: Robert Varga <rovarga@cisco.com>
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.base.Throwables;
import com.google.common.collect.Lists;
import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
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.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.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
+import org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleListener;
import org.osgi.framework.Filter;
Mockito.doReturn(null).when(this.mockedFuture).get();
- final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
- final URLSchemaContextResolver mockedContextResolver = Mockito.mock(URLSchemaContextResolver.class);
- Mockito.doReturn(Optional.of(context)).when(mockedContextResolver).getSchemaContext();
+ final YangTextSchemaContextResolver mockedContextResolver = newSchemaContextResolver(getYangModelsPaths());
final Field contextResolverField = schemaService.getClass().getDeclaredField("contextResolver");
contextResolverField.setAccessible(true);
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 static YangTextSchemaContextResolver newSchemaContextResolver(final List<String> paths) {
+ YangTextSchemaContextResolver resolver = YangTextSchemaContextResolver.create("test");
+ final List<String> failedToFind = new ArrayList<>();
+ for (final String path : paths) {
+ final URL url = BmpMonitorImplModuleTest.class.getResource(path);
+ if (url == null) {
+ failedToFind.add(path);
+ } else {
+ try {
+ resolver.registerSource(url);
+ } catch(SchemaSourceException | IOException | YangSyntaxErrorException e) {
+ Throwables.propagate(e);
+ }
+ }
}
+ Assert.assertEquals("Some files were not found", Collections.<String> emptyList(), failedToFind);
+ return resolver;
}
private List<String> getYangModelsPaths() {
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.base.Throwables;
import com.google.common.collect.Lists;
import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
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.parser.repo.URLSchemaContextResolver;
+import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
+import org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver;
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;
Mockito.doReturn(null).when(this.mockedFuture).get();
final GlobalBundleScanningSchemaServiceImpl schemaService = GlobalBundleScanningSchemaServiceImpl.createInstance(this.mockedContext);
- final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
- final URLSchemaContextResolver mockedContextResolver = Mockito.mock(URLSchemaContextResolver.class);
- Mockito.doReturn(Optional.of(context)).when(mockedContextResolver).getSchemaContext();
+ final YangTextSchemaContextResolver mockedContextResolver = newSchemaContextResolver(getYangModelsPaths());
final Field contextResolverField = schemaService.getClass().getDeclaredField("contextResolver");
contextResolverField.setAccessible(true);
return resources;
}
+ private static YangTextSchemaContextResolver newSchemaContextResolver(final List<String> paths) {
+ YangTextSchemaContextResolver resolver = YangTextSchemaContextResolver.create("test");
+ final List<String> failedToFind = new ArrayList<>();
+ for (final String path : paths) {
+ final URL url = AbstractRIBImplModuleTest.class.getResource(path);
+ if (url == null) {
+ failedToFind.add(path);
+ } else {
+ try {
+ resolver.registerSource(url);
+ } catch(SchemaSourceException | IOException | YangSyntaxErrorException e) {
+ Throwables.propagate(e);
+ }
+ }
+ }
+ Assert.assertEquals("Some files were not found", Collections.<String> emptyList(), failedToFind);
+ return resolver;
+ }
+
public ObjectName createBindingBrokerImpl(final ConfigTransactionJMXClient transaction, final ObjectName dataBrokerON,
final ObjectName notificationBrokerON) throws Exception {
final ObjectName objectName = transaction.createModule(BindingBrokerImplModuleFactory.NAME, BINDING_BROKER_INSTANCE_NAME);
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.base.Throwables;
import com.google.common.collect.Lists;
import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
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.parser.repo.URLSchemaContextResolver;
+import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
+import org.opendaylight.yangtools.yang.parser.repo.YangTextSchemaContextResolver;
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;
Mockito.doReturn(null).when(mockedContext).getService(emptyServiceReference);
final GlobalBundleScanningSchemaServiceImpl schemaService = GlobalBundleScanningSchemaServiceImpl.createInstance(this.mockedContext);
- final SchemaContext context = parseYangStreams(getFilesAsByteSources(getYangModelsPaths()));
- final URLSchemaContextResolver mockedContextResolver = Mockito.mock(URLSchemaContextResolver.class);
- Mockito.doReturn(Optional.of(context)).when(mockedContextResolver).getSchemaContext();
+ final YangTextSchemaContextResolver mockedContextResolver = newSchemaContextResolver(getYangModelsPaths());
final Field contextResolverField = schemaService.getClass().getDeclaredField("contextResolver");
contextResolverField.setAccessible(true);
return resources;
}
+ private static YangTextSchemaContextResolver newSchemaContextResolver(final List<String> paths) {
+ YangTextSchemaContextResolver resolver = YangTextSchemaContextResolver.create("test");
+ final List<String> failedToFind = new ArrayList<>();
+ for (final String path : paths) {
+ final URL url = AbstractInstructionSchedulerTest.class.getResource(path);
+ if (url == null) {
+ failedToFind.add(path);
+ } else {
+ try {
+ resolver.registerSource(url);
+ } catch(SchemaSourceException | IOException | YangSyntaxErrorException e) {
+ Throwables.propagate(e);
+ }
+ }
+ }
+ Assert.assertEquals("Some files were not found", Collections.<String> emptyList(), failedToFind);
+ return resolver;
+ }
+
private static SchemaContext parseYangStreams(final Collection<ByteSource> streams) {
final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR
.newBuild();