You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2006/12/26 18:05:01 UTC

svn commit: r490329 - in /incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server: TuscanyServer.java management/jmx/Agent.java management/jmx/RmiAgent.java

Author: meerajk
Date: Tue Dec 26 09:05:00 2006
New Revision: 490329

URL: http://svn.apache.org/viewvc?view=rev&rev=490329
Log:
Added support for different protocol adaptors.

Added:
    incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java   (with props)
Modified:
    incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/TuscanyServer.java
    incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java

Modified: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/TuscanyServer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/TuscanyServer.java?view=diff&rev=490329&r1=490328&r2=490329
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/TuscanyServer.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/TuscanyServer.java Tue Dec 26 09:05:00 2006
@@ -21,6 +21,7 @@
 import java.io.File;
 
 import org.apache.tuscany.standalone.server.management.jmx.Agent;
+import org.apache.tuscany.standalone.server.management.jmx.RmiAgent;
 
 /**
  * This class provides the commandline interface for starting the 
@@ -53,7 +54,7 @@
 public class TuscanyServer implements TuscanyServerMBean {
     
     /** Agent */
-    private Agent agent = Agent.getInstance();
+    private Agent agent = RmiAgent.getInstance();
     
     /**
      * 

Added: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java?view=auto&rev=490329
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java (added)
+++ incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java Tue Dec 26 09:05:00 2006
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+package org.apache.tuscany.standalone.server.management.jmx;
+
+/**
+ * Interface to a JMX agent.
+ * @version $Revision$ $Date$
+ *
+ */
+public interface Agent {
+
+    /**
+     * Registers a managed bean.
+     * @param instance Instance to be registered.
+     * @param name Object name of the instance.
+     * @throws ManagementException If unable to register the object.
+     */
+    public abstract void register(Object instance, String name) throws ManagementException;
+
+    /**
+     * Starts the JMX server.
+     * @throws ManagementException If unable to start the server.
+     *
+     */
+    public abstract void start() throws ManagementException;
+
+    /**
+     * Shuts down the JMX server.
+     * @throws ManagementException If unable to shutdown the server.
+     *
+     */
+    public abstract void shutdown() throws ManagementException;
+
+}

Propchange: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java?view=diff&rev=490329&r1=490328&r2=490329
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java Tue Dec 26 09:05:00 2006
@@ -20,25 +20,20 @@
 
 import java.io.IOException;
 import java.net.MalformedURLException;
+import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
 import java.rmi.server.UnicastRemoteObject;
-import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.ObjectName;
-import javax.management.remote.JMXConnectorServer;
-import javax.management.remote.JMXConnectorServerFactory;
 import javax.management.remote.JMXServiceURL;
 
 /**
- * Utility for starting the JMX server.
+ * Utility for starting the JMX server with an RMI agent.
  * 
  * @version $Revsion$ $Date$
  *
  */
-public class RmiAgent implements Agent {
+public class RmiAgent extends AbstractAgent {
 
     /** Administration port system property. */
     private static final String ADMIN_PORT_PROPERTY = "tuscany.adminPort";
@@ -48,30 +43,19 @@
 
     /** Instance */
     private static final Agent INSTANCE = new RmiAgent();
-
-    /** Root domain */
-    private static final String DOMAIN = "tuscany";
-
-    /** MBean server to use. */
-    private MBeanServer mBeanServer;
-    
-    /** RMI connector adaptor. */
-    private JMXConnectorServer connectorServer;
     
     /** RMI registry. */
     private Registry registry;
     
     /** Listen port */
     private int port = DEFAULT_ADMIN_PORT;
-    
-    /** Start flag. */
-    private AtomicBoolean started = new AtomicBoolean();
 
     /**
-     * Initialies the server.
+     * Gets the adaptor URL.
+     * @return Adaptor URL used by the agent.
      * @throws ManagementException If unable to start the agent.
      */
-    private RmiAgent() throws ManagementException {
+    protected JMXServiceURL getAdaptorUrl() throws ManagementException {
         
         try {
             
@@ -80,15 +64,11 @@
                 port = Integer.parseInt(portValue);
             }
             
-            mBeanServer = MBeanServerFactory.createMBeanServer(DOMAIN);
-            JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + port + "/server");
+            return new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" + port + "/server");
             
-            connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, mBeanServer);
             
         } catch (MalformedURLException ex) {
             throw new ManagementException(ex);
-        } catch (IOException ex) {
-            throw new ManagementException(ex);
         }
         
     }
@@ -102,53 +82,28 @@
         return INSTANCE;
     }
 
-    /* (non-Javadoc)
-     * @see org.apache.tuscany.standalone.server.management.jmx.Agent#register(java.lang.Object, java.lang.String)
-     */
-    public synchronized void register(Object instance, String name) throws ManagementException {
-        try {
-            mBeanServer.registerMBean(instance, new ObjectName("tuscany:name=TuscanyServer"));
-        } catch (Exception ex) {
-            throw new ManagementException(ex);
-        }
-    }
-
-    /* (non-Javadoc)
+    /**
      * @see org.apache.tuscany.standalone.server.management.jmx.Agent#start()
      */
     public void start() throws ManagementException {
 
         try {
-            
-            if(started.get()) {
-                throw new IllegalArgumentException("Agent already started");
-            }
-            
             registry = LocateRegistry.createRegistry(port);
-            connectorServer.start();
-            
-            started.set(true);
-            
-        } catch (MalformedURLException ex) {
-            throw new ManagementException(ex);
-        } catch (IOException ex) {
+            super.start();
+        } catch (RemoteException ex) {
             throw new ManagementException(ex);
         }
 
     }
 
-    /* (non-Javadoc)
+    /**
      * @see org.apache.tuscany.standalone.server.management.jmx.Agent#shutdown()
      */
     public void shutdown() throws ManagementException {
         
         try {
             
-            if(!started.get()) {
-                throw new IllegalArgumentException("Agent not started");
-            }
-            
-            connectorServer.stop();
+            super.shutdown();
             UnicastRemoteObject.unexportObject(registry, true);
             
         } catch (IOException ex) {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org