You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ga...@apache.org on 2009/12/30 20:28:42 UTC
svn commit: r894697 - in
/incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx:
AbstractIntegrationTest.java framework/FrameworkMBeanTest.java
test/blueprint/BlueprintMBeanTest.java
Author: gawor
Date: Wed Dec 30 19:28:42 2009
New Revision: 894697
URL: http://svn.apache.org/viewvc?rev=894697&view=rev
Log:
fixes for ibm jdk and better code reuse between tests
Modified:
incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/AbstractIntegrationTest.java
incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/framework/FrameworkMBeanTest.java
incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java
Modified: incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/AbstractIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/AbstractIntegrationTest.java?rev=894697&r1=894696&r2=894697&view=diff
==============================================================================
--- incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/AbstractIntegrationTest.java (original)
+++ incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/AbstractIntegrationTest.java Wed Dec 30 19:28:42 2009
@@ -16,8 +16,10 @@
*/
package org.apache.aries.jmx;
-import static org.ops4j.pax.exam.CoreOptions.mavenConfiguration;
import static org.ops4j.pax.exam.CoreOptions.options;
+import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
+import static org.ops4j.pax.exam.OptionUtils.combine;
+import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
import static org.junit.Assert.*;
import javax.management.MBeanServer;
@@ -31,7 +33,6 @@
import org.ops4j.pax.exam.CoreOptions;
import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -48,7 +49,7 @@
ServiceRegistration registration;
ServiceReference reference;
- MBeanServer mbeanServer;
+ protected MBeanServer mbeanServer;
@Inject
protected BundleContext bundleContext;
@@ -89,4 +90,22 @@
return mbean;
}
+ public static MavenArtifactProvisionOption mavenBundle(String groupId, String artifactId) {
+ return CoreOptions.mavenBundle().groupId(groupId).artifactId(artifactId).versionAsInProject();
+ }
+
+ protected static Option[] updateOptions(Option[] options) {
+ // We need to add pax-exam-junit here when running with the ibm
+ // jdk to avoid the following exception during the test run:
+ // ClassNotFoundException: org.ops4j.pax.exam.junit.Configuration
+ if ("IBM Corporation".equals(System.getProperty("java.vendor"))) {
+ Option[] ibmOptions = options(
+ wrappedBundle(mavenBundle("org.ops4j.pax.exam", "pax-exam-junit"))
+ );
+ options = combine(ibmOptions, options);
+ }
+
+ return options;
+ }
+
}
\ No newline at end of file
Modified: incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/framework/FrameworkMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/framework/FrameworkMBeanTest.java?rev=894697&r1=894696&r2=894697&view=diff
==============================================================================
--- incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/framework/FrameworkMBeanTest.java (original)
+++ incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/framework/FrameworkMBeanTest.java Wed Dec 30 19:28:42 2009
@@ -40,10 +40,13 @@
@Configuration
public static Option[] configuration() {
- return CoreOptions.options(CoreOptions.equinox(),
- CoreOptions.mavenBundle().groupId("org.apache.aries.jmx").artifactId("org.apache.aries.jmx").versionAsInProject()
+ Option[] options = CoreOptions.options(
+ CoreOptions.equinox(),
+ mavenBundle("org.apache.aries.jmx", "org.apache.aries.jmx")
);
- }
+ options = updateOptions(options);
+ return options;
+ }
@Test
public void testSetBundleStartLevels() throws IOException {
Modified: incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java?rev=894697&r1=894696&r2=894697&view=diff
==============================================================================
--- incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java (original)
+++ incubator/aries/trunk/jmx/jmx-itests/src/test/java/org/apache/aries/jmx/test/blueprint/BlueprintMBeanTest.java Wed Dec 30 19:28:42 2009
@@ -28,6 +28,7 @@
import javax.management.ObjectName;
import javax.management.openmbean.TabularData;
+import org.apache.aries.jmx.AbstractIntegrationTest;
import org.apache.aries.jmx.blueprint.BlueprintMetadataMBean;
import org.apache.aries.jmx.blueprint.BlueprintStateMBean;
import org.apache.aries.jmx.test.blueprint.framework.BeanPropertyValidator;
@@ -59,52 +60,42 @@
import org.osgi.framework.ServiceRegistration;
import org.osgi.service.blueprint.container.BlueprintContainer;
-@RunWith(JUnit4TestRunner.class)
-public class BlueprintMBeanTest {
+public class BlueprintMBeanTest extends AbstractIntegrationTest {
- @Inject
- private BundleContext rbc;
-
- MBeanServer mbs;
- ServiceRegistration mbsr;
-
- // will run before each test
@Configuration
- public static Option[] configuration()
- {
- return CoreOptions.options(CoreOptions.equinox(),
- CoreOptions.mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.configadmin").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-api").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.ops4j.pax.logging").artifactId("pax-logging-service").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.osgi").artifactId("org.osgi.compendium").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.apache.aries").artifactId("org.apache.aries.util").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.apache.aries.blueprint").artifactId("org.apache.aries.blueprint").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.apache.aries.blueprint").artifactId("org.apache.aries.blueprint.sample").versionAsInProject(),
- CoreOptions.mavenBundle().groupId("org.apache.aries.jmx").artifactId("org.apache.aries.jmx.blueprint").versionAsInProject()
+ public static Option[] configuration() {
+ Option[] options = CoreOptions.options(
+ CoreOptions.equinox(),
+ mavenBundle("org.apache.felix", "org.apache.felix.configadmin"),
+ mavenBundle("org.ops4j.pax.logging", "pax-logging-api"),
+ mavenBundle("org.ops4j.pax.logging", "pax-logging-service"),
+ mavenBundle("org.osgi", "org.osgi.compendium") ,
+ mavenBundle("org.apache.aries", "org.apache.aries.util"),
+ mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"),
+ mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint.sample"),
+ mavenBundle("org.apache.aries.jmx", "org.apache.aries.jmx.blueprint")
);
+ options = updateOptions(options);
+ return options;
}
@Before
- public void setup() throws Exception {
- System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Before Test");
-
- // Create a MBean Server
- //MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
- mbs = MBeanServerFactory.createMBeanServer();
-
- // Register as a service, so that the blueprint mbean impl can found the server.
- mbsr = rbc.registerService(MBeanServer.class.getCanonicalName(), mbs, null);
+ public void setUp() throws Exception {
+ super.setUp();
+ System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Before Test");
// Wait MBeans register in server
int i=0;
- while (true){
+ while (true) {
try {
- mbs.getObjectInstance(new ObjectName(BlueprintStateMBean.OBJECTNAME));
- mbs.getObjectInstance(new ObjectName(BlueprintMetadataMBean.OBJECTNAME));
+ mbeanServer.getObjectInstance(new ObjectName(BlueprintStateMBean.OBJECTNAME));
+ mbeanServer.getObjectInstance(new ObjectName(BlueprintMetadataMBean.OBJECTNAME));
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Found MBeans");
break;
- }catch(InstanceNotFoundException e){
- if (i==5) throw new Exception(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> BlueprintStateMBean & BlueprintMetadataMBean are not found in server");
+ } catch (InstanceNotFoundException e) {
+ if (i == 5) {
+ throw new Exception(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> BlueprintStateMBean & BlueprintMetadataMBean are not found in server");
+ }
}
i++;
Thread.sleep(1000);
@@ -112,17 +103,11 @@
// Wait enough time for osgi framework and blueprint bundles to be set up
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Waiting for bundles to be set up");
- Thread.sleep(10000);
-
+ Thread.sleep(10000);
}
- @After
- public void teardown(){
- if (mbsr!=null) mbsr.unregister();
- }
-
@Test
- public void BlueprintSample()throws Exception{
+ public void BlueprintSample() throws Exception {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Start Test Blueprint Sample");
//////////////////////////////
@@ -132,7 +117,7 @@
//find the Blueprint Sample bundle id and the blueprint extender bundle id
long sampleBundleId = -1;
long extenderBundleId = -1; // the blueprint extender bundle "org.apache.geronimo.blueprint.geronimo-blueprint" is also a blueprint bundle.
- for (Bundle bundle : rbc.getBundles()){
+ for (Bundle bundle : bundleContext.getBundles()){
if (bundle.getSymbolicName().equals("org.apache.aries.blueprint.sample")) sampleBundleId = bundle.getBundleId();
if (bundle.getSymbolicName().equals("org.apache.aries.blueprint")) extenderBundleId = bundle.getBundleId();
}
@@ -140,7 +125,7 @@
if (-1==extenderBundleId) fail("Blueprint Extender Bundle is not found!");
//retrieve the proxy object
- BlueprintStateMBean stateProxy = (BlueprintStateMBean) MBeanServerInvocationHandler.newProxyInstance(mbs, new ObjectName(BlueprintStateMBean.OBJECTNAME), BlueprintStateMBean.class, false);
+ BlueprintStateMBean stateProxy = (BlueprintStateMBean) MBeanServerInvocationHandler.newProxyInstance(mbeanServer, new ObjectName(BlueprintStateMBean.OBJECTNAME), BlueprintStateMBean.class, false);
// test getBlueprintBundleIds
long[] bpBundleIds = stateProxy.getBlueprintBundleIds();
@@ -158,19 +143,19 @@
//////////////////////////////
//find the Blueprint Sample bundle's container service id
- Bundle sampleBundle = rbc.getBundle(sampleBundleId);
+ Bundle sampleBundle = bundleContext.getBundle(sampleBundleId);
String filter = "(&(osgi.blueprint.container.symbolicname=" // no similar one in interfaces
+ sampleBundle.getSymbolicName() + ")(osgi.blueprint.container.version=" + sampleBundle.getVersion() + "))";
ServiceReference[] serviceReferences = null;
try {
- serviceReferences = rbc.getServiceReferences(BlueprintContainer.class.getName(), filter);
+ 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 = (BlueprintMetadataMBean) MBeanServerInvocationHandler.newProxyInstance(mbs, new ObjectName(BlueprintMetadataMBean.OBJECTNAME), BlueprintMetadataMBean.class, false);
+ BlueprintMetadataMBean metadataProxy = (BlueprintMetadataMBean) MBeanServerInvocationHandler.newProxyInstance(mbeanServer, new ObjectName(BlueprintMetadataMBean.OBJECTNAME), BlueprintMetadataMBean.class, false);
// test getBlueprintContainerServiceIds
long[] bpContainerServiceIds = metadataProxy.getBlueprintContainerServiceIds();
@@ -275,6 +260,5 @@
bv_circularReference.addPropertyValidators(bpv_list_2);
bv_circularReference.validate(metadataProxy.getComponentMetadata(sampleBlueprintContainerServiceId, "circularReference"));
}
-
-
+
}