You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by rw...@apache.org on 2009/12/02 09:03:20 UTC

svn commit: r886069 - in /geronimo/sandbox/rex: ./ org.apache.geronimo.blueprint.jmx.impl/ org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/ org.apache.geronimo.blueprint.jmx/

Author: rwonly
Date: Wed Dec  2 08:03:19 2009
New Revision: 886069

URL: http://svn.apache.org/viewvc?rev=886069&view=rev
Log:
Temply Create MBean Service in impl's activator

Modified:
    geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/pom.xml
    geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/Activator.java
    geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/RegistrationStandardMBean.java
    geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx/pom.xml
    geronimo/sandbox/rex/pom.xml

Modified: geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/pom.xml?rev=886069&r1=886068&r2=886069&view=diff
==============================================================================
--- geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/pom.xml (original)
+++ geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/pom.xml Wed Dec  2 08:03:19 2009
@@ -3,13 +3,13 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.geronimo.blueprint</groupId>
-        <artifactId>org.apache.geronimo.blueprint.jmx-parent</artifactId>
+        <artifactId>jmx-parent</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.geronimo.blueprint.jmx.impl</artifactId>
     <packaging>bundle</packaging>
-    <name>org.apache.geronimo.blueprint.jmx.impl</name>
+    <name>Apache Geronimo Blueprint Jmx Implementation</name>
   
     <dependencies>
         <dependency>
@@ -49,6 +49,11 @@
                 <extensions>true</extensions>
                 <configuration>
                     <instructions>
+					    <Bundle-SymbolicName>org.apache.geronimo.blueprint.jmx.impl</Bundle-SymbolicName>
+						<Bundle-Name>Apache Geronimo Blueprint Jmx Implementation</Bundle-Name>
+						<Bundle-Description>Apache Geronimo Blueprint Jmx implementation.</Bundle-Description>
+						<Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
+						<Export-Package>org.apache.geronimo.blueprint.jmx.impl*</Export-Package>
                         <Bundle-Activator>org.apache.geronimo.blueprint.jmx.impl.Activator</Bundle-Activator>
                      </instructions>
                 </configuration>

Modified: geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/Activator.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/Activator.java?rev=886069&r1=886068&r2=886069&view=diff
==============================================================================
--- geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/Activator.java (original)
+++ geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/Activator.java Wed Dec  2 08:03:19 2009
@@ -8,15 +8,20 @@
 import javax.management.InstanceNotFoundException;
 import javax.management.MBeanRegistrationException;
 import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
 import javax.management.NotCompliantMBeanException;
 import javax.management.ObjectName;
 import javax.management.StandardMBean;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.JMXServiceURL;
 
 import org.apache.geronimo.blueprint.jmx.BlueprintMetadataMBean;
 import org.apache.geronimo.blueprint.jmx.BlueprintStateMBean;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.util.tracker.ServiceTracker;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
 
@@ -24,9 +29,9 @@
 
     protected BundleContext bundleContext;
 
-    /* the StardardMBean does not implement the MBeanRegistration in jdk1.5*/   
-    //protected StandardMBean blueprintState;
-    protected BlueprintState blueprintState;
+    protected ServiceRegistration mbsReg;
+    
+    protected StandardMBean blueprintState;
     protected ObjectName blueprintStateName;
 
     protected StandardMBean blueprintMetadata;
@@ -47,6 +52,11 @@
                 new MBeanServiceTracker());
         System.out.println("Awaiting MBeanServer service registration"); // Fine
         mbeanServiceTracker.open();
+        
+        // create JMX agent. This could be in a separate bundle.
+        MBeanServer mbs = createJMXAgent();
+        // reg mbeanServer
+        mbsReg = context.registerService(MBeanServer.class.getCanonicalName(), mbs, null);
     }
 
     public void stop(BundleContext context) throws Exception {
@@ -55,6 +65,9 @@
             deregisterServices(mbeanServer);
         }
         mbeanServers.clear();
