[jboss-cvs] JBoss Messaging SVN: r3639 - in trunk: src/main/org/jboss/messaging/core/remoting/impl/mina and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Jan 28 22:15:27 EST 2008
Author: clebert.suconic at jboss.com
Date: 2008-01-28 22:15:27 -0500 (Mon, 28 Jan 2008)
New Revision: 3639
Added:
trunk/src/main/org/jboss/messaging/core/remoting/PacketFilter.java
trunk/tests/src/org/jboss/test/messaging/jms/interception/
trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptor.java
trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptorB.java
trunk/tests/src/org/jboss/test/messaging/jms/interception/PacketFilterTest.java
Modified:
trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
trunk/src/main/org/jboss/messaging/microcontainer/JBMBootstrapServer.java
trunk/tests/src/org/jboss/test/messaging/jms/JMSTest.java
trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeMBeanTest.java
trunk/tests/src/org/jboss/test/messaging/tools/ServerManagement.java
trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java
trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java
trunk/tests/src/org/jboss/test/messaging/util/JNDITest.java
Log:
JBMESSAGING-1225 - PacketFilter implementation
Modified: trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketDispatcher.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -9,6 +9,8 @@
import static org.jboss.messaging.core.remoting.Assert.assertValidID;
import static org.jboss.messaging.core.remoting.wireformat.AbstractPacket.NO_ID_SET;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -30,6 +32,7 @@
// Attributes ----------------------------------------------------
private Map<String, PacketHandler> handlers;
+ private List<PacketFilter> filters;
// Static --------------------------------------------------------
@@ -43,7 +46,15 @@
handlers = new ConcurrentHashMap<String, PacketHandler>();
}
+ public PacketDispatcher(List<PacketFilter> filters)
+ {
+ this();
+ this.filters = filters;
+ }
+
// Public --------------------------------------------------------
+
+
public void register(PacketHandler handler)
{
@@ -103,7 +114,10 @@
if (log.isTraceEnabled())
log.trace(handler + " handles " + packet);
- handler.handle(packet, sender);
+ if (fireFilter(packet, handler, sender))
+ {
+ handler.handle(packet, sender);
+ }
} else
{
log.error("Unhandled packet " + packet);
@@ -114,6 +128,33 @@
// Protected -----------------------------------------------------
+ protected boolean fireFilter(AbstractPacket packet, PacketHandler handler, PacketSender sender)
+ {
+ if (filters == null)
+ {
+ return true;
+ }
+ else
+ {
+ for (PacketFilter filter: filters)
+ {
+ try
+ {
+ if (!filter.filterMessage(packet, handler, sender))
+ {
+ log.info("Filter " + filter.getClass().getName() + " Cancelled packet " + packet);
+ return false;
+ }
+ }
+ catch (Exception ignored)
+ {
+ }
+ }
+
+ return true;
+ }
+ }
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
Added: trunk/src/main/org/jboss/messaging/core/remoting/PacketFilter.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/PacketFilter.java (rev 0)
+++ trunk/src/main/org/jboss/messaging/core/remoting/PacketFilter.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+package org.jboss.messaging.core.remoting;
+
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+
+/**
+ *
+ * This is class is a simple way to intercepting server calls on JBoss Messaging.
+ * Deploying it to the POJO Container (Micro Container) is then all you need to do.
+ *
+ * This gives you the option of deploying it on any package you like, as long as you define your Filter.
+ *
+ * Example of configuration file:
+ *
+ * <code>
+ <?xml version="1.0" encoding="UTF-8"?>
+ <deployment xmlns="urn:jboss:bean-deployer:2.0">
+ <bean name="MyInterceptor" class="a.b.MyClassImplementingPacketFilter"/>
+ </deployment>
+ </code>
+ *
+ * Note: This interface only captures messages from client2Server. If you need to capture server at client calls you should substitute the sender parameter by an inner class.
+ *
+ * @author clebert.suconic at jboss.com
+ */
+public interface PacketFilter
+{
+ /**
+ * If you need to intercept a return value, you could create your own implementation of PacketSender and recover the return value.
+ *
+ * @param packet
+ * @param handler
+ * @param sender
+ * @return false if the Packet transmission should be interrupted after this call
+ */
+ boolean filterMessage(AbstractPacket packet, PacketHandler handler, PacketSender sender);
+}
Property changes on: trunk/src/main/org/jboss/messaging/core/remoting/PacketFilter.java
___________________________________________________________________
Name: svn:keywords
+ Id LastChangedDate Author Revision
Modified: trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/src/main/org/jboss/messaging/core/remoting/impl/mina/MinaService.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -15,14 +15,19 @@
import java.net.InetSocketAddress;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeoutException;
import org.apache.mina.common.DefaultIoFilterChainBuilder;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
+import org.jboss.beans.metadata.api.annotations.Install;
+import org.jboss.beans.metadata.api.annotations.Uninstall;
import org.jboss.messaging.core.remoting.ConnectionExceptionListener;
import org.jboss.messaging.core.remoting.KeepAliveFactory;
import org.jboss.messaging.core.remoting.PacketDispatcher;
+import org.jboss.messaging.core.remoting.PacketFilter;
import org.jboss.messaging.core.remoting.ServerLocator;
import org.jboss.messaging.core.remoting.TransportType;
import org.jboss.messaging.util.Logger;
@@ -60,6 +65,8 @@
private ConnectionExceptionListener listener;
private KeepAliveFactory factory;
+
+ private List<PacketFilter> filters = new CopyOnWriteArrayList<PacketFilter>();
// Static --------------------------------------------------------
@@ -82,9 +89,22 @@
this.port = port;
this.parameters = new HashMap<String, String>();
this.factory = factory;
- this.dispatcher = new PacketDispatcher();
+ this.dispatcher = new PacketDispatcher(this.filters);
}
+
+
+ @Install
+ public void addFilter(PacketFilter filter)
+ {
+ this.filters.add(filter);
+ }
+ @Uninstall
+ public void removeFilter(PacketFilter filter)
+ {
+ this.filters.remove(filter);
+ }
+
public void setConnectionExceptionListener(ConnectionExceptionListener listener)
{
assert listener != null;
Modified: trunk/src/main/org/jboss/messaging/microcontainer/JBMBootstrapServer.java
===================================================================
--- trunk/src/main/org/jboss/messaging/microcontainer/JBMBootstrapServer.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/src/main/org/jboss/messaging/microcontainer/JBMBootstrapServer.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -21,6 +21,9 @@
*/
package org.jboss.messaging.microcontainer;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
import java.net.URL;
import java.util.List;
import java.util.ListIterator;
@@ -151,55 +154,28 @@
//System.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
this.args = args;
}
+
public void bootstrap() throws Throwable
{
super.bootstrap();
deployer = new BeanXMLDeployer(getKernel());
Runtime.getRuntime().addShutdownHook(new Shutdown());
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
for (String arg : args)
{
- URL url = cl.getResource(arg);
- if (url == null)
- {
- url = cl.getResource("META-INF/" + arg);
- }
- //try the system classpath
- if(url == null)
- {
- url = getClass().getClassLoader().getResource(arg);
- }
- if (url == null)
- {
- throw new RuntimeException("Unable to find resource:" + arg);
- }
- deploy(url);
+ deploy(arg);
}
deployer.validate();
}
+
/**
- * Deploy a url
- *
- * @param url the deployment url
- * @throws Throwable for any error
- */
- protected void deploy(URL url) throws Throwable
- {
- log.debug("Deploying " + url);
- KernelDeployment deployment = deployer.deploy(url);
- deployments.add(deployment);
- log.debug("Deployed " + url);
- }
-
- /**
* Undeploy a deployment
*
* @param deployment the deployment
*/
- protected void undeploy(KernelDeployment deployment)
+ public void undeploy(KernelDeployment deployment) throws Throwable
{
log.debug("Undeploying " + deployment.getName());
deployments.remove(deployment);
@@ -214,6 +190,62 @@
}
}
+ public KernelDeployment deploy(String arg) throws Throwable
+ {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ URL url = cl.getResource(arg);
+ if (url == null)
+ {
+ url = cl.getResource("META-INF/" + arg);
+ }
+ //try the system classpath
+ if(url == null)
+ {
+ url = getClass().getClassLoader().getResource(arg);
+ }
+ if (url == null)
+ {
+ throw new RuntimeException("Unable to find resource:" + arg);
+ }
+ return deploy(url);
+ }
+
+ /**
+ * Deploys a XML on the container
+ * @author clebert.suconic at jboss.com
+ */
+ public KernelDeployment deploy(String name, String xml) throws Throwable
+ {
+ ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
+ PrintStream printOut = new PrintStream(byteOut);
+ printOut.print(xml);
+ printOut.flush();
+ ByteArrayInputStream is = new ByteArrayInputStream(byteOut.toByteArray());
+
+ KernelDeployment deployment = deployer.deploy(name, is);
+
+ deployments.add(deployment);
+
+ return deployment;
+ }
+
+
+
+ /**
+ * Deploy a url
+ *
+ * @param url the deployment url
+ * @throws Throwable for any error
+ */
+ protected KernelDeployment deploy(URL url) throws Throwable
+ {
+ log.debug("Deploying " + url);
+ KernelDeployment deployment = deployer.deploy(url);
+ deployments.add(deployment);
+ log.debug("Deployed " + url);
+ return deployment;
+ }
+
public void shutDown()
{
log.info("Shutting down");
@@ -221,7 +253,7 @@
while (iterator.hasPrevious())
{
KernelDeployment deployment = (KernelDeployment) iterator.previous();
- undeploy(deployment);
+ try {undeploy(deployment);} catch (Throwable ignored){}
}
}
@@ -238,13 +270,7 @@
{
public void run()
{
- log.info("Shutting down");
- ListIterator iterator = deployments.listIterator(deployments.size());
- while (iterator.hasPrevious())
- {
- KernelDeployment deployment = (KernelDeployment) iterator.previous();
- undeploy(deployment);
- }
+ JBMBootstrapServer.this.shutDown();
}
}
}
Modified: trunk/tests/src/org/jboss/test/messaging/jms/JMSTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/JMSTest.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/jms/JMSTest.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -50,8 +50,6 @@
// Attributes ----------------------------------------------------
- InitialContext ic;
-
// Constructors --------------------------------------------------
public JMSTest(String name)
Modified: trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeMBeanTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeMBeanTest.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/jms/bridge/BridgeMBeanTest.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -642,7 +642,9 @@
config += "<attribute name=\"AddMessageIDInHeader\">" + addMessageIDInHeader + "</attribute>";
config += "</mbean>";
- return ServerManagement.getServer(server).deploy(config);
+ // TODO: this has to be fixed
+ // return ServerManagement.getServer(server).deploy(config);
+ return null;
}
private void checkBridged(InitialContext icSource, InitialContext icTarget,
@@ -731,7 +733,8 @@
log.info("Installing bridge: " + config);
- ServerManagement.getServer(0).deploy(config);
+ // TODO: this has to be fixed
+ // ServerManagement.getServer(0).deploy(config);
}
}
Added: trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptor.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptor.java (rev 0)
+++ trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptor.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+package org.jboss.test.messaging.jms.interception;
+
+import org.jboss.messaging.core.remoting.PacketFilter;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+import org.jboss.messaging.util.Logger;
+
+import EDU.oswego.cs.dl.util.concurrent.SynchronizedInt;
+
+public class DummyInterceptor implements PacketFilter
+{
+ protected Logger log = Logger.getLogger(DummyInterceptor.class);
+
+ static boolean status = true;
+ static SynchronizedInt syncCounter = new SynchronizedInt(0);
+
+ public static int getCounter()
+ {
+ return syncCounter.get();
+ }
+
+ public static void clearCounter()
+ {
+ syncCounter.set(0);
+ }
+
+ public boolean filterMessage(AbstractPacket packet, PacketHandler handler,
+ PacketSender sender)
+ {
+ syncCounter.add(1);
+ log.info("DummyFilter packet = " + packet + " handler = " + handler + " sender = " + sender);
+
+ return status;
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptor.java
___________________________________________________________________
Name: svn:keywords
+ Id LastChangedDate Author Revision
Added: trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptorB.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptorB.java (rev 0)
+++ trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptorB.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+package org.jboss.test.messaging.jms.interception;
+
+import org.jboss.messaging.core.remoting.PacketFilter;
+import org.jboss.messaging.core.remoting.PacketHandler;
+import org.jboss.messaging.core.remoting.PacketSender;
+import org.jboss.messaging.core.remoting.wireformat.AbstractPacket;
+import org.jboss.messaging.util.Logger;
+
+import EDU.oswego.cs.dl.util.concurrent.SynchronizedInt;
+
+public class DummyInterceptorB implements PacketFilter
+{
+
+ protected Logger log = Logger.getLogger(DummyInterceptorB.class);
+
+ static SynchronizedInt syncCounter = new SynchronizedInt(0);
+
+ public static int getCounter()
+ {
+ return syncCounter.get();
+ }
+
+ public static void clearCounter()
+ {
+ syncCounter.set(0);
+ }
+
+ public boolean filterMessage(AbstractPacket packet, PacketHandler handler,
+ PacketSender sender)
+ {
+ log.info("InterceptorB received " + packet);
+ syncCounter.add(1);
+ return true;
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/test/messaging/jms/interception/DummyInterceptorB.java
___________________________________________________________________
Name: svn:keywords
+ Id LastChangedDate Author Revision
Added: trunk/tests/src/org/jboss/test/messaging/jms/interception/PacketFilterTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/interception/PacketFilterTest.java (rev 0)
+++ trunk/tests/src/org/jboss/test/messaging/jms/interception/PacketFilterTest.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+
+package org.jboss.test.messaging.jms.interception;
+
+import javax.jms.Connection;
+import javax.jms.Session;
+
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.test.messaging.jms.JMSTestCase;
+
+public class PacketFilterTest extends JMSTestCase
+{
+
+
+ public PacketFilterTest(String name)
+ {
+ super(name);
+ // TODO Auto-generated constructor stub
+ }
+
+
+ public void testFilter() throws Throwable
+ {
+ KernelDeployment packetFilterDeployment = servers.get(0).deployXML("packetFilterDeployment", "<?xml version=\"1.0\" encoding=\"UTF-8\"?><deployment xmlns=\"urn:jboss:bean-deployer:2.0\"><bean name=\"DummyInterceptionTest\" class=\"org.jboss.test.messaging.jms.interception.DummyInterceptor\"/></deployment>");
+
+
+ DummyInterceptor.status=false;
+ try
+ {
+ Connection conn = cf.createConnection();
+ fail("Exception expected");
+ }
+ catch (Exception e)
+ {
+ }
+
+ DummyInterceptor.status=true;
+
+ Connection conn = cf.createConnection();
+ conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ conn.close();
+
+
+ assertEquals(0, DummyInterceptorB.getCounter());
+ assertTrue(DummyInterceptor.getCounter() > 0);
+
+ DummyInterceptor.clearCounter();
+ DummyInterceptorB.clearCounter();
+
+
+ KernelDeployment packetFilterDeploymentB = servers.get(0).deployXML("packetFilterDeploymentB", "<?xml version=\"1.0\" encoding=\"UTF-8\"?><deployment xmlns=\"urn:jboss:bean-deployer:2.0\"><bean name=\"DummyInterceptionTestB\" class=\"org.jboss.test.messaging.jms.interception.DummyInterceptorB\"/></deployment>");
+
+ conn = cf.createConnection();
+ conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ conn.close();
+
+ assertTrue(DummyInterceptorB.getCounter() > 0);
+ assertTrue(DummyInterceptor.getCounter() > 0);
+
+ DummyInterceptor.clearCounter();
+ DummyInterceptorB.clearCounter();
+
+ servers.get(0).undeploy(packetFilterDeployment);
+
+ conn = cf.createConnection();
+ conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ conn.close();
+
+ assertTrue(DummyInterceptorB.getCounter() > 0);
+ assertTrue(DummyInterceptor.getCounter() == 0);
+
+
+ log.info("Undeploying server");
+ servers.get(0).undeploy(packetFilterDeploymentB);
+ DummyInterceptor.clearCounter();
+ DummyInterceptorB.clearCounter();
+
+ conn = cf.createConnection();
+ conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ conn.close();
+
+ assertEquals(0, DummyInterceptor.getCounter());
+ assertEquals(0, DummyInterceptorB.getCounter());
+ }
+
+}
Property changes on: trunk/tests/src/org/jboss/test/messaging/jms/interception/PacketFilterTest.java
___________________________________________________________________
Name: svn:keywords
+ Id LastChangedDate Author Revision
Modified: trunk/tests/src/org/jboss/test/messaging/tools/ServerManagement.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/ServerManagement.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/tools/ServerManagement.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -36,6 +36,7 @@
import javax.management.ObjectName;
import javax.transaction.UserTransaction;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.messaging.util.Logger;
import org.jboss.test.messaging.tools.container.InVMInitialContextFactory;
import org.jboss.test.messaging.tools.container.LocalTestServer;
@@ -522,13 +523,13 @@
}
- public static ObjectName deploy(String mbeanConfiguration) throws Exception
+ public static KernelDeployment deploy(String resource) throws Throwable
{
- return servers.get(0).deploy(mbeanConfiguration);
+ return servers.get(0).deploy(resource);
}
- public static void undeploy(ObjectName on) throws Exception
+ public static void undeploy(KernelDeployment on) throws Throwable
{
servers.get(0).undeploy(on);
Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -21,7 +21,13 @@
*/
package org.jboss.test.messaging.tools.container;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
import java.io.File;
+import java.io.InputStreamReader;
+import java.io.PrintStream;
+import java.io.StringReader;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@@ -42,12 +48,14 @@
import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
+import org.apache.tools.ant.util.ReaderInputStream;
import org.jboss.jms.client.JBossConnectionFactory;
import org.jboss.jms.client.api.ClientConnectionFactory;
import org.jboss.jms.client.impl.ClientConnectionFactoryImpl;
import org.jboss.jms.destination.JBossQueue;
import org.jboss.jms.destination.JBossTopic;
import org.jboss.jms.server.security.Role;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.logging.Logger;
import org.jboss.messaging.core.Binding;
import org.jboss.messaging.core.Condition;
@@ -286,16 +294,64 @@
stop();
}
- public ObjectName deploy(String mbeanConfiguration) throws Exception
+ public KernelDeployment deploy(String resourceName) throws Exception
{
- /*Element mbeanElement = XMLUtil.stringToElement(mbeanConfiguration);
- MBeanConfigurationElement mbc = new MBeanConfigurationElement(mbeanElement);*/
- return null;// sc.registerAndConfigureService(mbc);
+ try
+ {
+ return bootstrap.deploy(resourceName);
+ }
+ catch (Throwable e)
+ {
+ // RMI can only throw Exception or its subclasses... This is case we ever implement Server as remote again
+ if (e instanceof Exception)
+ {
+ throw (Exception)e;
+ }
+ else
+ {
+ throw new Exception (e.toString(), e);
+ }
+ }
}
+
+ public KernelDeployment deployXML(String name, String xml) throws Exception
+ {
+ try
+ {
+ return bootstrap.deploy(name, xml);
+ }
+ catch (Throwable e)
+ {
+ // RMI can only throw Exception or its subclasses... This is case we ever implement Server as remote again
+ if (e instanceof Exception)
+ {
+ throw (Exception)e;
+ }
+ else
+ {
+ throw new Exception (e.toString(), e);
+ }
+ }
+ }
- public void undeploy(ObjectName on) throws Exception
+ public void undeploy(KernelDeployment deployment) throws Exception
{
- //sc.unregisterService(on);
+ try
+ {
+ bootstrap.undeploy(deployment);
+ }
+ catch (Throwable e)
+ {
+ // RMI can only throw Exception or its subclasses... This is case we ever implement Server as remote again
+ if (e instanceof Exception)
+ {
+ throw (Exception)e;
+ }
+ else
+ {
+ throw new Exception (e.toString(), e);
+ }
+ }
}
public Object getAttribute(ObjectName on, String attribute) throws Exception
Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -37,6 +37,7 @@
import javax.transaction.UserTransaction;
import org.jboss.jms.server.security.Role;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.messaging.core.MessagingServer;
import org.jboss.messaging.core.MessagingServerManagement;
import org.jboss.messaging.util.Logger;
@@ -182,16 +183,24 @@
//noop - nothing to be done
}
- public ObjectName deploy(String mbeanConfiguration) throws Exception
+ public KernelDeployment deploy(String mbeanConfiguration) throws Exception
{
return server.deploy(mbeanConfiguration);
}
- public void undeploy(ObjectName on) throws Exception
+ public void undeploy(KernelDeployment deployment) throws Exception
{
- server.undeploy(on);
+ server.undeploy(deployment);
}
+
+ public KernelDeployment deployXML(String name, String xml) throws Exception
+ {
+ return server.deployXML(name, xml);
+ }
+
+
+
public Object getAttribute(ObjectName on, String attribute) throws Exception
{
return server.getAttribute(on, attribute);
@@ -608,6 +617,5 @@
return new InitialContext(env);
}
-
// Inner classes -------------------------------------------------
}
Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -22,6 +22,7 @@
package org.jboss.test.messaging.tools.container;
import org.jboss.jms.server.security.Role;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
import org.jboss.messaging.core.MessagingServer;
import org.jboss.messaging.core.MessagingServerManagement;
@@ -73,15 +74,13 @@
*/
void ping() throws Exception;
- /**
- * Deploys and registers a service based on the MBean service descriptor element, specified as
- * a String. Supports XMBeans. The implementing class and the ObjectName are inferred from the
- * mbean element. If there are configuration attributed specified in the deployment descriptor,
- * they are applied to the service instance.
- */
- ObjectName deploy(String mbeanConfiguration) throws Exception;
+
+ /** Deploys a XML on the MicroContainer */
+ KernelDeployment deployXML(String name, String xml) throws Exception;
+
+ KernelDeployment deploy(String resource) throws Exception;
- void undeploy(ObjectName on) throws Exception;
+ void undeploy(KernelDeployment undeploy) throws Exception;
Object getAttribute(ObjectName on, String attribute) throws Exception;
Modified: trunk/tests/src/org/jboss/test/messaging/util/JNDITest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/util/JNDITest.java 2008-01-28 21:01:13 UTC (rev 3638)
+++ trunk/tests/src/org/jboss/test/messaging/util/JNDITest.java 2008-01-29 03:15:27 UTC (rev 3639)
@@ -41,7 +41,7 @@
// Public ---------------------------------------------------------------------------------------
- public void testInterServerJNDI() throws Exception
+ public void testInterServerJNDI() throws Throwable
{
// this test doesn't make sense in a colocated topology.
More information about the jboss-cvs-commits
mailing list