use of org.apache.aries.cdi.test.interfaces.BeanService in project aries by apache.
the class ConfigurationTests method testConfiguration.
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testConfiguration() throws Exception {
Bundle tb3Bundle = installBundle("tb3.jar");
Configuration configurationA = null, configurationB = null;
try {
Filter filter = bundleContext.createFilter("(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + tb3Bundle.getBundleId() + "))");
ServiceTracker<CdiContainer, CdiContainer> containerTracker = new ServiceTracker<>(bundleContext, filter, null);
containerTracker.open();
containerTracker.waitForService(timeout);
ServiceReference<CdiContainer> serviceReference = containerTracker.getServiceReference();
assertNotNull(serviceReference);
assertEquals(CdiEvent.Type.WAITING_FOR_CONFIGURATIONS, serviceReference.getProperty(CdiConstants.CDI_CONTAINER_STATE));
configurationA = configurationAdmin.getConfiguration("configA", "?");
Dictionary<String, Object> properties = new Hashtable<>();
properties.put("ports", new int[] { 12, 4567 });
configurationA.update(properties);
configurationB = configurationAdmin.getConfiguration("configB", "?");
properties = new Hashtable<>();
properties.put("color", "green");
properties.put("ports", new int[] { 80 });
configurationB.update(properties);
containerTracker.close();
filter = bundleContext.createFilter("(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + tb3Bundle.getBundleId() + ")(" + CdiConstants.CDI_CONTAINER_STATE + "=CREATED))");
containerTracker = new ServiceTracker<>(bundleContext, filter, null);
containerTracker.open();
containerTracker.waitForService(timeout);
ServiceTracker<BeanService, BeanService> stA = new ServiceTracker<BeanService, BeanService>(bundleContext, bundleContext.createFilter("(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=A))"), null);
stA.open(true);
BeanService<Callable<int[]>> beanService = stA.waitForService(timeout);
assertNotNull(beanService);
assertEquals("blue", beanService.doSomething());
assertArrayEquals(new int[] { 12, 4567 }, beanService.get().call());
ServiceTracker<BeanService, BeanService> stB = new ServiceTracker<BeanService, BeanService>(bundleContext, bundleContext.createFilter("(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=B))"), null);
stB.open(true);
beanService = stB.waitForService(timeout);
assertNotNull(beanService);
assertEquals("green", beanService.doSomething());
assertArrayEquals(new int[] { 80 }, beanService.get().call());
} finally {
if (configurationA != null) {
try {
configurationA.delete();
} catch (Exception e) {
// ignore
}
}
if (configurationB != null) {
try {
configurationB.delete();
} catch (Exception e) {
// ignore
}
}
tb3Bundle.uninstall();
}
}
use of org.apache.aries.cdi.test.interfaces.BeanService in project aries by apache.
the class CdiBeanTests method testConstructorInjectedService.
public void testConstructorInjectedService() throws Exception {
Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences(BeanService.class, String.format("(objectClass=*.%s)", "ConstructorInjectedService")).iterator();
assertTrue(iterator.hasNext());
ServiceReference<BeanService> serviceReference = iterator.next();
assertNotNull(serviceReference);
BeanService bean = bundleContext.getService(serviceReference);
assertNotNull(bean);
assertEquals("PREFIXCONSTRUCTOR", bean.doSomething());
}
use of org.apache.aries.cdi.test.interfaces.BeanService in project aries by apache.
the class CdiBeanTests method testFieldInjectedService.
public void testFieldInjectedService() throws Exception {
Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences(BeanService.class, String.format("(objectClass=*.%s)", "FieldInjectedService")).iterator();
assertTrue(iterator.hasNext());
ServiceReference<BeanService> serviceReference = iterator.next();
assertNotNull(serviceReference);
BeanService bean = bundleContext.getService(serviceReference);
assertNotNull(bean);
assertEquals("PREFIXFIELD", bean.doSomething());
}
use of org.apache.aries.cdi.test.interfaces.BeanService in project aries by apache.
the class OSGiBeanDescriptorTests method testReferences.
@SuppressWarnings("serial")
public void testReferences() throws Exception {
Bundle tb1Bundle = installBundle("tb1.jar");
Bundle tb2Bundle = installBundle("tb2.jar");
CdiContainer cdiContainer = waitForCdiContainer(tb1Bundle.getBundleId());
try {
BeanManager beanManager = cdiContainer.getBeanManager();
Set<Bean<?>> beans = beanManager.getBeans("beanimpl");
Bean<?> bean = beanManager.resolve(beans);
CreationalContext<?> ctx = beanManager.createCreationalContext(bean);
BeanService<?> beanService = (BeanService<?>) beanManager.getReference(bean, new TypeLiteral<BeanService<?>>() {
}.getType(), ctx);
assertNotNull(beanService);
assertEquals("POJO-IMPLBEAN-IMPL", beanService.doSomething());
} finally {
tb2Bundle.uninstall();
tb1Bundle.uninstall();
}
}
use of org.apache.aries.cdi.test.interfaces.BeanService in project aries by apache.
the class ConfigurationTests method testOptionalConfiguration.
@SuppressWarnings({ "rawtypes", "unchecked" })
public void testOptionalConfiguration() throws Exception {
Bundle tb5Bundle = installBundle("tb5.jar");
Configuration configurationC = null;
try {
Filter filter = bundleContext.createFilter("(&(objectClass=" + CdiContainer.class.getName() + ")(service.bundleid=" + tb5Bundle.getBundleId() + ")(" + CdiConstants.CDI_CONTAINER_STATE + "=CREATED))");
ServiceTracker<CdiContainer, CdiContainer> containerTracker = new ServiceTracker<>(bundleContext, filter, null);
containerTracker.open();
containerTracker.waitForService(timeout);
ServiceTracker<BeanService, BeanService> stC = new ServiceTracker<BeanService, BeanService>(bundleContext, bundleContext.createFilter("(&(objectClass=org.apache.aries.cdi.test.interfaces.BeanService)(bean=C))"), null);
stC.open(true);
BeanService<Callable<int[]>> beanService = stC.waitForService(timeout);
int t = stC.getTrackingCount();
assertNotNull(beanService);
assertEquals("blue", beanService.doSomething());
assertArrayEquals(new int[] { 35777 }, beanService.get().call());
configurationC = configurationAdmin.getConfiguration("foo.bar", "?");
Dictionary<String, Object> properties = new Hashtable<>();
properties.put("ports", new int[] { 12, 4567 });
configurationC.update(properties);
while (t == stC.getTrackingCount()) {
Thread.sleep(10);
}
t = stC.getTrackingCount();
while (t == stC.getTrackingCount()) {
Thread.sleep(10);
}
t = stC.getTrackingCount();
beanService = stC.waitForService(timeout);
assertNotNull(beanService);
assertEquals("blue", beanService.doSomething());
assertArrayEquals(new int[] { 12, 4567 }, beanService.get().call());
configurationC.delete();
while (t == stC.getTrackingCount()) {
Thread.sleep(10);
}
beanService = stC.waitForService(timeout);
assertNotNull(beanService);
assertEquals("blue", beanService.doSomething());
assertArrayEquals(new int[] { 35777 }, beanService.get().call());
} finally {
if (configurationC != null) {
try {
configurationC.delete();
} catch (Exception e) {
// ignore
}
}
tb5Bundle.uninstall();
}
}
Aggregations