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 13:09:19 UTC

svn commit: r490290 - 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/ManagementException.java

Author: meerajk
Date: Tue Dec 26 04:09:18 2006
New Revision: 490290

URL: http://svn.apache.org/viewvc?view=rev&rev=490290
Log:
Intermediate checkin.

Added:
    incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/ManagementException.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/Agent.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=490290&r1=490289&r2=490290
==============================================================================
--- 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 04:09:18 2006
@@ -20,9 +20,7 @@
 
 import java.io.File;
 
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.ObjectName;
+import org.apache.tuscany.standalone.server.management.jmx.Agent;
 
 /**
  * This class provides the commandline interface for starting the 
@@ -60,11 +58,16 @@
     /** Default admin port. */
     private static final int DEFAULT_ADMIN_PORT = 1066;
     
+    /** Agent */
+    private Agent agent;
+    
     /**
      * Constructor initializes all the required classloaders.
      *
      */
-    private TuscanyServer() { 
+    private TuscanyServer(Agent agent) { 
+        
+        this.agent = agent;
         
         File installDirectory = DirectoryHelper.getInstallDirectory();
         File bootDirectory = DirectoryHelper.getBootDirectory(installDirectory);
@@ -77,23 +80,22 @@
      */
     public static void main(String[] args) throws Exception { 
         
-        TuscanyServer tuscanyServer = TuscanyServer.newInstance();
-        tuscanyServer.start();
+        String managementPort = System.getProperty(ADMIN_PORT_PROPERTY);
+        int port = DEFAULT_ADMIN_PORT;
+        if(managementPort != null) {
+            port = Integer.parseInt(managementPort);
+        }
         
-        MBeanServer mBeanServer = MBeanServerFactory.createMBeanServer("tuscany");
-        mBeanServer.registerMBean(tuscanyServer, new ObjectName("tuscany:name=TuscanyServer"));
+        Agent agent =  Agent.getInstance(port);
+        agent.start();
+        
+        TuscanyServer tuscanyServer = new TuscanyServer(agent);
+        agent.register(tuscanyServer, "tuscanyServer");
+        tuscanyServer.start();
 
     }
     
     /**
-     * Creates an instance of the server.
-     * @return An instance of the tuscany server.
-     */
-    protected static TuscanyServer newInstance() {
-        return new TuscanyServer();
-    }
-    
-    /**
      * Starts the server.
      *
      */
@@ -106,6 +108,7 @@
      *
      */
     public void shutdown() {
+        agent.shutdown();
         System.err.println("shutdown");
     }
 

Modified: 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=diff&rev=490290&r1=490289&r2=490290
==============================================================================
--- 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/Agent.java Tue Dec 26 04:09:18 2006
@@ -18,6 +18,10 @@
  */
 package org.apache.tuscany.standalone.server.management.jmx;
 
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+
 /**
  * Utility for starting the JMX server.
  * 
@@ -25,5 +29,65 @@
  *
  */
 public class Agent {
+    
+    /** Instance */
+    private static Agent INSTANCE = null;
+    
+    /** Root domain */
+    private static final String DOMAIN = "tuscany";
+    
+    /** MBean server to use. */
+    private MBeanServer mBeanServer;
+    
+    /**
+     * Initialies the server.
+     * @param port Management port.
+     * @throws ManagementException If unable to start the agent.
+     */
+    private Agent(int port) throws ManagementException {
+        mBeanServer = MBeanServerFactory.createMBeanServer(DOMAIN);
+    }
+    
+    /**
+     * Returns the singleton agent instance.
+     * @return Agent instance.
+     * @throws ManagementException If unable to start the agent.
+     */
+    public synchronized static Agent getInstance(int port) throws ManagementException {
+        if(INSTANCE == null) {
+            INSTANCE = new Agent(port);
+        }
+        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.
+     */
+    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);
+        }
+    }
+    
+    /**
+     * Starts the JMX server.
+     * @throws ManagementException If unable to start the server.
+     *
+     */
+    public void start() throws ManagementException {
+    }
+    
+    /**
+     * Shuts down the JMX server.
+     * @throws ManagementException If unable to shutdown the server.
+     *
+     */
+    public void shutdown() throws ManagementException {
+    }
 
 }

Added: incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/ManagementException.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/ManagementException.java?view=auto&rev=490290
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/ManagementException.java (added)
+++ incubator/tuscany/java/sca/runtime/standalone/server.start/src/main/java/org/apache/tuscany/standalone/server/management/jmx/ManagementException.java Tue Dec 26 04:09:18 2006
@@ -0,0 +1,37 @@
+/*
+ * 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;
+
+import org.apache.tuscany.api.TuscanyRuntimeException;
+
+/**
+ * @version $Revision$ $Date$
+ *
+ */
+@SuppressWarnings("serial")
+public class ManagementException extends TuscanyRuntimeException {
+
+    /**
+     * Initializes the root cause.
+     * @param th Root cause.
+     */
+    public ManagementException(Throwable th) {
+        super(th);
+    }
+}

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

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



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