User: hiram
Date: 00/11/28 16:19:39
Added: src/java/org/spydermq/server SpyderMQService.java
SpyderMQServiceMBean.java
Log:
Chanaged the spyderMQ standalone server so that it is a stripped down jBoss app
server with
the spyderMQ service running. This will allow us to work on integrating with jBoss
better and
in spyderMQ can now use many of the base features of the app server such as Logging,
Naming,
JMX, Configuration, etc.
Revision Changes Path
1.1 spyderMQ/src/java/org/spydermq/server/SpyderMQService.java
Index: SpyderMQService.java
===================================================================
/*
* jBoss, the OpenSource EJB server
*
* Distributable under GPL license.
* See terms of license at gnu.org.
*/
package org.spydermq.server;
import java.io.File;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.File;
import java.net.URL;
import java.lang.reflect.Method;
import javax.management.*;
import org.jboss.logging.Logger;
import org.jboss.logging.Log;
import org.jboss.util.ServiceMBeanSupport;
/**
* JMX MBean implementation for SpyderMQ.
*
* @see SpyderMQ subproject
*
* @author Vincent Sheffer ([EMAIL PROTECTED])
* @author <a href="mailto:[EMAIL PROTECTED]">Juha Lindfors</a>
*
* @version $Revision: 1.1 $
*/
public class SpyderMQService
extends ServiceMBeanSupport
implements SpyderMQServiceMBean, MBeanRegistration
{
// Constants -----------------------------------------------------
// Attributes ----------------------------------------------------
MBeanServer mBeanServer = null;
Object spyderMQServer = null;
public SpyderMQService() {
}
// Public --------------------------------------------------------
public ObjectName getObjectName(MBeanServer server, ObjectName name)
throws javax.management.MalformedObjectNameException {
this.mBeanServer = server;
return new ObjectName(OBJECT_NAME);
}
public String getName() {
return "SpyderMQ";
}
public void startService()
throws Exception {
if (spyderMQServer == null) {
final Log log = this.log;
try {
log.log("Testing if SpyderMQ is present....");
try {
spyderMQServer =
Thread.currentThread().getContextClassLoader().loadClass("org.spydermq.server.StartServer").newInstance();
log.log("OK");
}catch(Exception e) {
log.log("failed");
log.log("SpyderMQ wasn't found:");
log.debug(e.getMessage());
return;
}
Class[] spyderMQArgsClasses = { MBeanServer.class };
Object[] spyderMQArgs = { mBeanServer };
Method startMethod = spyderMQServer.getClass().getMethod("start",
spyderMQArgsClasses);
Logger.log("Starting SpyderMQ...");
startMethod.invoke(spyderMQServer, spyderMQArgs);
}
catch (Exception e) {
log.error("SpyderMQ failed");
log.exception(e);
}
}
}
public void stopService() {
Class [] spyderMQArgsClasses = null;
Method stopMethod = null;
Object [] spyderMQArgs = null;
if (this.spyderMQServer != null) {
try {
spyderMQArgsClasses = new Class[0];
stopMethod = this.spyderMQServer.getClass().getMethod("stop",
spyderMQArgsClasses);
spyderMQArgs = new Object[0];
// [FIXME] jpl
// This causes some error messages on the console so
// disabled for now
//stopMethod.invoke(spyderMQServer, spyderMQArgs);
this.spyderMQServer = null;
} catch (Exception e) {
log.error("SpyderMQ failed");
log.exception(e);
}
}
}
}
1.1 spyderMQ/src/java/org/spydermq/server/SpyderMQServiceMBean.java
Index: SpyderMQServiceMBean.java
===================================================================
/*
* jBoss, the OpenSource EJB server
*
* Distributable under GPL license.
* See terms of license at gnu.org.
*/
package org.spydermq.server;
/**
* <description>
* MBean interface for the SpyderMQ JMX service.
*
* @see <related>
* @author Vincent Sheffer ([EMAIL PROTECTED])
* @version $Revision: 1.1 $
*/
public interface SpyderMQServiceMBean
extends org.jboss.util.ServiceMBean
{
// Constants -----------------------------------------------------
public static final String OBJECT_NAME = ":service=SpyderMQ";
// Public --------------------------------------------------------
}