Search in sources :

Example 1 with ServiceValidator

use of org.apache.aries.jmx.test.blueprint.framework.ServiceValidator in project aries by apache.

the class BlueprintMBeanTest method testBlueprintMetaDataMBean.

@Test
public void testBlueprintMetaDataMBean() throws Exception {
    //find the Blueprint Sample bundle's container service id
    String filter = // no similar one in interfaces
    "(&(osgi.blueprint.container.symbolicname=" + sample.getSymbolicName() + ")(osgi.blueprint.container.version=" + sample.getVersion() + "))";
    ServiceReference[] serviceReferences = null;
    try {
        serviceReferences = bundleContext.getServiceReferences(BlueprintContainer.class.getName(), filter);
    } catch (InvalidSyntaxException e) {
        throw new RuntimeException(e);
    }
    long sampleBlueprintContainerServiceId = (Long) serviceReferences[0].getProperty(Constants.SERVICE_ID);
    //retrieve the proxy object
    BlueprintMetadataMBean metadataProxy = MBeanServerInvocationHandler.newProxyInstance(mbeanServer, new ObjectName(BlueprintMetadataMBean.OBJECTNAME), BlueprintMetadataMBean.class, false);
    // test getBlueprintContainerServiceIds
    long[] bpContainerServiceIds = metadataProxy.getBlueprintContainerServiceIds();
    assertEquals(3, bpContainerServiceIds.length);
    // test getBlueprintContainerServiceId
    assertEquals(sampleBlueprintContainerServiceId, metadataProxy.getBlueprintContainerServiceId(sample.getBundleId()));
    // test getComponentMetadata
    // bean: foo
    BeanValidator bv_foo = new BeanValidator("org.apache.aries.blueprint.sample.Foo", "init", "destroy");
    BeanPropertyValidator bpv_a = property("a", "5");
    BeanPropertyValidator bpv_b = property("b", "-1");
    BeanPropertyValidator bpv_bar = new BeanPropertyValidator("bar");
    bpv_bar.setObjectValueValidator(new RefValidator("bar"));
    BeanPropertyValidator bpv_currency = property("currency", "PLN");
    BeanPropertyValidator bpv_date = property("date", "2009.04.17");
    bv_foo.addPropertyValidators(bpv_a, bpv_b, bpv_bar, bpv_currency, bpv_date);
    bv_foo.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "foo"));
    // bean: bar
    BeanPropertyValidator bpv_value = property("value", "Hello FooBar");
    BeanPropertyValidator bpv_context = new BeanPropertyValidator("context");
    bpv_context.setObjectValueValidator(new RefValidator("blueprintBundleContext"));
    CollectionValidator cv = new CollectionValidator("java.util.List");
    cv.addCollectionValueValidators(new ValueValidator("a list element"), new ValueValidator("5", "java.lang.Integer"));
    BeanPropertyValidator bpv_list = new BeanPropertyValidator("list");
    bpv_list.setObjectValueValidator(cv);
    BeanValidator bv_bar = new BeanValidator("org.apache.aries.blueprint.sample.Bar");
    bv_bar.addPropertyValidators(bpv_value, bpv_context, bpv_list);
    bv_bar.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "bar"));
    // service: ref=foo, no componentId set. So using it to test getComponentIdsByType.
    String[] serviceComponentIds = metadataProxy.getComponentIdsByType(sampleBlueprintContainerServiceId, BlueprintMetadataMBean.SERVICE_METADATA);
    assertEquals("There should be two service components in this sample", 2, serviceComponentIds.length);
    MapEntryValidator mev = new MapEntryValidator();
    mev.setKeyValueValidator(new ValueValidator("key"), new ValueValidator("value"));
    RegistrationListenerValidator rglrv = new RegistrationListenerValidator("serviceRegistered", "serviceUnregistered");
    rglrv.setListenerComponentValidator(new RefValidator("fooRegistrationListener"));
    ServiceValidator sv = new ServiceValidator(4);
    sv.setServiceComponentValidator(new RefValidator("foo"));
    sv.addMapEntryValidator(mev);
    sv.addRegistrationListenerValidator(rglrv);
    sv.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, serviceComponentIds[0]));
    // bean: fooRegistrationListener
    BeanValidator bv_fooRegistrationListener = new BeanValidator("org.apache.aries.blueprint.sample.FooRegistrationListener");
    bv_fooRegistrationListener.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "fooRegistrationListener"));
    // reference: ref2
    ReferenceListenerValidator rlrv_1 = new ReferenceListenerValidator("bind", "unbind");
    rlrv_1.setListenerComponentValidator(new RefValidator("bindingListener"));
    ReferenceValidator rv = new ReferenceValidator("org.apache.aries.blueprint.sample.InterfaceA", 100);
    rv.addReferenceListenerValidator(rlrv_1);
    rv.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "ref2"));
    // bean: bindingListener
    BeanValidator bv_bindingListener = new BeanValidator("org.apache.aries.blueprint.sample.BindingListener");
    bv_bindingListener.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "bindingListener"));
    // reference-list: ref-list
    ReferenceListenerValidator rlrv_2 = new ReferenceListenerValidator("bind", "unbind");
    rlrv_2.setListenerComponentValidator(new RefValidator("listBindingListener"));
    ReferenceListValidator rlv_ref_list = new ReferenceListValidator("org.apache.aries.blueprint.sample.InterfaceA");
    rlv_ref_list.addReferenceListenerValidator(rlrv_2);
    rlv_ref_list.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "ref-list"));
    // bean: listBindingListener
    BeanValidator bv_listBindingListener = new BeanValidator("org.apache.aries.blueprint.sample.BindingListener");
    bv_listBindingListener.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "listBindingListener"));
    // bean: circularReference
    ReferenceListenerValidator rlrv_3 = new ReferenceListenerValidator("bind", "unbind");
    rlrv_3.setListenerComponentValidator(new RefValidator("circularReference"));
    ReferenceListValidator rlv_2 = new ReferenceListValidator("org.apache.aries.blueprint.sample.InterfaceA", 2);
    rlv_2.addReferenceListenerValidator(rlrv_3);
    BeanPropertyValidator bpv_list_2 = new BeanPropertyValidator("list");
    bpv_list_2.setObjectValueValidator(rlv_2);
    BeanValidator bv_circularReference = new BeanValidator("org.apache.aries.blueprint.sample.BindingListener", "init");
    bv_circularReference.addPropertyValidators(bpv_list_2);
    bv_circularReference.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "circularReference"));
}
Also used : BeanPropertyValidator(org.apache.aries.jmx.test.blueprint.framework.BeanPropertyValidator) BlueprintMetadataMBean(org.apache.aries.jmx.blueprint.BlueprintMetadataMBean) BeanValidator(org.apache.aries.jmx.test.blueprint.framework.BeanValidator) ReferenceListenerValidator(org.apache.aries.jmx.test.blueprint.framework.ReferenceListenerValidator) ValueValidator(org.apache.aries.jmx.test.blueprint.framework.ValueValidator) ServiceValidator(org.apache.aries.jmx.test.blueprint.framework.ServiceValidator) ReferenceValidator(org.apache.aries.jmx.test.blueprint.framework.ReferenceValidator) RegistrationListenerValidator(org.apache.aries.jmx.test.blueprint.framework.RegistrationListenerValidator) ServiceReference(org.osgi.framework.ServiceReference) ObjectName(javax.management.ObjectName) RefValidator(org.apache.aries.jmx.test.blueprint.framework.RefValidator) ReferenceListValidator(org.apache.aries.jmx.test.blueprint.framework.ReferenceListValidator) MapEntryValidator(org.apache.aries.jmx.test.blueprint.framework.MapEntryValidator) CollectionValidator(org.apache.aries.jmx.test.blueprint.framework.CollectionValidator) InvalidSyntaxException(org.osgi.framework.InvalidSyntaxException) Test(org.junit.Test) AbstractIntegrationTest(org.apache.aries.jmx.AbstractIntegrationTest)