+        
+        // move mbs
+        mbsReg.unregister();
     }
 
     class MBeanServiceTracker implements ServiceTrackerCustomizer {
@@ -109,13 +122,12 @@
         // create BlueprintStateMBean
         
         /* the StardardMBean does not implement the MBeanRegistration in jdk1.5*/        
-        //        try {
-        //            blueprintState = new RegistrationStandardMBean(new BlueprintState(bundleContext), BlueprintStateMBean.class);
-        //        } catch (NotCompliantMBeanException e) {
-        //            System.out.println("Unable to create StandardMBean for BlueprintState" + e); // Severe
-        //            return;
-        //        }
-        blueprintState = new BlueprintState(bundleContext);
+        try {
+            blueprintState = new RegistrationStandardMBean(new BlueprintState(bundleContext), BlueprintStateMBean.class);
+        } catch (NotCompliantMBeanException e) {
+            System.out.println("Unable to create StandardMBean for BlueprintState" + e); // Severe
+            return;
+        }
         
         // register BlueprintStateMBean to MBean server
         System.out.println("Registering bundle state monitor with MBeanServer: " + mbeanServer + " with name: "
@@ -179,5 +191,24 @@
 
         servicesRegistered.set(false);
     }
+    
+    
+    private MBeanServer createJMXAgent() throws Exception {    
+        MBeanServer server = MBeanServerFactory.createMBeanServer();    
+        // Create an RMI connector and start it    
+        try{
+        JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://127.0.0.1:9999/server");   
+        JMXConnectorServer connServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);    
+        connServer.start();    
+        System.out.println("rmi¡¡start....."); 
+        }
+        catch(Exception e){
+            e.printStackTrace();
+        }
+        
+        
+        
+        return server;
+    }    
 
 }

Modified: geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/RegistrationStandardMBean.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/RegistrationStandardMBean.java?rev=886069&r1=886068&r2=886069&view=diff
==============================================================================
--- geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/RegistrationStandardMBean.java (original)
+++ geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx.impl/src/main/java/org/apache/geronimo/blueprint/jmx/impl/RegistrationStandardMBean.java Wed Dec  2 08:03:19 2009
@@ -6,48 +6,46 @@
 import javax.management.ObjectName;
 import javax.management.StandardMBean;
 
