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