Aggregations

ObjectName (javax.management.ObjectName)1 AbstractIntegrationTest (org.apache.aries.jmx.AbstractIntegrationTest)1 BlueprintMetadataMBean (org.apache.aries.jmx.blueprint.BlueprintMetadataMBean)1 BeanPropertyValidator (org.apache.aries.jmx.test.blueprint.framework.BeanPropertyValidator)1 BeanValidator (org.apache.aries.jmx.test.blueprint.framework.BeanValidator)1 CollectionValidator (org.apache.aries.jmx.test.blueprint.framework.CollectionValidator)1 MapEntryValidator (org.apache.aries.jmx.test.blueprint.framework.MapEntryValidator)1 RefValidator (org.apache.aries.jmx.test.blueprint.framework.RefValidator)1 ReferenceListValidator (org.apache.aries.jmx.test.blueprint.framework.ReferenceListValidator)1 ReferenceListenerValidator (org.apache.aries.jmx.test.blueprint.framework.ReferenceListenerValidator)1 ReferenceValidator (org.apache.aries.jmx.test.blueprint.framework.ReferenceValidator)1 RegistrationListenerValidator (org.apache.aries.jmx.test.blueprint.framework.RegistrationListenerValidator)1 ServiceValidator (org.apache.aries.jmx.test.blueprint.framework.ServiceValidator)1 ValueValidator (org.apache.aries.jmx.test.blueprint.framework.ValueValidator)1 Test (org.junit.Test)1 InvalidSyntaxException (org.osgi.framework.InvalidSyntaxException)1 ServiceReference (org.osgi.framework.ServiceReference)1