-public class RegistrationStandardMBean /*extends StandardMBean*/ {
+public class RegistrationStandardMBean extends StandardMBean implements MBeanRegistration {
+    
+    // in java 6, StandardMBean implements MBeanRegistration, but it does not in java 5.
+
+    public <T> RegistrationStandardMBean(T implementation, Class<T> mbeanInterface) 
+        throws NotCompliantMBeanException {
+        super(implementation, mbeanInterface);
+    }
+
+    public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception {
+        //name = super.preRegister(server, name);
+        Object impl = getImplementation();
+        if (impl instanceof MBeanRegistration) {
+            return ((MBeanRegistration) impl).preRegister(server, name);
+        }
+        return name;
+    }
+
+    public void postRegister(Boolean registrationDone) {
+        //super.postRegister(registrationDone);
+        Object impl = getImplementation();
+        if (impl instanceof MBeanRegistration) {
+            ((MBeanRegistration) impl).postRegister(registrationDone);
+        }
+    }
+
+    public void preDeregister() throws Exception {
+        //super.preDeregister();
+        Object impl = getImplementation();
+        if (impl instanceof MBeanRegistration) {
+            ((MBeanRegistration) impl).preDeregister();
+        }
+    }
 
-//    public <T> RegistrationStandardMBean(T implementation, Class<T> mbeanInterface) 
-//        throws NotCompliantMBeanException {
-//        super(implementation, mbeanInterface);
-//    }
-//
-//    @Override
-//    public ObjectName preRegister(MBeanServer server, ObjectName name) throws Exception {
-//        name = super.preRegister(server, name);
-//        Object impl = getImplementation();
-//        if (impl instanceof MBeanRegistration) {
-//            return ((MBeanRegistration) impl).preRegister(server, name);
-//        }
-//        return name;
-//    }
-//
-//    @Override
-//    public void postRegister(Boolean registrationDone) {
-//        super.postRegister(registrationDone);
-//        Object impl = getImplementation();
-//        if (impl instanceof MBeanRegistration) {
-//            ((MBeanRegistration) impl).postRegister(registrationDone);
-//        }
-//    }
-//
-//    @Override
-//    public void preDeregister() throws Exception {
-//        super.preDeregister();
-//        Object impl = getImplementation();
-//        if (impl instanceof MBeanRegistration) {
-//            ((MBeanRegistration) impl).preDeregister();
-//        }
-//    }
-//
-//    @Override
-//    public void postDeregister() {
-//        super.postDeregister();
-//        Object impl = getImplementation();
-//        if (impl instanceof MBeanRegistration) {
-//            ((MBeanRegistration) impl).postDeregister();
-//        }
-//    }
+    public void postDeregister() {
+        //super.postDeregister();
+        Object impl = getImplementation();
+        if (impl instanceof MBeanRegistration) {
+            ((MBeanRegistration) impl).postDeregister();
+        }
+    }
     
 }

Modified: geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx/pom.xml?rev=886069&r1=886068&r2=886069&view=diff
==============================================================================
--- geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx/pom.xml (original)
+++ geronimo/sandbox/rex/org.apache.geronimo.blueprint.jmx/pom.xml Wed Dec  2 08:03:19 2009
@@ -3,12 +3,30 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.geronimo.blueprint</groupId>
-        <artifactId>org.apache.geronimo.blueprint.jmx-parent</artifactId>
+        <artifactId>jmx-parent</artifactId>
         <version>1.0-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.geronimo.blueprint.jmx</artifactId>
     <packaging>bundle</packaging>
-    <name>org.apache.geronimo.blueprint.jmx</name>
+    <name>Apache Geronimo Blueprint Jmx API</name>
 
+	<build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+						<Bundle-SymbolicName>org.apache.geronimo.blueprint.jmx</Bundle-SymbolicName>
+						<Bundle-Name>Apache Geronimo Blueprint Jmx API</Bundle-Name>
+						<Bundle-Description>Apache Geronimo Blueprint Jmx api.</Bundle-Description>
+						<Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
+						<Export-Package>org.apache.geronimo.blueprint.jmx</Export-Package>
+                     </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>

Modified: geronimo/sandbox/rex/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/rex/pom.xml?rev=886069&r1=886068&r2=886069&view=diff
==============================================================================
--- geronimo/sandbox/rex/pom.xml (original)
+++ geronimo/sandbox/rex/pom.xml Wed Dec  2 08:03:19 2009
@@ -2,25 +2,13 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.geronimo.blueprint</groupId>
-    <artifactId>org.apache.geronimo.blueprint.jmx-parent</artifactId>
+    <artifactId>jmx-parent</artifactId>
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
     <name>org.apache.geronimo.blueprint.jmx-parent</name>
   
-    <dependencies>
-    </dependencies>
-
     <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.felix</groupId>
-                    <artifactId>maven-bundle-plugin</artifactId>
-                    <version>2.0.1</version>
-                    <extensions>true</extensions>
-                </plugin>
-            </plugins>
-        </pluginManagement>
+    <pluginManagement>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -33,13 +21,17 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <version>2.0.1</version>
+                <extensions>true</extensions>
             </plugin>
-       </plugins>
+        </plugins>
+    </pluginManagement>
+    <plugins></plugins>
     </build>
 
     <modules>
-       <module>org.apache.geronimo.blueprint.jmx</module>
-       <module>org.apache.geronimo.blueprint.jmx.impl</module>
+        <module>org.apache.geronimo.blueprint.jmx</module>
+        <module>org.apache.geronimo.blueprint.jmx.impl</module>
     </modules>
 
 </project>