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 17:47:48 UTC

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

Author: meerajk
Date: Tue Dec 26 08:47:47 2006
New Revision: 490327

URL: http://svn.apache.org/viewvc?view=rev&rev=490327
Log:
Extracted interface.

Added:
    incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java
      - copied, changed from r490325, incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java
Removed:
    incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java

Copied: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java (from r490325, 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/RmiAgent.java?view=diff&rev=490327&p1=incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.java&r1=490325&p2=incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/RmiAgent.java&r2=490327
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/Agent.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 08:47:47 2006
@@ -23,6 +23,7 @@
 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;
@@ -37,7 +38,7 @@
  * @version $Revsion$ $Date$
  *
  */
-public class Agent {
+public class RmiAgent implements Agent {
 
     /** Administration port system property. */
     private static final String ADMIN_PORT_PROPERTY = "tuscany.adminPort";
@@ -46,7 +47,7 @@
     private static final int DEFAULT_ADMIN_PORT = 1099;
 
     /** Instance */
-    private static final Agent INSTANCE = new Agent();
+    private static final Agent INSTANCE = new RmiAgent();
 
     /** Root domain */
     private static final String DOMAIN = "tuscany";
@@ -62,12 +63,15 @@
     
     /** Listen port */
     private int port = DEFAULT_ADMIN_PORT;
+    
+    /** Start flag. */
+    private AtomicBoolean started = new AtomicBoolean();
 
     /**
      * Initialies the server.
      * @throws ManagementException If unable to start the agent.
      */
-    private Agent() throws ManagementException {
+    private RmiAgent() throws ManagementException {
         
         try {
             
@@ -98,11 +102,8 @@
         return INSTANCE;
     }
 
-    /**
-     * 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.
+    /* (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 {
@@ -112,16 +113,22 @@
         }
     }
 
-    /**
-     * Starts the JMX server.
-     * @throws ManagementException If unable to start the server.
-     *
+    /* (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) {
@@ -130,18 +137,24 @@
 
     }
 
-    /**
-     * Shuts down the JMX server.
-     * @throws ManagementException If unable to shutdown the server.
-     *
+    /* (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();
             UnicastRemoteObject.unexportObject(registry, true);
+            
         } catch (IOException ex) {
             throw new ManagementException(ex);
         }
+        
     }
 
 }



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