input -> YangTextSchemaSource.class.isAssignableFrom(input.getRepresentation());
private final DataBroker dataBroker;
- private final YangLibServiceImpl yangLibService;
private final YanglibConfig yanglibConfig;
private SchemaListenerRegistration schemaListenerRegistration;
private SharedSchemaRepository schemaRepository;
- public YangLibProvider(final YanglibConfig yanglibConfig, final DataBroker dataBroker,
- final YangLibServiceImpl yangLibService) {
+ public YangLibProvider(final YanglibConfig yanglibConfig, final DataBroker dataBroker) {
this.yanglibConfig = Preconditions.checkNotNull(yanglibConfig);
this.dataBroker = Preconditions.checkNotNull(dataBroker);
- this.yangLibService = Preconditions.checkNotNull(yangLibService);
}
@Override
public void close() {
- yangLibService.setSchemaRepository(null);
+ YangLibServiceImpl.setSchemaRepository(null);
if (schemaListenerRegistration != null) {
schemaListenerRegistration.close();
}
schemaRepository.registerSchemaSourceListener(cache);
schemaListenerRegistration = schemaRepository.registerSchemaSourceListener(this);
- yangLibService.setSchemaRepository(schemaRepository);
+ YangLibServiceImpl.setSchemaRepository(schemaRepository);
LOG.info("Started yang library with sources from {}", cacheFolderFile);
}
import java.util.Set;
import javax.ws.rs.core.Application;
import org.opendaylight.yanglib.api.YangLibRestAppService;
-import org.osgi.framework.FrameworkUtil;
public class YangLibRestApp extends Application implements YangLibRestAppService {
-
- private final YangLibServiceImpl yangLibService;
-
- public YangLibRestApp() {
- this.yangLibService = new YangLibServiceImpl();
- FrameworkUtil.getBundle(getClass()).getBundleContext().registerService(YangLibRestAppService.class.getName(),
- this, null);
- }
+ private final YangLibServiceImpl yangLibService = new YangLibServiceImpl();
@Override
public Set<Object> getSingletons() {
public class YangLibServiceImpl implements YangLibService {
private static final Logger LOG = LoggerFactory.getLogger(YangLibServiceImpl.class);
- private volatile SchemaRepository schemaRepository;
+ private static volatile SchemaRepository schemaRepository;
public YangLibServiceImpl() {
}
- public void setSchemaRepository(final SchemaRepository schemaRepository) {
+ public static void setSchemaRepository(final SchemaRepository schemaRepository) {
LOG.debug("Setting schema repository {}", schemaRepository);
- this.schemaRepository = schemaRepository;
+ YangLibServiceImpl.schemaRepository = schemaRepository;
}
@Override
<param-name>javax.ws.rs.Application</param-name>
<param-value>org.opendaylight.yanglib.impl.YangLibRestApp</param-value>
</init-param>
+ <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAXRSYanglib</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
-</web-app>
\ No newline at end of file
+</web-app>
binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.yanglib.impl.rev141210.YanglibConfig"/>
<reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"/>
- <reference id="yangLibRestAppService" interface="org.opendaylight.yanglib.api.YangLibRestAppService"/>
<bean id="yangLibProvider" class="org.opendaylight.yanglib.impl.YangLibProvider"
init-method="init" destroy-method="close">
<argument ref="yanglibConfig"/>
<argument ref="dataBroker"/>
- <argument>
- <bean factory-ref="yangLibRestAppService" factory-method="getYangLibService"/>
- </argument>
</bean>
</blueprint>
final YanglibConfig yanglibConfig = new YanglibConfigBuilder().setBindingAddr("www.fake.com")
.setBindingPort(300L).setCacheFolder(CACHE_DIR.getAbsolutePath()).build();
- yangLibProvider = new YangLibProvider(yanglibConfig, dataBroker, new YangLibServiceImpl());
+ yangLibProvider = new YangLibProvider(yanglibConfig, dataBroker);
}
@Test
package org.opendaylight.yanglib.impl;
import static junit.framework.TestCase.assertTrue;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.BDDMockito.then;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
import java.util.Set;
import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.opendaylight.yanglib.api.YangLibRestAppService;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(FrameworkUtil.class)
public class YangLibRestAppTest {
@Test
public void testYangLibRestApp() {
- PowerMockito.mockStatic(FrameworkUtil.class);
-
- final BundleContext bundleContext = mock(BundleContext.class);
- final Bundle bundle = mock(Bundle.class);
-
- given(FrameworkUtil.getBundle(any())).willReturn(bundle);
- given(bundle.getBundleContext()).willReturn(bundleContext);
-
final YangLibRestApp yangLibRestApp = new YangLibRestApp();
final Set singleton = yangLibRestApp.getSingletons();
assertTrue(singleton.contains(yangLibRestApp.getYangLibService()));
-
- then(bundleContext).should(times(1))
- .registerService(eq(YangLibRestAppService.class.getName()), eq(yangLibRestApp), eq(null));
}
}