[jboss-cvs] JBoss Messaging SVN: r7887 - in branches/Branch_1_4/integration: EAP5 and 16 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 2 00:01:30 EST 2009
Author: gaohoward
Date: 2009-11-02 00:01:30 -0500 (Mon, 02 Nov 2009)
New Revision: 7887
Added:
branches/Branch_1_4/integration/EAP5/
branches/Branch_1_4/integration/EAP5/.classpath
branches/Branch_1_4/integration/EAP5/etc/
branches/Branch_1_4/integration/EAP5/etc/META-INF/
branches/Branch_1_4/integration/EAP5/etc/VERSION-PRE-SUBSTITUTE
branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client-debug.xml
branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client.xml
branches/Branch_1_4/integration/EAP5/etc/aop-messaging-server.xml
branches/Branch_1_4/integration/EAP5/etc/default.mf
branches/Branch_1_4/integration/EAP5/etc/prepare-aop.xml
branches/Branch_1_4/integration/EAP5/etc/remoting/
branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-bisocket-service.xml
branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-http-service.xml
branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-servlet-service.xml
branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-sslbisocket-service.xml
branches/Branch_1_4/integration/EAP5/etc/remoting/servlet-invoker.war/
branches/Branch_1_4/integration/EAP5/etc/remoting/servlet-invoker.war/WEB-INF/
branches/Branch_1_4/integration/EAP5/etc/remoting/servlet-invoker.war/WEB-INF/web.xml
branches/Branch_1_4/integration/EAP5/etc/server/
branches/Branch_1_4/integration/EAP5/etc/server/default/
branches/Branch_1_4/integration/EAP5/etc/server/default/config/
branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-roles.properties
branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-users.properties
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/clustered-hsqldb-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/connection-factories-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/db2-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/destinations-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/hsqldb-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/jboss-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/messaging-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mssql-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mysql-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/ndb-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/null-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/oracle-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/postgresql-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/sybase-persistence-service.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/
branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bootstrap-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bridge-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/JDBCPersistenceManager-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/JMSUserManager-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/MessagingPostOffice-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/NullPersistenceManager-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/Queue-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/ServerPeer-xmbean.xml
branches/Branch_1_4/integration/EAP5/etc/xmdesc/Topic-xmbean.xml
branches/Branch_1_4/integration/EAP5/src/
branches/Branch_1_4/integration/EAP5/tests-src/
branches/Branch_1_4/integration/EAP5/tests-src/org/
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/LocalTestServer.java
branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/ServiceContainer.java
Log:
JBMESSAGING-1755
Added: branches/Branch_1_4/integration/EAP5/.classpath
===================================================================
--- branches/Branch_1_4/integration/EAP5/.classpath (rev 0)
+++ branches/Branch_1_4/integration/EAP5/.classpath 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="docs/examples/bridge/src"/>
+ <classpathentry kind="src" path="integration/AS5/tests-src"/>
+ <classpathentry kind="src" path="integration/AS5/src"/>
+ <classpathentry kind="src" path="docs/examples/common/src"/>
+ <classpathentry kind="src" path="docs/examples/distributed-queue/src"/>
+ <classpathentry kind="src" path="docs/examples/distributed-topic/src"/>
+ <classpathentry kind="src" path="docs/examples/ejb3mdb/src"/>
+ <classpathentry kind="src" path="docs/examples/http/src"/>
+ <classpathentry kind="src" path="docs/examples/mdb-failure/src"/>
+ <classpathentry kind="src" path="docs/examples/mdb/src"/>
+ <classpathentry kind="src" path="docs/examples/queue-failover/src"/>
+ <classpathentry kind="src" path="docs/examples/queue/src"/>
+ <classpathentry kind="src" path="docs/examples/secure-socket/src"/>
+ <classpathentry kind="src" path="docs/examples/stateless-clustered/src"/>
+ <classpathentry kind="src" path="docs/examples/stateless/src"/>
+ <classpathentry kind="src" path="docs/examples/topic/src"/>
+ <classpathentry kind="src" path="docs/examples/web-service/src"/>
+ <classpathentry kind="src" path="docs/examples/web-service/src-client"/>
+ <classpathentry kind="src" path="output/gen-parsers"/>
+ <classpathentry kind="src" path="src/main"/>
+ <classpathentry kind="src" path="tests/src"/>
+ <classpathentry kind="lib" path="lib/docbook-support/support/lib/avalon-framework-cvs-20020806.jar"/>
+ <classpathentry kind="lib" path="lib/docbook-support/support/lib/batik.jar"/>
+ <classpathentry kind="lib" path="lib/docbook-support/support/lib/fop.jar"/>
+ <classpathentry kind="lib" path="lib/docbook-support/support/lib/jai_codec.jar"/>
+ <classpathentry kind="lib" path="lib/docbook-support/support/lib/jai_core.jar"/>
+ <classpathentry kind="lib" path="lib/docbook-support/support/lib/rowan-0.1.jar"/>
+ <classpathentry kind="lib" path="output/lib/jboss-messaging.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-log4j/lib/log4j.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-logging/lib/commons-logging.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-modeler/lib/commons-modeler.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/catalina-manager.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/catalina-optional.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/catalina.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/jasper-compiler-jdt.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/jasper-compiler.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/jasper-runtime.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/naming-resources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/servlets-default.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/servlets-invoker.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/servlets-webdav.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/tomcat-ajp.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/tomcat-apr.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/tomcat-coyote.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/tomcat-http.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-tomcat/lib/tomcat-util.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-xerces/lib/xercesImpl.jar"/>
+ <classpathentry kind="lib" path="thirdparty/commons-el/lib/commons-el.jar"/>
+ <classpathentry kind="lib" path="thirdparty/dom4j/lib/dom4j.jar"/>
+ <classpathentry kind="lib" path="thirdparty/hsqldb/lib/hsqldb.jar"/>
+ <classpathentry kind="lib" path="thirdparty/javassist/lib/javassist.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jrockit-pluggable-instrumentor.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/pluggable-instrumentor.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/backport-concurrent/lib/jboss-backport-concurrent.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jbossretro-rt/lib/jbossretro-rt.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jbossts14/lib/jbossjta-integration.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jbossts14/lib/jbossjta.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jbossts14/lib/jbossts-common.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jbossxb/lib/jboss-xml-binding-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jbossxb/lib/jboss-xml-binding.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/profiler/jvmti/lib/jboss-profiler-jvmti.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/remoting/lib/jboss-remoting-src.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/remoting/lib/jboss-remoting.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/serialization/lib/jboss-serialization.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/test14/lib/jboss-test14.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-common-jdbc-wrapper.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-common.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-j2ee.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-jca.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-jmx.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-local-jdbc.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-system.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-transaction-client.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss-xml-binding.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jboss.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jbosscx-client.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jbosssx-client.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jms-ra.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jbossas/core-libs/lib/jnp-client.jar"/>
+ <classpathentry kind="lib" path="thirdparty/junit/lib/junit.jar"/>
+ <classpathentry kind="lib" path="thirdparty/oswego-concurrent/lib/concurrent.jar"/>
+ <classpathentry kind="lib" path="thirdparty/retrotranslator/lib/backport-util-concurrent.jar"/>
+ <classpathentry kind="lib" path="thirdparty/retrotranslator/lib/retrotranslator-runtime.jar"/>
+ <classpathentry kind="lib" path="thirdparty/retrotranslator/lib/retrotranslator-transformer.jar"/>
+ <classpathentry kind="lib" path="thirdparty/sun-javacc/lib/javacc.jar"/>
+ <classpathentry kind="lib" path="thirdparty/trove/lib/trove.jar"/>
+ <classpathentry kind="lib" path="thirdparty/wutka-dtdparser/lib/dtdparser.jar"/>
+ <classpathentry kind="lib" path="tools/lib/jbossbuild.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="lib" path="output/lib/jboss-messaging-client.jar"/>
+ <classpathentry kind="var" path="ANT_HOME/lib/ant-junit.jar"/>
+ <classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jgroups/lib/jgroups.jar" sourcepath="thirdparty/jgroups/lib/jgroups-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-log4j/lib/snmpTrapAppender.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-logging/lib/commons-logging-src.zip"/>
+ <classpathentry kind="lib" path="thirdparty/apache-xerces/lib/resolver.jar"/>
+ <classpathentry kind="lib" path="thirdparty/apache-xerces/lib/xml-apis.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-core/lib/jboss-common-core.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-core/lib/jboss-common-core-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-logging-jdk/lib/jboss-logging-jdk.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-logging-jdk/lib/jboss-logging-jdk-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-logging-log4j/lib/jboss-logging-log4j.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-logging-log4j/lib/jboss-logging-log4j-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-logging-spi/lib/jboss-logging-spi.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/common-logging-spi/lib/jboss-logging-spi-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jboss-mdr/lib/jboss-mdr.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/jboss-mdr/lib/jboss-mdr-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jgroups/lib/jgroups-sources.jar"/>
+ <classpathentry kind="lib" path="thirdparty/oswego-concurrent/lib/concurrent-src.zip"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-standalone-aspect-library-jdk50.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop-asintegration-core.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop-asintegration-jmx.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop-asintegration-mc.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop-client.jar"/>
+ <classpathentry kind="lib" path="thirdparty/jboss/aop/lib/jboss-aop.jar"/>
+ <classpathentry kind="output" path="tests/output/classes"/>
+</classpath>
Added: branches/Branch_1_4/integration/EAP5/etc/VERSION-PRE-SUBSTITUTE
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/VERSION-PRE-SUBSTITUTE (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/VERSION-PRE-SUBSTITUTE 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,11 @@
+#
+# This is an automatically generated file. DO NOT EDIT!
+#
+jboss.messaging.jmsVersion=@JMS_VERSION@
+jboss.messaging.jmsMajorVersion=@JMS_VERSION_MAJOR@
+jboss.messaging.jmsMinorVersion=@JMS_VERSION_MINOR@
+jboss.messaging.jmsProviderName=@MODULE_NAME@
+jboss.messaging.providerVersion=@MODULE_VERSION@
+jboss.messaging.providerMajorVersion=@MESSAGING_VERSION_MAJOR@
+jboss.messaging.providerMinorVersion=@MESSAGING_VERSION_MINOR@
+jboss.messaging.providerIncrementingVersion=@MESSAGING_VERSION_INCREMENTING@
Added: branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client-debug.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client-debug.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client-debug.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE aop PUBLIC
+ "-//JBoss//DTD JBOSS AOP 1.0//EN"
+ "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
+
+<aop>
+
+ <!-- This is a debug version of aop-messaging-client.xml to be used in testing and diagnostics.
+ It includes an ExceptionInterceptor and a ClientLogInterceptor for extra logging -->
+
+ <interceptor class="org.jboss.jms.client.container.ExceptionInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.jms.client.container.ClientLogInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.jms.client.container.ClosedInterceptor" scope="PER_INSTANCE"/>
+ <interceptor class="org.jboss.jms.client.container.FailoverValveInterceptor" scope="PER_INSTANCE"/>
+
+ <aspect class="org.jboss.jms.client.container.StateCreationAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.ConsumerAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.ProducerAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.SessionAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.BrowserAspect" scope="PER_INSTANCE"/>
+ <aspect class="org.jboss.jms.client.container.ConnectionAspect" scope="PER_INSTANCE"/>
+ <aspect class="org.jboss.jms.client.container.ClusteringAspect" scope="PER_INSTANCE"/>
+
+ <!--
+ Clustered ConnectionFactory Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate->$implementing{org.jboss.jms.delegate.ConnectionFactoryDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate->createConnectionDelegate(..))">
+ <advice name="handleCreateConnectionDelegate" aspect="org.jboss.jms.client.container.ClusteringAspect"/>
+ </bind>
+
+ <!--
+ (Non-clustered) ConnectionFactory Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate->$implementing{org.jboss.jms.delegate.ConnectionFactoryDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate->createConnectionDelegate(..))">
+ <advice name="handleCreateConnectionDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+
+ <!--
+ Connection Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->start())">
+ <advice name="handleStart" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->stop())">
+ <advice name="handleStop" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createConnectionConsumer(..))">
+ <advice name="handleCreateConnectionConsumer" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getClientID())">
+ <advice name="handleGetClientID" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->setClientID(..))">
+ <advice name="handleSetClientID" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getExceptionListener())">
+ <advice name="handleGetExceptionListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->setExceptionListener(..))">
+ <advice name="handleSetExceptionListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getConnectionMetaData())">
+ <advice name="handleGetConnectionMetaData" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createSessionDelegate(..))">
+ <advice name="handleCreateSessionDelegate" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->close())">
+ <advice name="handleClose" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->registerFailoverListener(..))">
+ <advice name="handleRegisterFailoverListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->unregisterFailoverListener(..))">
+ <advice name="handleUnregisterFailoverListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createSessionDelegate(..))">
+ <advice name="handleCreateSessionDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+
+ <!--
+ Session Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createMessage())">
+ <advice name="handleCreateMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBytesMessage())">
+ <advice name="handleCreateBytesMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createMapMessage())">
+ <advice name="handleCreateMapMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createObjectMessage(..))">
+ <advice name="handleCreateObjectMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createStreamMessage())">
+ <advice name="handleCreateStreamMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createTextMessage(..))">
+ <advice name="handleCreateTextMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->setMessageListener(..))">
+ <advice name="handleSetMessageListener" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getMessageListener())">
+ <advice name="handleGetMessageListener" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->addAsfMessage(..))">
+ <advice name="handleAddAsfMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->run())">
+ <advice name="handleRun" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getAcknowledgeMode())">
+ <advice name="handleGetAcknowledgeMode" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getTransacted())">
+ <advice name="handleGetTransacted" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getXAResource())">
+ <advice name="handleGetXAResource" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->preDeliver(..))">
+ <advice name="handlePreDeliver" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->postDeliver(..))">
+ <advice name="handlePostDeliver" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->acknowledgeAll(..))">
+ <advice name="handleAcknowledgeAll" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->recover())">
+ <advice name="handleRecover" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->redeliver(..))">
+ <advice name="handleRedeliver" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->closing(..))">
+ <advice name="handleClosing" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->close())">
+ <advice name="handleClose" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->commit())">
+ <advice name="handleCommit" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->rollback())">
+ <advice name="handleRollback" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->send(..))">
+ <advice name="handleSend" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createConsumerDelegate(..))">
+ <advice name="handleCreateConsumerDelegate" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createConsumerDelegate(..))">
+ <advice name="handleCreateConsumerDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createProducerDelegate(..))">
+ <advice name="handleCreateProducerDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBrowserDelegate(..))">
+ <advice name="handleCreateBrowserDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+
+ <!--
+ Consumer Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getMessageListener())">
+ <advice name="handleGetMessageListener" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->setMessageListener(..))">
+ <advice name="handleSetMessageListener" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->receive(..))">
+ <advice name="handleReceive" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->receiveNoWait())">
+ <advice name="handleReceiveNoWait" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->closing(..))">
+ <advice name="handleClosing" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getDestination())">
+ <advice name="handleGetDestination" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getNoLocal())">
+ <advice name="handleGetNoLocal" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getMessageSelector())">
+ <advice name="handleGetMessageSelector" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+
+
+ <!--
+ Producer Stack
+ -->
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->$implementing{org.jboss.jms.delegate.ProducerDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDeliveryMode())">
+ <advice name="handleGetDeliveryMode" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDestination())">
+ <advice name="handleGetDestination" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDisableMessageID())">
+ <advice name="handleGetDisableMessageID" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDisableMessageTimestamp())">
+ <advice name="handleGetDisableMessageTimestamp" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getPriority())">
+ <advice name="handleGetPriority" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getTimeToLive())">
+ <advice name="handleGetTimeToLive" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->send(org.jboss.jms.destination.JBossDestination, javax.jms.Message, int, int, long))">
+ <advice name="handleSend" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDeliveryMode(..))">
+ <advice name="handleSetDeliveryMode" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDestination(..))">
+ <advice name="handleSetDestination" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDisableMessageID(..))">
+ <advice name="handleSetDisableMessageID" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDisableMessageTimestamp(..))">
+ <advice name="handleSetDisableMessageTimestamp" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setPriority(..))">
+ <advice name="handleSetPriority" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setTimeToLive(..))">
+ <advice name="handleSetTimeToLive" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->closing(..))">
+ <advice name="handleClosing" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->close())">
+ <advice name="handleClose" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <!-- Producers never go to the server - so no need for a failover interceptor -->
+
+ <!--
+ Browser Stack
+ -->
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->nextMessage())">
+ <advice name="handleNextMessage" aspect="org.jboss.jms.client.container.BrowserAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->hasNextMessage())">
+ <advice name="handleHasNextMessage" aspect="org.jboss.jms.client.container.BrowserAspect"/>
+ </bind>
+</aop>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/aop-messaging-client.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE aop PUBLIC
+ "-//JBoss//DTD JBOSS AOP 1.0//EN"
+ "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
+
+<aop>
+ <interceptor class="org.jboss.jms.client.container.ClosedInterceptor" scope="PER_INSTANCE"/>
+ <interceptor class="org.jboss.jms.client.container.FailoverValveInterceptor" scope="PER_INSTANCE"/>
+
+ <aspect class="org.jboss.jms.client.container.StateCreationAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.ConsumerAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.ProducerAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.SessionAspect" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.client.container.BrowserAspect" scope="PER_INSTANCE"/>
+ <aspect class="org.jboss.jms.client.container.ConnectionAspect" scope="PER_INSTANCE"/>
+ <aspect class="org.jboss.jms.client.container.ClusteringAspect" scope="PER_INSTANCE"/>
+
+ <!--
+ Clustered ConnectionFactory Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate->createConnectionDelegate(..))">
+ <advice name="handleCreateConnectionDelegate" aspect="org.jboss.jms.client.container.ClusteringAspect"/>
+ </bind>
+
+ <!--
+ (Non-clustered) ConnectionFactory Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate->createConnectionDelegate(..))">
+ <advice name="handleCreateConnectionDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+
+ <!--
+ Connection Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->start())">
+ <advice name="handleStart" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->stop())">
+ <advice name="handleStop" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createConnectionConsumer(..))">
+ <advice name="handleCreateConnectionConsumer" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getClientID())">
+ <advice name="handleGetClientID" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->setClientID(..))">
+ <advice name="handleSetClientID" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getExceptionListener())">
+ <advice name="handleGetExceptionListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->setExceptionListener(..))">
+ <advice name="handleSetExceptionListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->getConnectionMetaData())">
+ <advice name="handleGetConnectionMetaData" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createSessionDelegate(..))">
+ <advice name="handleCreateSessionDelegate" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->close())">
+ <advice name="handleClose" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->registerFailoverListener(..))">
+ <advice name="handleRegisterFailoverListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->unregisterFailoverListener(..))">
+ <advice name="handleUnregisterFailoverListener" aspect="org.jboss.jms.client.container.ConnectionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createSessionDelegate(..))">
+ <advice name="handleCreateSessionDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+
+ <!--
+ Session Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createMessage())">
+ <advice name="handleCreateMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBytesMessage())">
+ <advice name="handleCreateBytesMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createMapMessage())">
+ <advice name="handleCreateMapMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createObjectMessage(..))">
+ <advice name="handleCreateObjectMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createStreamMessage())">
+ <advice name="handleCreateStreamMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createTextMessage(..))">
+ <advice name="handleCreateTextMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->setMessageListener(..))">
+ <advice name="handleSetMessageListener" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getMessageListener())">
+ <advice name="handleGetMessageListener" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->addAsfMessage(..))">
+ <advice name="handleAddAsfMessage" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->run())">
+ <advice name="handleRun" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getAcknowledgeMode())">
+ <advice name="handleGetAcknowledgeMode" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getTransacted())">
+ <advice name="handleGetTransacted" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->getXAResource())">
+ <advice name="handleGetXAResource" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->preDeliver(..))">
+ <advice name="handlePreDeliver" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->postDeliver(..))">
+ <advice name="handlePostDeliver" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->acknowledgeAll(..))">
+ <advice name="handleAcknowledgeAll" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->recover())">
+ <advice name="handleRecover" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->redeliver(..))">
+ <advice name="handleRedeliver" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->closing(..))">
+ <advice name="handleClosing" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->close())">
+ <advice name="handleClose" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->commit())">
+ <advice name="handleCommit" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->rollback())">
+ <advice name="handleRollback" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->send(..))">
+ <advice name="handleSend" aspect="org.jboss.jms.client.container.SessionAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createConsumerDelegate(..))">
+ <advice name="handleCreateConsumerDelegate" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createConsumerDelegate(..))">
+ <advice name="handleCreateConsumerDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createProducerDelegate(..))">
+ <advice name="handleCreateProducerDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBrowserDelegate(..))">
+ <advice name="handleCreateBrowserDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
+ </bind>
+
+ <!--
+ Consumer Stack
+ -->
+
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getMessageListener())">
+ <advice name="handleGetMessageListener" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->setMessageListener(..))">
+ <advice name="handleSetMessageListener" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->receive(..))">
+ <advice name="handleReceive" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->receiveNoWait())">
+ <advice name="handleReceiveNoWait" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->closing(..))">
+ <advice name="handleClosing" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getDestination())">
+ <advice name="handleGetDestination" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getNoLocal())">
+ <advice name="handleGetNoLocal" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getMessageSelector())">
+ <advice name="handleGetMessageSelector" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
+ </bind>
+
+
+ <!--
+ Producer Stack
+ -->
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->$implementing{org.jboss.jms.delegate.ProducerDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDeliveryMode())">
+ <advice name="handleGetDeliveryMode" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDestination())">
+ <advice name="handleGetDestination" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDisableMessageID())">
+ <advice name="handleGetDisableMessageID" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getDisableMessageTimestamp())">
+ <advice name="handleGetDisableMessageTimestamp" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getPriority())">
+ <advice name="handleGetPriority" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->getTimeToLive())">
+ <advice name="handleGetTimeToLive" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->send(..))">
+ <advice name="handleSend" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDeliveryMode(..))">
+ <advice name="handleSetDeliveryMode" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDestination(..))">
+ <advice name="handleSetDestination" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDisableMessageID(..))">
+ <advice name="handleSetDisableMessageID" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setDisableMessageTimestamp(..))">
+ <advice name="handleSetDisableMessageTimestamp" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setPriority(..))">
+ <advice name="handleSetPriority" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->setTimeToLive(..))">
+ <advice name="handleSetTimeToLive" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->closing(..))">
+ <advice name="handleClosing" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->close())">
+ <advice name="handleClose" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->enableOrderingGroup(..))">
+ <advice name="handleEnableOrderingGroup" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->disableOrderingGroup())">
+ <advice name="handleDisableOrderingGroup" aspect="org.jboss.jms.client.container.ProducerAspect"/>
+ </bind>
+ <!-- Producers never go to the server - so no need for a failover interceptor -->
+
+ <!--
+ Browser Stack
+ -->
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserDelegate}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->nextMessage())">
+ <advice name="handleNextMessage" aspect="org.jboss.jms.client.container.BrowserAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->hasNextMessage())">
+ <advice name="handleHasNextMessage" aspect="org.jboss.jms.client.container.BrowserAspect"/>
+ </bind>
+</aop>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/aop-messaging-server.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/aop-messaging-server.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/aop-messaging-server.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE aop PUBLIC
+ "-//JBoss//DTD JBOSS AOP 1.0//EN"
+ "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
+<aop>
+
+ <interceptor class="org.jboss.jms.server.container.ServerLogInterceptor" scope="PER_VM"/>
+ <interceptor class="org.jboss.jms.server.container.CachingInterceptor" scope="PER_VM"/>
+ <aspect class="org.jboss.jms.server.container.SecurityAspect" scope="PER_INSTANCE"/>
+
+ <!-- Connection -->
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.ConnectionAdvised->$implementing{org.jboss.jms.delegate.ConnectionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.server.container.ServerLogInterceptor"/>
+ </bind>
+
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.ConnectionAdvised->sendTransaction(..))">
+ <advice name="handleSendTransaction" aspect="org.jboss.jms.server.container.SecurityAspect"/>
+ </bind>
+
+ <!-- Session -->
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->$implementing{org.jboss.jms.delegate.SessionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.server.container.ServerLogInterceptor"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->createBrowserDelegate(..))">
+ <advice name="handleCreateBrowserDelegate" aspect="org.jboss.jms.server.container.SecurityAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->createConsumerDelegate(..))">
+ <advice name="handleCreateConsumerDelegate" aspect="org.jboss.jms.server.container.SecurityAspect"/>
+ </bind>
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->send(..))">
+ <advice name="handleSend" aspect="org.jboss.jms.server.container.SecurityAspect"/>
+ </bind>
+
+ <!-- Consumer -->
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.ConsumerAdvised->$implementing{org.jboss.jms.delegate.ConsumerEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.server.container.ServerLogInterceptor"/>
+ </bind>
+
+ <!-- Browser -->
+ <bind pointcut="execution(* org.jboss.jms.server.endpoint.advised.BrowserAdvised->$implementing{org.jboss.jms.delegate.BrowserEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.server.container.ServerLogInterceptor"/>
+ </bind>
+
+</aop>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/default.mf
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/default.mf (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/default.mf 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,10 @@
+Manifest-Version: 1.0
+Created-By: @JAVA_VM_VERSION@ (@JAVA_VM_VENDOR@)
+Specification-Title: @MODULE_NAME@
+Specification-Version: @MODULE_VERSION@
+Specification-Vendor: @MODULE_VENDOR@
+Implementation-Title: @MODULE_NAME@
+Implementation-URL: @MODULE_URL@
+Implementation-Version: @MODULE_IMPLEMENTATION_VERSION@
+Implementation-Vendor: @MODULE_VENDOR@
+Implementation-Vendor-Id: @MODULE_URL@
Added: branches/Branch_1_4/integration/EAP5/etc/prepare-aop.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/prepare-aop.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/prepare-aop.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE aop PUBLIC
+ "-//JBoss//DTD JBOSS AOP 1.0//EN"
+ "http://www.jboss.org/aop/dtd/jboss-aop_1_0.dtd">
+
+<aop>
+
+ <!-- Prepare the client stub classes - these provide the client side advice stack -->
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientClusteredConnectionFactoryDelegate->$implementing{org.jboss.jms.delegate.ConnectionFactoryDelegate}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate->$implementing{org.jboss.jms.delegate.ConnectionFactoryDelegate}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionDelegate}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionDelegate}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerDelegate}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->$implementing{org.jboss.jms.delegate.ProducerDelegate}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserDelegate}(..))"/>
+
+ <!-- Prepare the server delegate classes - these provide the server side advice stack -->
+
+ <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.ConnectionFactoryAdvised->$implementing{org.jboss.jms.server.endpoint.ConnectionFactoryInternalEndpoint}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.ConnectionAdvised->$implementing{org.jboss.jms.delegate.ConnectionEndpoint}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.SessionAdvised->$implementing{org.jboss.jms.server.endpoint.SessionInternalEndpoint}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.ConsumerAdvised->$implementing{org.jboss.jms.delegate.ConsumerEndpoint}(..))"/>
+ <prepare expr="execution(* org.jboss.jms.server.endpoint.advised.BrowserAdvised->$implementing{org.jboss.jms.delegate.BrowserEndpoint}(..))"/>
+
+</aop>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-bisocket-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-bisocket-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-bisocket-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Standard bisocket-based Remoting service deployment descriptor.
+
+ $Id: remoting-bisocket-service.xml 3981 2008-03-28 18:00:41Z timfox $
+ -->
+
+<server>
+
+ <!-- Standard bisocket connector - the bisocket transport only opens connection from client->server
+ so can be used with firewalls where only outgoing connections are allowed.
+ For examples of HTTP and SSL transports see docs/examples -->
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.messaging:service=Connector,transport=bisocket"
+ display-name="Bisocket Transport Connector">
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="bisocket">
+
+ <!-- There should be no reason to change these parameters - warning!
+ Changing them may stop JBoss Messaging working correctly -->
+ <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="dataType" isParam="true">jms</attribute>
+ <attribute name="socket.check_connection" isParam="true">false</attribute>
+ <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
+ <attribute name="serverBindPort">${jboss.messaging.connector.bisocket.port:4457}</attribute>
+ <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
+ <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
+ <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
+
+ <!-- the following parameters are useful when there is a firewall between client and server. Uncomment them if so.-->
+ <!--
+ <attribute name="numberOfCallRetries" isParam="true">5</attribute>
+ <attribute name="pingFrequency" isParam="true">30000</attribute>
+ <attribute name="pingWindowFactor" isParam="true">71582</attribute>
+ <attribute name="generalizeSocketException" isParam="true">true</attribute>
+ -->
+
+ <!-- Now remoting supports socket write timeout configuration. Uncomment this if you need it. -->
+ <!--
+ <attribute name="writeTimeout" isParam="true">30000</attribute>
+ -->
+
+ <!-- End immutable parameters -->
+
+ <attribute name="stopLeaseOnFailure" isParam="true">true</attribute>
+
+ <!-- Periodicity of client pings. Server window by default is twice this figure -->
+ <attribute name="clientLeasePeriod" isParam="true">10000</attribute>
+ <attribute name="validatorPingPeriod" isParam="true">10000</attribute>
+ <attribute name="validatorPingTimeout" isParam="true">5000</attribute>
+
+ <attribute name="failureDisconnectTimeout" isParam="true">0</attribute>
+ <attribute name="callbackErrorsAllowed">1</attribute>
+ <attribute name="registerCallbackListener">false</attribute>
+ <attribute name="useClientConnectionIdentity" isParam="true">true</attribute>
+
+ <attribute name="timeout" isParam="true">0</attribute>
+
+ <!-- Max Number of connections in client pool. This should be significantly higher than
+ the max number of sessions/consumers you expect -->
+ <attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>
+
+ <!-- The maximum time to wait before timing out on trying to write a message to socket for delivery -->
+ <attribute name="callbackTimeout">10000</attribute>
+
+ <!-- Use these parameters to specify values for binding and connecting control connections to
+ work with your firewall/NAT configuration
+ <attribute name="secondaryBindPort">xyz</attribute>
+ <attribute name="secondaryConnectPort">abc</attribute>
+ -->
+
+ </invoker>
+ <handlers>
+ <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-http-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-http-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-http-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ HTTP-based Remoting service deployment descriptor.
+
+ $Id: remoting-http-service.xml 3222 2007-10-20 12:13:57Z timfox $
+ -->
+
+<server>
+
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.messaging:service=Connector,transport=http"
+ display-name="HTTP Transport Connector">
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="http">
+ <!-- There should be no reason to change these parameters - warning!
+ Changing them may stop JBoss Messaging working correctly -->
+ <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="dataType" isParam="true">jms</attribute>
+ <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
+ <attribute name="serverBindPort">${jboss.messaging.connector.http.port:4458}</attribute>
+ <attribute name="callbackStore">org.jboss.remoting.callback.BlockingCallbackStore</attribute>
+ <!-- End immutable parameters -->
+
+ <!-- The period of sending pings to the server -->
+ <attribute name="clientLeasePeriod" isParam="true">10000</attribute>
+
+ <!-- Set this to true if you want the HTTP transport to block waiting for server->client traffic.
+ Or false if you want it to poll for new traffic periodically. Recommended is true -->
+ <attribute name="blockingMode" isParam="true">blocking</attribute>
+
+ <!-- Timeout for blocking. Only has relevance if blockingMode = true -->
+ <attribute name="blockingTimeout" isParam="true">30000</attribute>
+
+ <!-- The periodicity of polling. Only has relevance if blockingMode = false -->
+ <attribute name="callbackPollPeriod" isParam="true">10000</attribute>
+ </invoker>
+ <handlers>
+ <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-servlet-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-servlet-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-servlet-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Servlet-based Remoting service deployment descriptor.
+
+ -->
+
+<server>
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.remoting:service=Connector,transport=servlet,target=jms"
+ display-name="JMS Servlet transport Connector">
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="servlet">
+ <!-- There should be no reason to change these parameters - warning!
+ Changing them may stop JBoss Messaging working correctly -->
+ <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="dataType" isParam="true">jms</attribute>
+ <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
+ <attribute name="serverBindPort">8080</attribute>
+ <attribute name="numberOfCallRetries" isParam="true">1</attribute>
+ <attribute name="pingFrequency" isParam="true">214748364</attribute>
+ <attribute name="pingWindowFactor" isParam="true">10</attribute>
+ <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
+ <attribute name="callbackStore">org.jboss.remoting.callback.BlockingCallbackStore</attribute>
+ <attribute name="unwrapSingletonArrays">true</attribute>
+ <attribute name="path">servlet-invoker/JmsServerInvokerServlet</attribute>
+ <attribute name="return-exception">true</attribute>
+ <attribute name="createUniqueObjectName">true</attribute>
+ <attribute name="useAllParams" isParam="true">true</attribute>
+ <!-- End immutable parameters -->
+
+ <attribute name="stopLeaseOnFailure" isParam="true">true</attribute>
+
+ <!-- Periodicity of client pings. Server window by default is twice this figure -->
+ <attribute name="clientLeasePeriod" isParam="true">10000</attribute>
+ <attribute name="validatorPingPeriod" isParam="true">10000</attribute>
+ <attribute name="validatorPingTimeout" isParam="true">5000</attribute>
+
+ <attribute name="failureDisconnectTimeout" isParam="true">0</attribute>
+ <attribute name="callbackErrorsAllowed">1</attribute>
+ <attribute name="registerCallbackListener">false</attribute>
+ <attribute name="useClientConnectionIdentity" isParam="true">true</attribute>
+
+ <attribute name="timeout" isParam="true">0</attribute>
+
+ <!-- Max Number of connections in client pool. This should be significantly higher than
+ the max number of sessions/consumers you expect -->
+ <attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>
+
+ <!-- Set this to true if you want the servlet transport to block waiting for server->client traffic.
+ Or false if you want it to poll for new traffic periodically. Recommended is blocking -->
+ <attribute name="blockingMode" isParam="true">blocking</attribute>
+
+ <!-- Timeout for blocking. Only has relevance if blockingMode = blocking -->
+ <attribute name="blockingTimeout" isParam="true">30000</attribute>
+
+ <!-- The periodicity of polling. Only has relevance if blockingMode = nonblocking -->
+ <!--attribute name="callbackPollPeriod" isParam="true">10000</attribute-->
+ </invoker>
+ <handlers>
+ <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-sslbisocket-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-sslbisocket-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/remoting/remoting-sslbisocket-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ The deployment descriptor for the secure socket factory
+ service and secure connector.
+
+ $Id: remoting-sslbisocket-service.xml 3981 2008-03-28 18:00:41Z timfox $
+ -->
+
+<server>
+
+ <mbean code="org.jboss.remoting.transport.Connector"
+ name="jboss.messaging:service=Connector,transport=sslbisocket"
+ display-name="SSL Bisocket Transport Connector">
+ <attribute name="Configuration">
+ <config>
+ <invoker transport="sslbisocket">
+
+ <!-- There should be no reason to change these parameters - warning!
+ Changing them may stop JBoss Messaging working correctly -->
+ <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute>
+ <attribute name="dataType" isParam="true">jms</attribute>
+ <attribute name="socket.check_connection" isParam="true">false</attribute>
+ <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
+ <attribute name="serverBindPort">4459</attribute>
+ <attribute name="clientSocketClass" isParam="true">org.jboss.jms.client.remoting.ClientSocketWrapper</attribute>
+ <attribute name="serverSocketClass">org.jboss.jms.server.remoting.ServerSocketWrapper</attribute>
+ <attribute name="serverSocketFactory">jboss.messaging:service=ServerSocketFactory,type=SSL</attribute>
+ <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute>
+ <!-- the following parameters are useful when there is a firewall between client and server. Uncomment them if so.-->
+ <!--
+ <attribute name="numberOfCallRetries" isParam="true">5</attribute>
+ <attribute name="pingFrequency" isParam="true">30000</attribute>
+ <attribute name="pingWindowFactor" isParam="true">71582</attribute>
+ <attribute name="generalizeSocketException" isParam="true">true</attribute>
+ -->
+
+ <!-- Now remoting supports socket write timeout configuration. Uncomment this if you need it. -->
+ <!--
+ <attribute name="writeTimeout" isParam="true">30000</attribute>
+ -->
+
+ <!-- End immutable parameters -->
+
+ <attribute name="stopLeaseOnFailure" isParam="true">true</attribute>
+
+ <!-- Periodicity of client pings. Server window by default is twice this figure -->
+ <attribute name="clientLeasePeriod" isParam="true">10000</attribute>
+ <attribute name="validatorPingPeriod" isParam="true">10000</attribute>
+ <attribute name="validatorPingTimeout" isParam="true">5000</attribute>
+
+ <attribute name="failureDisconnectTimeout" isParam="true">0</attribute>
+ <attribute name="callbackErrorsAllowed">1</attribute>
+ <attribute name="registerCallbackListener">false</attribute>
+ <attribute name="useClientConnectionIdentity" isParam="true">true</attribute>
+
+ <attribute name="timeout" isParam="true">0</attribute>
+
+
+ <!-- Max Number of connections in client pool. This should be significantly higher than
+ the max number of sessions/consumers you expect -->
+ <attribute name="JBM_clientMaxPoolSize" isParam="true">200</attribute>
+
+ <!-- The maximum time to wait before timing out on trying to write a message to socket for delivery -->
+ <attribute name="callbackTimeout">10000</attribute>
+
+ <!-- Use these parameters to specify values for binding and connecting control connections to
+ work with your firewall/NAT configuration
+ <attribute name="secondaryBindPort">xyz</attribute>
+ <attribute name="secondaryConnectPort">abc</attribute>
+ -->
+
+ </invoker>
+ <handlers>
+ <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler>
+ </handlers>
+ </config>
+ </attribute>
+ <depends>jboss.messaging:service=ServerSocketFactory,type=SSL</depends>
+ </mbean>
+
+ <!-- This section is for custom (SSL) server socket factory -->
+
+ <!--
+ The server socket factory mbean to be used as attribute to socket invoker (see
+ serverSocketFactory attribute above for where it is used). This service provides the exact
+ same API as the ServerSocketFactory, so can be set as an attribute of that type on any
+ MBean requiring an ServerSocketFactory.
+ -->
+ <mbean code="org.jboss.remoting.security.SSLServerSocketFactoryService"
+ name="jboss.messaging:service=ServerSocketFactory,type=SSL"
+ display-name="SSL Server Socket Factory">
+ <depends optional-attribute-name="SSLSocketBuilder"
+ proxy-type="attribute">jboss.messaging:service=SocketBuilder,type=SSL</depends>
+ </mbean>
+
+ <!--
+ This service is used to build the SSL Server socket factory. This will be where all the
+ store/trust information will be set. If do not need to make any custom configurations,
+ no extra attributes need to be set for the SSLSocketBuilder and just need to set the
+ javax.net.ssl.keyStore and javax.net.ssl.keyStorePassword system properties.
+
+ This can be done by just adding something like the following to the run script for JBoss
+ (this one is for run.bat):
+ set JAVA_OPTS=-Djavax.net.ssl.keyStore=.keystore -Djavax.net.ssl.keyStorePassword=opensource %JAVA_OPTS%
+
+ Otherwise, if want to customize the attributes for SSLSocketBuilder, will need to uncomment
+ them below.
+ -->
+ <mbean code="org.jboss.remoting.security.SSLSocketBuilder"
+ name="jboss.messaging:service=SocketBuilder,type=SSL"
+ display-name="SSL Server Socket Factory Builder">
+ <!--
+ IMPORTANT - If making ANY customizations, this MUST be set to false.
+ Otherwise, will used default settings and the following attributes will be ignored.
+ -->
+ <attribute name="UseSSLServerSocketFactory">false</attribute>
+ <!-- This is the url string to the key store to use -->
+ <attribute name="KeyStoreURL">${jboss.server.home.url}/deploy/messaging/messaging.keystore</attribute>
+ <!-- The password for the key store -->
+ <attribute name="KeyStorePassword">secureexample</attribute>
+ <!-- The password for the keys (will use KeystorePassword if this is not set explicitly. -->
+ <attribute name="KeyPassword">secureexample</attribute>
+ <!-- The protocol for the SSLContext. Default is TLS. -->
+ <attribute name="SecureSocketProtocol">TLS</attribute>
+ <!-- The algorithm for the key manager factory. Default is SunX509. -->
+ <attribute name="KeyStoreAlgorithm">SunX509</attribute>
+ <!--
+ The type to be used for the key store.
+ Defaults to JKS. Some acceptable values are JKS (Java Keystore - Sun's keystore format),
+ JCEKS (Java Cryptography Extension keystore - More secure version of JKS), and
+ PKCS12 (Public-Key Cryptography Standards #12 keystore - RSA's Personal Information
+ Exchange Syntax Standard). These are not case sensitive.
+ -->
+ <attribute name="KeyStoreType">JKS</attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/remoting/servlet-invoker.war/WEB-INF/web.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/remoting/servlet-invoker.war/WEB-INF/web.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/remoting/servlet-invoker.war/WEB-INF/web.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!-- The the JBossRemoting server invoker servlet web.xml descriptor
+$Id: web.xml,v 1.2 2006/07/17 03:44:00 telrod Exp $
+-->
+<web-app>
+
+ <servlet>
+ <servlet-name>JmsServerInvokerServlet</servlet-name>
+ <description>The JmsServerInvokerServlet receives JMS requests via HTTP
+ protocol from within a web container and passes it onto the
+ ServletServerInvoker for processing.
+ </description>
+ <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class>
+ <init-param>
+ <param-name>locatorUrl</param-name>
+ <param-value>
+ <![CDATA[servlet://${jboss.bind.address}:8080/servlet-invoker/JmsServerInvokerServlet/?dataType=jms&JBM_clientMaxPoolSize=200&failureDisconnectTimeout=0&marshaller=org.jboss.jms.wireformat.JMSWireFormat&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&pingFrequency=214748364&pingWindowFactor=10&stopLeaseOnFailure=true&clientLeasePeriod=10000&validatorPingPeriod=10000&validatorPingTimeout=5000&timeout=0&blockingMode=blocking&blockingTimeout=30000&useAllParams=true&useClientConnectionIdentity=true]]>
+ </param-value>
+ <description>The servlet server invoker</description>
+ </init-param>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>JmsServerInvokerServlet</servlet-name>
+ <url-pattern>/JmsServerInvokerServlet/*</url-pattern>
+ </servlet-mapping>
+
+</web-app>
+
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-roles.properties
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-roles.properties (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-roles.properties 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,4 @@
+#
+# user=role1,role2,...
+#
+guest=guest
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-users.properties
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-users.properties (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/config/messaging-users.properties 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,4 @@
+#
+# user=password
+#
+guest=guest
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/clustered-hsqldb-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/clustered-hsqldb-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/clustered-hsqldb-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Hypersonic persistence deployment descriptor.
+
+ DO NOT USE HYPERSONIC IN PRODUCTION or in a clustered environment- Hypersonic does not have transaction isolation
+
+ This clustered example is provided for test purposes and integration with JBAS only. Do not use it in real situations!
+
+ $Id: clustered-hsqldb-persistence-service.xml 4698 2008-07-21 15:29:14Z jhowell at redhat.com $
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then will use JDBC batch updates -->
+
+ <attribute name="UsingBatchUpdates">false</attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- This config was not meant to be used in production. For a clustered setup you need a shared database -->
+
+ <attribute name="Clustered">true</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">5000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">50000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <depends optional-attribute-name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</depends>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/connection-factories-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/connection-factories-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/connection-factories-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Messaging Connection Factories deployment descriptor.
+
+ $Id: connection-factories-service.xml 3332 2007-11-15 09:32:43Z timfox $
+ -->
+
+<server>
+
+ <!-- The default connection factory does not support automatic failover or load balancing-
+ this is so we can maintain compatiblity with applications written for JBoss MQ which use this
+ connection factory.
+ -->
+ <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+ name="jboss.messaging.connectionfactory:service=ConnectionFactory"
+ xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+
+ <attribute name="JNDIBindings">
+ <bindings>
+ <binding>/ConnectionFactory</binding>
+ <binding>/XAConnectionFactory</binding>
+ <binding>java:/ConnectionFactory</binding>
+ <binding>java:/XAConnectionFactory</binding>
+ </bindings>
+ </attribute>
+ </mbean>
+
+ <!-- A clustered connection factory that supports automatic failover and load balancing of created
+ connections.
+ This factory is not suitable to be used by MDBs.
+ -->
+ <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+ name="jboss.messaging.connectionfactory:service=ClusteredConnectionFactory"
+ xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+
+ <attribute name="JNDIBindings">
+ <bindings>
+ <binding>/ClusteredConnectionFactory</binding>
+ <binding>/ClusteredXAConnectionFactory</binding>
+ <binding>java:/ClusteredConnectionFactory</binding>
+ <binding>java:/ClusteredXAConnectionFactory</binding>
+ </bindings>
+ </attribute>
+
+ <attribute name="SupportsFailover">true</attribute>
+ <attribute name="SupportsLoadBalancing">true</attribute>
+ </mbean>
+
+ <!-- A connection factory with no JNDI bindings that is used in clustering to create the connections that
+ pull messages from one node to another
+ -->
+ <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+ name="jboss.messaging.connectionfactory:service=ClusterPullConnectionFactory"
+ xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=bisocket</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <depends>jboss.messaging.connectionfactory:service=ClusteredConnectionFactory</depends>
+ <attribute name="SupportsFailover">false</attribute>
+ <attribute name="SupportsLoadBalancing">false</attribute>
+ </mbean>
+
+ <!-- An example connection factory with all attributes shown
+
+ <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory"
+ name="jboss.messaging.connectionfactory:service=MyExampleConnectionFactory"
+ xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml">
+
+ <constructor>
+
+ <!- - You can specify the default Client ID to use for connections created using this factory - ->
+
+ <arg type="java.lang.String" value="MyClientID"/>
+
+ </constructor>
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <!- - The transport to use - can be bisocket, sslbisocket or http - ->
+
+ <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=http</depends>
+
+ <depends>jboss.messaging:service=PostOffice</depends>
+
+ <!- - PrefetchSize determines the approximate maximum number of messages the client consumer will buffer locally - ->
+
+ <attribute name="PrefetchSize">150</attribute>
+
+ <!- - Paging params to be used for temporary queues - ->
+
+ <attribute name="DefaultTempQueueFullSize">200000</attribute>
+
+ <attribute name="DefaultTempQueuePageSizeSize">2000</attribute>
+
+ <attribute name="DefaultTempQueueDownCacheSize">2000</attribute>
+
+ <!- - The batch size to use when using the DUPS_OK_ACKNOWLEDGE acknowledgement mode - ->
+
+ <attribute name="DupsOKBatchSize">5000</attribute>
+
+ <!- - Does this connection factory support automatic failover? - ->
+
+ <attribute name="SupportsFailover">false</attribute>
+
+ <!- - Does this connection factory support automatic client side load balancing? - ->
+
+ <attribute name="SupportsLoadBalancing">false</attribute>
+
+ <!- - The class name of the factory used to create the load balancing policy to use on the client side - ->
+
+ <attribute name="LoadBalancingFactory">org.jboss.jms.client.plugin.RoundRobinLoadBalancingFactory</attribute>
+
+ <!- - Whether we should be strict TCK compliant, i.e. how we deal with foreign messages, defaults to false- ->
+
+ <attribute name="StrictTck">true</attribute>
+
+ <!- - Should acknowledgements be sent asynchronously? - ->
+
+ <attribute name="SendAcksAsync">false</attribute>
+
+ <!- - Disable JBoss Remoting Connector sanity checks - There is rarely a good reason to set this to true - ->
+
+ <attribute name="DisableRemotingChecks">false</attribute>
+
+ <!- - The connection factory will be bound in the following places in JNDI - ->
+
+ <attribute name="JNDIBindings">
+
+ <bindings>
+
+ <binding>/acme/MyExampleConnectionFactory</binding>
+
+ <binding>/acme/MyExampleConnectionFactoryDupe</binding>
+
+ <binding>java:/xyz/CF1</binding>
+
+ <binding>java:/connectionfactories/acme/connection_factory</binding>
+
+ </bindings>
+
+ </attribute>
+
+ </mbean>
+
+ -->
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/db2-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/db2-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/db2-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ DB2 persistence deployment descriptor.
+
+ Tested with DB2 v9.1
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <attribute name="SupportsBlobOnSelect">false</attribute>
+
+ <attribute name="SupportsSetNullOnBlobs">false</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUAL_DUMMY INTEGER NOT NULL, PRIMARY KEY (DUAL_DUMMY))
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID DECIMAL(19, 0) NOT NULL, CHANNEL_ID DECIMAL(19, 0) NOT NULL, TRANSACTION_ID DECIMAL(19, 0), STATE CHAR(1), ORD DECIMAL(19, 0), PAGE_ORD DECIMAL(19, 0) , DELIVERY_COUNT INTEGER, SCHED_DELIVERY DECIMAL(19, 0), PRIMARY KEY(MESSAGE_ID, CHANNEL_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID DECIMAL(19, 0) NOT NULL, RELIABLE CHAR(1), EXPIRATION DECIMAL(19, 0), TIMESTAMP DECIMAL(19, 0), PRIORITY SMALLINT, TYPE SMALLINT, HEADERS BLOB, PAYLOAD BLOB, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID DECIMAL(19, 0) NOT NULL, BRANCH_QUAL BLOB(254), FORMAT_ID INTEGER, GLOBAL_TXID BLOB(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255) NOT NULL, NEXT_ID DECIMAL(19, 0), PRIMARY KEY(NAME))
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER NOT NULL, CNTR INTEGER NOT NULL, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR))
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT (CAST(? AS DECIMAL(19,0))), (CAST(? AS CHAR)), (CAST(? AS DECIMAL(19,0))), (CAST(? AS DECIMAL(19,0))), (CAST(? AS DECIMAL(19,0))), (CAST(? AS DECIMAL(19,0))) FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT (CAST(? AS DECIMAL)), (CAST(? AS CHAR)), (CAST(? AS DECIMAL)), (CAST(? AS DECIMAL)), (CAST(? AS DECIMAL)), (CAST(? AS DECIMAL)), (CAST(? AS DECIMAL)), (CAST(? AS DECIMAL)) FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER HOLDLOCK WHERE NAME=?
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255) NOT NULL, NODE_ID SMALLINT NOT NULL, QUEUE_NAME VARCHAR(255) NOT NULL, COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID INTEGER, CLSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME))
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is non clustered. If you want a clustered post office then set to true -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/destinations-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/destinations-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/destinations-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Messaging Destinations deployment descriptor.
+
+ $Id: destinations-service.xml 1930 2007-01-09 18:16:04Z timfox $
+ -->
+
+<server>
+
+ <!--
+ The Default Dead Letter Queue. This destination is a dependency of an EJB MDB container.
+ -->
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=DLQ"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <!--
+ The Default Expiry Queue.
+ -->
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=ExpiryQueue"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <!--
+ Example destinations.
+ -->
+
+ <mbean code="org.jboss.jms.server.destination.TopicService"
+ name="jboss.messaging.destination:service=Topic,name=testTopic"
+ xmbean-dd="xmdesc/Topic-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="SecurityConfig">
+ <security>
+ <role name="guest" read="true" write="true"/>
+ <role name="publisher" read="true" write="true" create="false"/>
+ <role name="durpublisher" read="true" write="true" create="true"/>
+ </security>
+ </attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.TopicService"
+ name="jboss.messaging.destination:service=Topic,name=securedTopic"
+ xmbean-dd="xmdesc/Topic-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="SecurityConfig">
+ <security>
+ <role name="publisher" read="true" write="true" create="false"/>
+ </security>
+ </attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.TopicService"
+ name="jboss.messaging.destination:service=Topic,name=testDurableTopic"
+ xmbean-dd="xmdesc/Topic-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="SecurityConfig">
+ <security>
+ <role name="guest" read="true" write="true"/>
+ <role name="publisher" read="true" write="true" create="false"/>
+ <role name="durpublisher" read="true" write="true" create="true"/>
+ </security>
+ </attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=testQueue"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="SecurityConfig">
+ <security>
+ <role name="guest" read="true" write="true"/>
+ <role name="publisher" read="true" write="true" create="false"/>
+ <role name="noacc" read="false" write="false" create="false"/>
+ </security>
+ </attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=A"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=B"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=C"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=D"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=ex"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <!-- It's possible for indiviual queues and topics to use a specific queue for
+ an expiry or DLQ -->
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=PrivateDLQ"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=QueueWithOwnDLQAndExpiryQueue"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="DLQ">jboss.messaging.destination:service=Queue,name=PrivateDLQ</attribute>
+ <attribute name="ExpiryQueue">jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue</attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.TopicService"
+ name="jboss.messaging.destination:service=Topic,name=TopicWithOwnDLQAndExpiryQueue"
+ xmbean-dd="xmdesc/Topic-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="DLQ">jboss.messaging.destination:service=Queue,name=PrivateDLQ</attribute>
+ <attribute name="ExpiryQueue">jboss.messaging.destination:service=Queue,name=PrivateExpiryQueue</attribute>
+ </mbean>
+
+ <!-- Queues and Topics can also specify their own redelivery delay -->
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=QueueWithOwnRedeliveryDelay"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="RedeliveryDelay">5000</attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.TopicService"
+ name="jboss.messaging.destination:service=Topic,name=TopicWithOwnRedeliveryDelay"
+ xmbean-dd="xmdesc/Topic-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="RedeliveryDelay">5000</attribute>
+ </mbean>
+
+ <!--
+ Example clustered destinations.
+ -->
+
+ <mbean code="org.jboss.jms.server.destination.QueueService"
+ name="jboss.messaging.destination:service=Queue,name=testDistributedQueue"
+ xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="Clustered">true</attribute>
+ </mbean>
+
+ <mbean code="org.jboss.jms.server.destination.TopicService"
+ name="jboss.messaging.destination:service=Topic,name=testDistributedTopic"
+ xmbean-dd="xmdesc/Topic-xmbean.xml">
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+ <depends>jboss.messaging:service=PostOffice</depends>
+ <attribute name="Clustered">true</attribute>
+ </mbean>
+
+</server>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/hsqldb-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/hsqldb-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/hsqldb-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Hypersonic persistence deployment descriptor.
+
+ DO NOT USE HYPERSONIC IN PRODUCTION or in a clustered environment- Hypersonic does not have transaction isolation
+
+ $Id: hsqldb-persistence-service.xml 3339 2007-11-16 20:48:08Z clebert.suconic at jboss.com $
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then will use JDBC batch updates -->
+
+ <attribute name="UsingBatchUpdates">false</attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- This post office is NON CLUSTERED - do not use clustering with Hypersonic!! -->
+
+ <attribute name="Clustered">false</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/jboss-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/jboss-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/jboss-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Bootstrap - starts the messaging server peer
+
+ $Id: jboss-service.xml 2671 2007-05-14 15:51:13Z timfox $
+ -->
+
+<server>
+
+ <mbean code="org.jboss.jms.server.Bootstrap"
+ name="jboss.messaging:service=Bootstrap"
+ xmbean-dd="xmdesc/Bootstrap-xmbean.xml">
+ <depends>jboss.messaging:service=ServerPeer</depends>
+ </mbean>
+
+</server>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/messaging-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/messaging-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/messaging-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ The JBoss Messaging service deployment descriptor.
+
+ $Id: messaging-service.xml 3880 2008-03-14 15:55:42Z timfox $
+ -->
+
+<server>
+
+ <!-- The SecurityStore mbean -->
+ <mbean code="org.jboss.jms.server.security.SecurityMetadataStore"
+ name="jboss.messaging:service=SecurityStore">
+
+ <!-- The default security configuration to apply to destinations - this can be overridden on a per destination basis
+ -->
+ <attribute name="DefaultSecurityConfig">
+ <security>
+ <role name="guest" read="true" write="true" create="true"/>
+ </security>
+ </attribute>
+
+ <!-- The JAAS security domain to use for JBoss Messaging -->
+ <attribute name="SecurityDomain">java:/jaas/messaging</attribute>
+
+ <!--
+ This attribute defines what's the SuckerPassword used on this SecurityStore
+ -->
+ <attribute name="SuckerPassword">CHANGE ME!!</attribute>
+ </mbean>
+
+ <!-- ServerPeer MBean configuration
+ ============================== -->
+ <mbean code="org.jboss.jms.server.ServerPeer"
+ name="jboss.messaging:service=ServerPeer"
+ xmbean-dd="xmdesc/ServerPeer-xmbean.xml">
+
+ <!-- The unique id of the server peer - in a cluster each node MUST have a unique value - must be an integer -->
+
+ <attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:0}</attribute>
+
+ <!-- The default JNDI context to use for queues when they are deployed without specifying one -->
+
+ <attribute name="DefaultQueueJNDIContext">/queue</attribute>
+
+ <!-- The default JNDI context to use for topics when they are deployed without specifying one -->
+
+ <attribute name="DefaultTopicJNDIContext">/topic</attribute>
+
+ <attribute name="PostOffice">jboss.messaging:service=PostOffice</attribute>
+
+ <!-- The default Dead Letter Queue (DLQ) to use for destinations.
+ This can be overridden on a per destinatin basis -->
+
+ <attribute name="DefaultDLQ">jboss.messaging.destination:service=Queue,name=DLQ</attribute>
+
+ <!-- The default maximum number of times to attempt delivery of a message before sending to the DLQ (if configured).
+ This can be overridden on a per destinatin basis -->
+
+ <attribute name="DefaultMaxDeliveryAttempts">10</attribute>
+
+ <!-- The default Expiry Queue to use for destinations. This can be overridden on a per destinatin basis -->
+
+ <attribute name="DefaultExpiryQueue">jboss.messaging.destination:service=Queue,name=ExpiryQueue</attribute>
+
+ <!-- The default redelivery delay to impose. This can be overridden on a per destination basis -->
+
+ <attribute name="DefaultRedeliveryDelay">0</attribute>
+
+ <!-- The periodicity of the message counter manager enquiring on queues for statistics -->
+
+ <attribute name="MessageCounterSamplePeriod">5000</attribute>
+
+ <!-- The maximum amount of time for a client to wait for failover to start on the server side after
+ it has detected failure -->
+
+ <attribute name="FailoverStartTimeout">60000</attribute>
+
+ <!-- The maximum amount of time for a client to wait for failover to complete on the server side after
+ it has detected failure -->
+
+ <attribute name="FailoverCompleteTimeout">300000</attribute>
+
+ <!-- The maximum number of days results to maintain in the message counter history -->
+
+ <attribute name="DefaultMessageCounterHistoryDayLimit">-1</attribute>
+
+ <!-- The name of the connection factory to use for creating connections between nodes to pull messages -->
+
+ <attribute name="ClusterPullConnectionFactoryName">jboss.messaging.connectionfactory:service=ClusterPullConnectionFactory</attribute>
+
+ <!-- When redistributing messages in the cluster. Do we need to preserve the order of messages received
+ by a particular consumer from a particular producer? -->
+
+ <attribute name="DefaultPreserveOrdering">false</attribute>
+
+ <!-- Max. time to hold previously delivered messages back waiting for clients to reconnect after failover -->
+
+ <attribute name="RecoverDeliveriesTimeout">300000</attribute>
+
+ <!-- Set to true to enable message counters that can be viewed via JMX -->
+
+ <attribute name="EnableMessageCounters">false</attribute>
+
+ <!-- The password used by the message sucker connections to create connections.
+ THIS SHOULD ALWAYS BE CHANGED AT INSTALL TIME TO SECURE SYSTEM
+ <attribute name="SuckerPassword"></attribute>
+ -->
+
+ <depends optional-attribute-name="PersistenceManager">jboss.messaging:service=PersistenceManager</depends>
+
+ <depends optional-attribute-name="JMSUserManager">jboss.messaging:service=JMSUserManager</depends>
+
+ <depends>jboss.messaging:service=Connector,transport=bisocket</depends>
+ <depends optional-attribute-name="SecurityStore" proxy-type="org.jboss.jms.server.SecurityStore">jboss.messaging:service=SecurityStore</depends>
+
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mssql-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mssql-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mssql-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ MS SQL Server persistence deployment descriptor.
+
+ Tested with SQL Server 2005
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUMMY INTEGER, PRIMARY KEY (DUMMY))
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID BIGINT, CHANNEL_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INT, SCHED_DELIVERY BIGINT, PRIMARY KEY(MESSAGE_ID, CHANNEL_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, TYPE TINYINT, HEADERS IMAGE, PAYLOAD IMAGE, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INT, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR))
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WITH (HOLDLOCK, ROWLOCK) WHERE NAME=?
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID SMALLINT, QUEUE_NAME VARCHAR(255), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID INTEGER, CLSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME))
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is non clustered. If you want a clustered post office then set to true -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mysql-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mysql-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/mysql-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ MySql persistence deployment descriptor.
+
+ Tested with MySQL 5.0.27
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUMMY INTEGER, PRIMARY KEY (DUMMY)) ENGINE = INNODB
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID BIGINT, CHANNEL_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(MESSAGE_ID, CHANNEL_ID)) ENGINE = INNODB
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, TYPE TINYINT, HEADERS MEDIUMBLOB, PAYLOAD LONGBLOB, PRIMARY KEY (MESSAGE_ID)) ENGINE = INNODB
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTION_ID)) ENGINE = INNODB
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME)) ENGINE = INNODB
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR)) ENGINE = INNODB
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(255), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, CLUSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME)) ENGINE = INNODB
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is non clustered. If you want a clustered post office then set to true -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID)) ENGINE = INNODB
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID)) ENGINE = INNODB
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/ndb-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/ndb-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/ndb-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ MySql persistence deployment descriptor.
+
+ Tested with MySQL 5.0.27
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUMMY INTEGER, PRIMARY KEY (DUMMY)) ENGINE = NDBCLUSTER
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID BIGINT, CHANNEL_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(MESSAGE_ID, CHANNEL_ID)) ENGINE = NDBCLUSTER
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY TINYINT, TYPE TINYINT, HEADERS MEDIUMBLOB, PAYLOAD LONGBLOB, PRIMARY KEY (MESSAGE_ID)) ENGINE = NDBCLUSTER
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID BIGINT, BRANCH_QUAL VARBINARY(254), FORMAT_ID INTEGER, GLOBAL_TXID VARBINARY(254), PRIMARY KEY (TRANSACTION_ID)) ENGINE = NDBCLUSTER
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME)) ENGINE = NDBCLUSTER
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR)) ENGINE = NDBCLUSTER
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ <!-- This defines the retry strategy for failed sql statments-->
+ <attribute name="UseNDBFailoverStrategy">true</attribute>
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(255), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, CLUSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME)) ENGINE = NDBCLUSTER
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is clustered. If you don't want a clustered post office then set to false -->
+
+ <attribute name="Clustered">true</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">300000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">300000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID)) ENGINE = NDBCLUSTER
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID)) ENGINE = NDBCLUSTER
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/null-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/null-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/null-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Null persistence config.
+
+ Use this if you don't actually want to persist anything
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.NullPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/NullPersistenceManager-xmbean.xml"/>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- This post office is clustered. If you don't want a clustered post office then set to false -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml"/>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/oracle-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/oracle-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/oracle-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Oracle persistence deployment descriptor.
+
+ Tested with Oracle 10.2.0.1
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <!-- Some databases don't support inserting blobs using INSERT INTO ... SELECT FROM -->
+
+ <attribute name="SupportsBlobOnSelect">false</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUMMY INTEGER, PRIMARY KEY (DUMMY))
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID INTEGER, CHANNEL_ID INTEGER, TRANSACTION_ID INTEGER, STATE CHAR(1), ORD INTEGER, PAGE_ORD INTEGER, DELIVERY_COUNT INTEGER, SCHED_DELIVERY INTEGER, PRIMARY KEY(MESSAGE_ID, CHANNEL_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID INTEGER, RELIABLE CHAR(1), EXPIRATION INTEGER, TIMESTAMP INTEGER, PRIORITY INTEGER, TYPE INTEGER, HEADERS BLOB, PAYLOAD BLOB, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID INTEGER, BRANCH_QUAL RAW(254), FORMAT_ID INTEGER, GLOBAL_TXID RAW(254), PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR2(255), NEXT_ID INTEGER, PRIMARY KEY(NAME))
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR2(255), PRIMARY KEY(NODE_ID, CNTR))
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR2(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR2(255), COND VARCHAR2(1023), SELECTOR VARCHAR2(1023), CHANNEL_ID INTEGER, CLUSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME))
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is non clustered. If you want a clustered post office then set to true -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR2(32) NOT NULL, PASSWD VARCHAR2(32) NOT NULL, CLIENTID VARCHAR2(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR2(32) NOT NULL, USER_ID VARCHAR2(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Property changes on: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/oracle-persistence-service.xml
___________________________________________________________________
Name: svn:executable
+ *
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/postgresql-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/postgresql-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/postgresql-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Postgresql persistence deployment descriptor.
+
+ Tested with PostgresSQL 8.2.3
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUMMY INTEGER, PRIMARY KEY (DUMMY))
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID BIGINT, CHANNEL_ID BIGINT, TRANSACTION_ID BIGINT, STATE CHAR(1), ORD BIGINT, PAGE_ORD BIGINT, DELIVERY_COUNT INTEGER, SCHED_DELIVERY BIGINT, PRIMARY KEY(MESSAGE_ID, CHANNEL_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID BIGINT, RELIABLE CHAR(1), EXPIRATION BIGINT, TIMESTAMP BIGINT, PRIORITY SMALLINT, TYPE SMALLINT, HEADERS BYTEA, PAYLOAD BYTEA, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID BIGINT, BRANCH_QUAL BYTEA, FORMAT_ID INTEGER, GLOBAL_TXID BYTEA, PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255), NEXT_ID BIGINT, PRIMARY KEY(NAME))
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER, CNTR INTEGER, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR))
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER WHERE NAME=? FOR UPDATE
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255), NODE_ID INTEGER, QUEUE_NAME VARCHAR(255), COND VARCHAR(1023), SELECTOR VARCHAR(1023), CHANNEL_ID BIGINT, CLUSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME))
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLUSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is non clustered. If you want a clustered post office then set to true -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/sybase-persistence-service.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/sybase-persistence-service.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/server/default/deploy/sybase-persistence-service.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Sybase persistence deployment descriptor.
+
+ Tested with Sybase Adaptive Server Enterprise 12.5.3
+
+ $Id$
+ -->
+
+<server>
+
+ <!-- Persistence Manager MBean configuration
+ ======================================== -->
+
+ <mbean code="org.jboss.messaging.core.jmx.JDBCPersistenceManagerService"
+ name="jboss.messaging:service=PersistenceManager"
+ xmbean-dd="xmdesc/JDBCPersistenceManager-xmbean.xml">
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The datasource to use for the persistence manager -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <!-- If true then we will automatically detect and reject duplicate messages sent during failover -->
+
+ <attribute name="DetectDuplicates">true</attribute>
+
+ <!-- The size of the id cache to use when detecting duplicate messages -->
+
+ <attribute name="IDCacheSize">500</attribute>
+
+ <!-- If true then will add a trailing byte to all byte arrays otherwise Sybase truncates them
+ Only known to be necessary for Sybase -->
+
+ <attribute name="UsingTrailingByte">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+ CREATE_DUAL=CREATE TABLE JBM_DUAL (DUAL_DUMMY INTEGER NOT NULL, PRIMARY KEY (DUAL_DUMMY))
+ CREATE_MESSAGE_REFERENCE=CREATE TABLE JBM_MSG_REF (MESSAGE_ID DECIMAL(19, 0) NOT NULL, CHANNEL_ID DECIMAL(19, 0) NOT NULL, TRANSACTION_ID DECIMAL(19, 0) NULL, STATE CHAR(1), ORD DECIMAL(19, 0), PAGE_ORD DECIMAL(19, 0) NULL, DELIVERY_COUNT INTEGER, SCHED_DELIVERY DECIMAL(19, 0), PRIMARY KEY(MESSAGE_ID, CHANNEL_ID))
+ CREATE_IDX_MESSAGE_REF_TX=CREATE INDEX JBM_MSG_REF_TX ON JBM_MSG_REF (TRANSACTION_ID, STATE)
+ CREATE_MESSAGE=CREATE TABLE JBM_MSG (MESSAGE_ID DECIMAL(19, 0) NOT NULL, RELIABLE CHAR(1), EXPIRATION DECIMAL(19, 0), TIMESTAMP DECIMAL(19, 0), PRIORITY TINYINT, TYPE TINYINT, HEADERS IMAGE NULL, PAYLOAD IMAGE NULL, PRIMARY KEY (MESSAGE_ID))
+ CREATE_TRANSACTION=CREATE TABLE JBM_TX (NODE_ID INTEGER, TRANSACTION_ID DECIMAL(19, 0) NOT NULL, BRANCH_QUAL VARBINARY(254) NULL, FORMAT_ID INTEGER NULL, GLOBAL_TXID VARBINARY(254) NULL, PRIMARY KEY (TRANSACTION_ID))
+ CREATE_COUNTER=CREATE TABLE JBM_COUNTER (NAME VARCHAR(255) NOT NULL, NEXT_ID DECIMAL(19, 0), PRIMARY KEY(NAME))
+ CREATE_ID_CACHE=CREATE TABLE JBM_ID_CACHE (NODE_ID INTEGER NOT NULL, CNTR INTEGER NOT NULL, JBM_ID VARCHAR(255), PRIMARY KEY(NODE_ID, CNTR))
+ INSERT_DUAL=INSERT INTO JBM_DUAL VALUES (1)
+ CHECK_DUAL=SELECT 1 FROM JBM_DUAL
+ INSERT_MESSAGE_REF=INSERT INTO JBM_MSG_REF (CHANNEL_ID, MESSAGE_ID, TRANSACTION_ID, STATE, ORD, PAGE_ORD, DELIVERY_COUNT, SCHED_DELIVERY) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ DELETE_MESSAGE_REF=DELETE FROM JBM_MSG_REF WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_MESSAGE_REF=UPDATE JBM_MSG_REF SET TRANSACTION_ID=?, STATE='-' WHERE MESSAGE_ID=? AND CHANNEL_ID=? AND STATE='C'
+ UPDATE_PAGE_ORDER=UPDATE JBM_MSG_REF SET PAGE_ORD = ? WHERE MESSAGE_ID=? AND CHANNEL_ID=?
+ COMMIT_MESSAGE_REF1=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='+'
+ COMMIT_MESSAGE_REF2=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='-'
+ ROLLBACK_MESSAGE_REF1=DELETE FROM JBM_MSG_REF WHERE TRANSACTION_ID=? AND STATE='+'
+ ROLLBACK_MESSAGE_REF2=UPDATE JBM_MSG_REF SET STATE='C', TRANSACTION_ID = NULL WHERE TRANSACTION_ID=? AND STATE='-'
+ LOAD_PAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, PAGE_ORD, SCHED_DELIVERY FROM JBM_MSG_REF WHERE CHANNEL_ID = ? AND PAGE_ORD BETWEEN ? AND ? ORDER BY PAGE_ORD
+ LOAD_UNPAGED_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY, PAGE_ORD FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ LOAD_REFS=SELECT MESSAGE_ID, DELIVERY_COUNT, SCHED_DELIVERY FROM JBM_MSG_REF WHERE STATE = 'C' AND CHANNEL_ID = ? ORDER BY ORD
+ UPDATE_REFS_NOT_PAGED=UPDATE JBM_MSG_REF SET PAGE_ORD = NULL WHERE PAGE_ORD BETWEEN ? AND ? AND CHANNEL_ID=?
+ SELECT_MIN_MAX_PAGE_ORD=SELECT MIN(PAGE_ORD), MAX(PAGE_ORD) FROM JBM_MSG_REF WHERE CHANNEL_ID = ?
+ UPDATE_DELIVERY_COUNT=UPDATE JBM_MSG_REF SET DELIVERY_COUNT = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ UPDATE_CHANNEL_ID=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE CHANNEL_ID = ?
+ MOVE_REFERENCE=UPDATE JBM_MSG_REF SET CHANNEL_ID = ? WHERE MESSAGE_ID = ? AND CHANNEL_ID = ?
+ LOAD_MESSAGES=SELECT MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, HEADERS, PAYLOAD, TYPE FROM JBM_MSG
+ INSERT_MESSAGE=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+ INSERT_MESSAGE_CONDITIONAL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE) SELECT ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ UPDATE_MESSAGE_4CONDITIONAL=UPDATE JBM_MSG SET HEADERS=?, PAYLOAD=? WHERE MESSAGE_ID=?
+ INSERT_MESSAGE_CONDITIONAL_FULL=INSERT INTO JBM_MSG (MESSAGE_ID, RELIABLE, EXPIRATION, TIMESTAMP, PRIORITY, TYPE, HEADERS, PAYLOAD) SELECT ?, ?, ?, ?, ?, ?, ?, ? FROM JBM_DUAL WHERE NOT EXISTS (SELECT MESSAGE_ID FROM JBM_MSG WHERE MESSAGE_ID = ?)
+ MESSAGE_ID_COLUMN=MESSAGE_ID
+ DELETE_MESSAGE=DELETE FROM JBM_MSG WHERE MESSAGE_ID = ? AND NOT EXISTS (SELECT JBM_MSG_REF.MESSAGE_ID FROM JBM_MSG_REF WHERE JBM_MSG_REF.MESSAGE_ID = ?)
+ INSERT_TRANSACTION=INSERT INTO JBM_TX (NODE_ID, TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID) VALUES(?, ?, ?, ?, ?)
+ DELETE_TRANSACTION=DELETE FROM JBM_TX WHERE NODE_ID = ? AND TRANSACTION_ID = ?
+ SELECT_PREPARED_TRANSACTIONS=SELECT TRANSACTION_ID, BRANCH_QUAL, FORMAT_ID, GLOBAL_TXID FROM JBM_TX WHERE NODE_ID = ?
+ SELECT_MESSAGE_ID_FOR_REF=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '+' ORDER BY ORD
+ SELECT_MESSAGE_ID_FOR_ACK=SELECT MESSAGE_ID, CHANNEL_ID FROM JBM_MSG_REF WHERE TRANSACTION_ID = ? AND STATE = '-' ORDER BY ORD
+ UPDATE_COUNTER=UPDATE JBM_COUNTER SET NEXT_ID = ? WHERE NAME=?
+ SELECT_COUNTER=SELECT NEXT_ID FROM JBM_COUNTER HOLDLOCK WHERE NAME=?
+ INSERT_COUNTER=INSERT INTO JBM_COUNTER (NAME, NEXT_ID) VALUES (?, ?)
+ SELECT_ALL_CHANNELS=SELECT DISTINCT(CHANNEL_ID) FROM JBM_MSG_REF
+ UPDATE_TX=UPDATE JBM_TX SET NODE_ID=? WHERE NODE_ID=?
+ UPDATE_ID_IN_CACHE=UPDATE JBM_ID_CACHE SET JBM_ID = ? WHERE NODE_ID = ? AND CNTR = ?
+ INSERT_ID_IN_CACHE=INSERT INTO JBM_ID_CACHE (NODE_ID, CNTR, JBM_ID) VALUES (?, ?, ?)
+ LOAD_ID_CACHE=SELECT CNTR, JBM_ID FROM JBM_ID_CACHE WHERE NODE_ID = ?
+ ]]></attribute>
+
+ <!-- The maximum number of parameters to include in a prepared statement -->
+
+ <attribute name="MaxParams">500</attribute>
+
+ </mbean>
+
+ <!-- Messaging Post Office MBean configuration
+ ========================================= -->
+
+ <mbean code="org.jboss.messaging.core.jmx.MessagingPostOfficeService"
+ name="jboss.messaging:service=PostOffice"
+ xmbean-dd="xmdesc/MessagingPostOffice-xmbean.xml">
+
+ <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+
+ <!-- The name of the post office -->
+
+ <attribute name="PostOfficeName">JMS post office</attribute>
+
+ <!-- The datasource used by the post office to access it's binding information -->
+
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+
+ <!-- If true will attempt to create tables and indexes on every start-up -->
+
+ <attribute name="CreateTablesOnStartup">true</attribute>
+
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_POSTOFFICE_TABLE=CREATE TABLE JBM_POSTOFFICE (POSTOFFICE_NAME VARCHAR(255) NOT NULL, NODE_ID SMALLINT NOT NULL, QUEUE_NAME VARCHAR(255) NOT NULL, COND VARCHAR(1023), SELECTOR VARCHAR(1023) NULL, CHANNEL_ID INTEGER, CLSTERED CHAR(1), ALL_NODES CHAR(1), PRIMARY KEY(POSTOFFICE_NAME, NODE_ID, QUEUE_NAME))
+INSERT_BINDING=INSERT INTO JBM_POSTOFFICE (POSTOFFICE_NAME, NODE_ID, QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
+DELETE_BINDING=DELETE FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=? AND QUEUE_NAME=?
+LOAD_BINDINGS=SELECT QUEUE_NAME, COND, SELECTOR, CHANNEL_ID, CLSTERED, ALL_NODES FROM JBM_POSTOFFICE WHERE POSTOFFICE_NAME=? AND NODE_ID=?
+ ]]></attribute>
+
+ <!-- This post office is non clustered. If you want a clustered post office then set to true -->
+
+ <attribute name="Clustered">false</attribute>
+
+ <!-- All the remaining properties only have to be specified if the post office is clustered.
+ You can safely comment them out if your post office is non clustered -->
+
+ <!-- The JGroups group name that the post office will use -->
+
+ <attribute name="GroupName">${jboss.messaging.groupname:MessagingPostOffice}</attribute>
+
+ <!-- Max time to wait for state to arrive when the post office joins the cluster -->
+
+ <attribute name="StateTimeout">30000</attribute>
+
+ <!-- Max time to wait for a synchronous call to node members using the MessageDispatcher -->
+
+ <attribute name="CastTimeout">30000</attribute>
+
+ <!-- Set this to true if you want failover of connections to occur when a node is shut down -->
+
+ <attribute name="FailoverOnNodeLeave">false</attribute>
+
+ <attribute name="ChannelFactoryName">jboss.jgroups:service=ChannelFactory</attribute>
+ <attribute name="ControlChannelName">jbm-control</attribute>
+ <attribute name="DataChannelName">jbm-data</attribute>
+ <attribute name="ChannelPartitionName">${jboss.partition.name:DefaultPartition}-JMS</attribute>
+ </mbean>
+
+ <!-- Messaging JMS User Manager MBean config
+ ======================================= -->
+
+ <mbean code="org.jboss.jms.server.plugin.JDBCJMSUserManagerService"
+ name="jboss.messaging:service=JMSUserManager"
+ xmbean-dd="xmdesc/JMSUserManager-xmbean.xml">
+ <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
+ <depends optional-attribute-name="TransactionManager">jboss:service=TransactionManager</depends>
+ <attribute name="DataSource">java:/DefaultDS</attribute>
+ <attribute name="CreateTablesOnStartup">true</attribute>
+ <attribute name="SqlProperties"><![CDATA[
+CREATE_USER_TABLE=CREATE TABLE JBM_USER (USER_ID VARCHAR(32) NOT NULL, PASSWD VARCHAR(32) NOT NULL, CLIENTID VARCHAR(128), PRIMARY KEY(USER_ID))
+CREATE_ROLE_TABLE=CREATE TABLE JBM_ROLE (ROLE_ID VARCHAR(32) NOT NULL, USER_ID VARCHAR(32) NOT NULL, PRIMARY KEY(USER_ID, ROLE_ID))
+SELECT_PRECONF_CLIENTID=SELECT CLIENTID FROM JBM_USER WHERE USER_ID=?
+POPULATE.TABLES.1 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('guest', 'guest')
+POPULATE.TABLES.2 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('j2ee', 'j2ee')
+POPULATE.TABLES.3 = INSERT INTO JBM_USER (USER_ID, PASSWD, CLIENTID) VALUES ('john', 'needle', 'DurableSubscriberExample')
+POPULATE.TABLES.4 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('nobody', 'nobody')
+POPULATE.TABLES.5 = INSERT INTO JBM_USER (USER_ID, PASSWD) VALUES ('dynsub', 'dynsub')
+POPULATE.TABLES.6 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('guest','guest')
+POPULATE.TABLES.7 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('j2ee','guest')
+POPULATE.TABLES.8 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('john','guest')
+POPULATE.TABLES.9 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('subscriber','john')
+POPULATE.TABLES.10 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','john')
+POPULATE.TABLES.11 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('publisher','dynsub')
+POPULATE.TABLES.12 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','john')
+POPULATE.TABLES.13 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('durpublisher','dynsub')
+POPULATE.TABLES.14 = INSERT INTO JBM_ROLE (ROLE_ID, USER_ID) VALUES ('noacc','nobody')
+ ]]></attribute>
+ </mbean>
+
+</server>
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bootstrap-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bootstrap-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bootstrap-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+<mbean>
+ <description>A bootstrap for a Messaging scoped deployment</description>
+ <class>org.jboss.jms.server.Bootstrap</class>
+</mbean>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bridge-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bridge-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/Bridge-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<mbean>
+ <description>A JMS Message Bridge</description>
+ <class>org.jboss.server.bridge.BridgeService</class>
+
+ <!-- Managed constructors -->
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>Gets the underlying instance</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSourceProviderLoader"
+ setMethod="setSourceProviderLoader">
+ <description>JMS Provider Loader for the source destination</description>
+ <name>SourceProviderLoader</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTargetProviderLoader"
+ setMethod="setTargetProviderLoader">
+ <description>JMS Provider Loader for the target destination</description>
+ <name>TargetProviderLoader</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSourceDestinationLookup"
+ setMethod="setSourceDestinationLookup">
+ <description>The source destination lookup</description>
+ <name>SourceDestinationLookup</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTargetDestinationLookup"
+ setMethod="setTargetDestinationLookup">
+ <description>The target destination lookup</description>
+ <name>TargetDestinationLookup</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSourceUsername"
+ setMethod="setSourceUsername">
+ <description>The source username</description>
+ <name>SourceUsername</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSourcePassword"
+ setMethod="setSourcePassword">
+ <description>The source username</description>
+ <name>SourcePassword</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTargetUsername"
+ setMethod="setTargetUsername">
+ <description>The target username</description>
+ <name>TargetUsername</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTargetPassword"
+ setMethod="setTargetPassword">
+ <description>The target password</description>
+ <name>TargetPassword</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getQualityOfServiceMode"
+ setMethod="setQualityOfServiceMode">
+ <description>The quality of service mode. 0 = at most once. 1 = duplicates ok, 2 = once and only once</description>
+ <name>QualityOfServiceMode</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSelector"
+ setMethod="setSelector">
+ <description>The JMS selector to use when consuming messages from the source destination</description>
+ <name>Selector</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxBatchSize"
+ setMethod="setMaxBatchSize">
+ <description>The maximum number of messages to forward at a time, must be >= 1</description>
+ <name>MaxBatchSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxBatchTime"
+ setMethod="setMaxBatchTime">
+ <description>Number of milliseconds to wait after no messages arrive to forward batch of messages</description>
+ <name>MaxBatchTime</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSubName"
+ setMethod="setSubName">
+ <description>If consuming from a durable subscription, this is the name of the durable subscrition</description>
+ <name>SubName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getClientID"
+ setMethod="setClientID">
+ <description>If consuming from a durable subscription, this is the client id to use</description>
+ <name>ClientID</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getFailureRetryInterval"
+ setMethod="setFailureRetryInterval">
+ <description>The amount of time to wait in milliseconds before retrying connection creation, after connection failure is detected, or -1 if no retries will be attempted</description>
+ <name>FailureRetryInterval</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxRetries"
+ setMethod="setMaxRetries">
+ <description>The maximum number of attempts to retry connection creation after connection failure is detected</description>
+ <name>MaxRetries</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isAddMessageIDInHeader" setMethod="setAddMessageIDInHeader">
+ <description>Should the message id be added as a header in the message when bridging?</description>
+ <name>AddMessageIDInHeader</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="isFailed">
+ <description>Has the bridge failed?</description>
+ <name>Failed</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="isPaused">
+ <description>Is the bridge paused?</description>
+ <name>Paused</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="isStarted">
+ <description>Is the bridge started?</description>
+ <name>Started</name>
+ <type>boolean</type>
+ </attribute>
+
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+ <operation>
+ <description>Pause the bridge</description>
+ <name>pause</name>
+ </operation>
+
+ <operation>
+ <description>Resume the bridge</description>
+ <name>resume</name>
+ </operation>
+
+</mbean>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/ConnectionFactory-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<!-- $Id: ConnectionFactory-xmbean.xml 3332 2007-11-15 09:32:43Z timfox $ -->
+
+
+<mbean>
+ <description>A deployable JBoss Messaging Connection Factory</description>
+ <class>org.jboss.jms.server.connectionfactory.ConnectionFactory</class>
+
+ <!-- Managed constructors -->
+
+ <constructor>
+ <name>ConnectionFactoryService</name>
+ </constructor>
+
+ <constructor>
+ <name>ConnectionFactoryService</name>
+ <parameter>
+ <name>ClientID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ </constructor>
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getClientID">
+ <description>The connection factory client identifier</description>
+ <name>ClientID</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <!-- This attribute is writable to allow configuring an arbitrary set of JNDI names in the
+ queue's service deployment descriptor. Any attempt to change the attribute after
+ initialization will be ignored.
+ -->
+ <attribute access="read-write" getMethod="getJNDIBindings" setMethod="setJNDIBindings">
+ <description>The element containing the JNDI bindings this connection factory is to be bound under</description>
+ <name>JNDIBindings</name>
+ <type>org.w3c.dom.Element</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getPrefetchSize" setMethod="setPrefetchSize">
+ <description>The maximum number of messages that will be prefetched by the client side consumer</description>
+ <name>PrefetchSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSlowConsumers" setMethod="setSlowConsumers">
+ <description>Does this connection factory create slow consumers? Slow consumers never buffer messages</description>
+ <name>SlowConsumers</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultTempQueueFullSize" setMethod="setDefaultTempQueueFullSize">
+ <description>The default value of paging full size for any temporary queues created for connections from this connection factory</description>
+ <name>DefaultTempQueueFullSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultTempQueuePageSize" setMethod="setDefaultTempQueuePageSize">
+ <description>The default value of paging page size for any temporary queues created for connections from this connection factory</description>
+ <name>DefaultTempQueuePageSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultTempQueueDownCacheSize" setMethod="setDefaultTempQueueDownCacheSize">
+ <description>The default value of paging down cache size for any temporary queues created for connections from this connection factory</description>
+ <name>DefaultTempQueueDownCacheSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDupsOKBatchSize" setMethod="setDupsOKBatchSize">
+ <description>The value of the DUPS_OK_ACKNOWLEDGE batch size to use for sessions created from this connection factory</description>
+ <name>DupsOKBatchSize</name>
+ <type>int</type>
+ </attribute>
+
+ <!-- ServerPeer ObjectName is configured as a dependency optional-attribute-name, this is the
+ only reason for this attribute to be writable. Any write attempt on this attribute after
+ initialization will be ignored.
+ -->
+ <attribute access="read-write" getMethod="getServerPeer" setMethod="setServerPeer">
+ <description>The ObjectName of the server peer this destination was deployed on</description>
+ <name>ServerPeer</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getConnector" setMethod="setConnector">
+ <description>The ObjectName of the remoting connector this destination will use</description>
+ <name>Connector</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSupportsFailover" setMethod="setSupportsFailover">
+ <description>Does this connection factory support transparent failover?</description>
+ <name>SupportsFailover</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSupportsLoadBalancing" setMethod="setSupportsLoadBalancing">
+ <description>Does this connection factory support internal load balancing on createConnection(...) requests?</description>
+ <name>SupportsLoadBalancing</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getLoadBalancingFactory" setMethod="setLoadBalancingFactory">
+ <description>The pluggable load balancing policy factory that is used to decide the next cluster node to create a clustered connection to</description>
+ <name>LoadBalancingFactory</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isStrictTck" setMethod="setStrictTck">
+ <description>Does this CF support StrictTCK</description>
+ <name>StrictTck</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSendAcksAsync" setMethod="setSendAcksAsync">
+ <description>Should acknowledgements be sent asynchronously?</description>
+ <name>SendAcksAsync</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isDisableRemotingChecks" setMethod="setDisableRemotingChecks">
+ <description>Disable remoting connector parameter sanity checks. There is rarely a good reason to set this to true</description>
+ <name>DisableRemotingChecks</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isDisableRemotingChecks" setMethod="setDisableRemotingChecks">
+ <description>Disable remoting connector parameter sanity checks. There is rarely a good reason to set this to true</description>
+ <name>DisableRemotingChecks</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isEnableOrderingGroup" setMethod="setEnableOrderingGroup">
+ <description>Enable/Disable message ordering group on connection factory. Default is false.</description>
+ <name>EnableOrderingGroup</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultOrderingGroupName" setMethod="setDefaultOrderingGroupName">
+ <description>The default name for message ordering group, only make sense when ordering group is enabled on the connection factory.</description>
+ <name>DefaultOrderingGroupName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+</mbean>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/JDBCPersistenceManager-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/JDBCPersistenceManager-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/JDBCPersistenceManager-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<mbean>
+ <description>A JDBC persistence manager</description>
+ <class>org.jboss.messaging.core.jmx.JDBCPersistenceManagerService</class>
+
+ <!-- Managed constructors -->
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to plug into the server peer</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDataSource" setMethod="setDataSource">
+ <description>The JNDI name of the DataSource used by this persistence manager</description>
+ <name>DataSource</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTransactionManager" setMethod="setTransactionManager">
+ <description>The ObjectName of the TransactionManager used by this persistence manager</description>
+ <name>TransactionManager</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isCreateTablesOnStartup" setMethod="setCreateTablesOnStartup">
+ <description>Should database tables be created on startup?</description>
+ <name>CreateTablesOnStartup</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isUsingBatchUpdates" setMethod="setUsingBatchUpdates">
+ <description>Should JDBC batch updates be used?</description>
+ <name>UsingBatchUpdates</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isUsingBinaryStream" setMethod="setUsingBinaryStream">
+ <description>Should binary stream be used for accessing message headers / body ?</description>
+ <name>UsingBinaryStream</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isUsingTrailingByte" setMethod="setUsingTrailingByte">
+ <description>Should a trailing byte be added to VARBINARY columns - this would be true for databases such as Sybase which would otherwise truncate trailing zeros</description>
+ <name>UsingTrailingByte</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSqlProperties" setMethod="setSqlProperties">
+ <description>DML and DDL overrides</description>
+ <name>SqlProperties</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxParams" setMethod="setMaxParams">
+ <description>The max number of params to be used in a generated PreparedStatement</description>
+ <name>MaxParams</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isUseNDBFailoverStrategy" setMethod="setUseNDBFailoverStrategy">
+ <description>This changes the retry strategy for the persistence manager. If failure occurs on commit, we ignore the second failure and assume that the insert happened correctly</description>
+ <name>UseNDBFailoverStrategy</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSupportsBlobOnSelect" setMethod="setSupportsBlobOnSelect">
+ <description>Some databases don't support binding blobs on select clauses</description>
+ <name>SupportsBlobOnSelect</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSupportsSetNullOnBlobs" setMethod="setSupportsSetNullOnBlobs">
+ <description>Some databases don't support binding null blobs using setNull (mainly DB2)</description>
+ <name>SupportsSetNullOnBlobs</name>
+ <type>boolean</type>
+ </attribute>
+
+
+ <attribute access="read-write" getMethod="isDetectDuplicates" setMethod="setDetectDuplicates">
+ <description>Detect duplicate message sends on failover? There is some performance hit for doing this</description>
+ <name>DetectDuplicates</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getIDCacheSize" setMethod="setIDCacheSize">
+ <description>The ID cache size to use when detecting duplicate message sends</description>
+ <name>IDCacheSize</name>
+ <type>int</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+</mbean>
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/JMSUserManager-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/JMSUserManager-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/JMSUserManager-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<mbean>
+ <description>An JMS User Manager</description>
+ <class>org.jboss.server.plugin.JDBCJMSUserManagerService</class>
+
+ <!-- Managed constructors -->
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to plug into the server peer</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDataSource" setMethod="setDataSource">
+ <description>The JNDI name of the DataSource used by this ChannelMapper instance</description>
+ <name>DataSource</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTransactionManager" setMethod="setTransactionManager">
+ <description>The ObjectName of the TransactionManager used by this ChannelMaper instance</description>
+ <name>TransactionManager</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSqlProperties" setMethod="setSqlProperties">
+ <description>DML and DDL overrides</description>
+ <name>SqlProperties</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isCreateTablesOnStartup" setMethod="setCreateTablesOnStartup">
+ <description>Should database tables be created on startup?</description>
+ <name>CreateTablesOnStartup</name>
+ <type>boolean</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+</mbean>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/MessagingPostOffice-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/MessagingPostOffice-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/MessagingPostOffice-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<mbean>
+ <description>An messaging post-office</description>
+ <class>org.jboss.messaging.core.jmx.MessagingPostOfficeService</class>
+
+ <!-- Managed constructors -->
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to plug into the server peer</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDataSource" setMethod="setDataSource">
+ <description>The JNDI name of the DataSource used by this ChannelMapper instance</description>
+ <name>DataSource</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getTransactionManager" setMethod="setTransactionManager">
+ <description>The ObjectName of the TransactionManager used by this ChannelMaper instance</description>
+ <name>TransactionManager</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSqlProperties" setMethod="setSqlProperties">
+ <description>DML and DDL overrides</description>
+ <name>SqlProperties</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isCreateTablesOnStartup" setMethod="setCreateTablesOnStartup">
+ <description>Should database tables be created on startup?</description>
+ <name>CreateTablesOnStartup</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getPostOfficeName" setMethod="setPostOfficeName">
+ <description>The name of the post office</description>
+ <name>PostOfficeName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getServerPeer" setMethod="setServerPeer">
+ <description>The ObjectName of the server peer this destination was deployed on</description>
+ <name>ServerPeer</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getGroupName" setMethod="setGroupName">
+ <description>The name of the JGroups group to use</description>
+ <name>GroupName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getStateTimeout" setMethod="setStateTimeout">
+ <description>Timeout for getState()</description>
+ <name>StateTimeout</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getCastTimeout" setMethod="setCastTimeout">
+ <description>Timeout for getState()</description>
+ <name>CastTimeout</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isClustered" setMethod="setClustered">
+ <description>Is this post office clustered?</description>
+ <name>Clustered</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getControlChannelConfig" setMethod="setControlChannelConfig">
+ <description>The JGroups stack configuration for the control channel</description>
+ <name>ControlChannelConfig</name>
+ <type>org.w3c.dom.Element</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDataChannelConfig" setMethod="setDataChannelConfig">
+ <description>The JGroups stack configuration for the data channel</description>
+ <name>DataChannelConfig</name>
+ <type>org.w3c.dom.Element</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getServerPeer" setMethod="setServerPeer">
+ <description>The ObjectName of the server peer this destination was deployed on</description>
+ <name>ServerPeer</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getChannelFactoryName" setMethod="setChannelFactoryName">
+ <description>The ObjectName of the JGroups Multiplexer used to create JChannels</description>
+ <name>ChannelFactoryName</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getControlChannelName" setMethod="setControlChannelName">
+ <description>The name of the stack used on multiplexer for Control Channels</description>
+ <name>ControlChannelName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDataChannelName" setMethod="setDataChannelName">
+ <description>The name of the stack used on multiplexer for Data Channels</description>
+ <name>DataChannelName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getChannelPartitionName" setMethod="setChannelPartitionName">
+ <description>The partition name used to identify JMS/Postoffice on the JGroups Multiplexor</description>
+ <name>ChannelPartitionName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxConcurrentReplications" setMethod="setMaxConcurrentReplications">
+ <description>The maximum number of concurrent replications</description>
+ <name>MaxConcurrentReplications</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isFailoverOnNodeLeave" setMethod="setFailoverOnNodeLeave">
+ <description>If true then failover will occur when a node cleanly leaves the group - i.e. it is cleanly shut down</description>
+ <name>FailoverOnNodeLeave</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getNodeIDView">
+ <description>Get the set of nodes in the cluster</description>
+ <name>NodeIDView</name>
+ <type>java.util.Set</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+</mbean>
\ No newline at end of file
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/NullPersistenceManager-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/NullPersistenceManager-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/NullPersistenceManager-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<mbean>
+ <description>A null persistence manager</description>
+ <class>org.jboss.messaging.core.jmx.NullPersistenceManagerService</class>
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to plug into the server peer</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+</mbean>
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/Queue-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/Queue-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/Queue-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<!-- $Id: Queue-xmbean.xml 3332 2007-11-15 09:32:43Z timfox $ -->
+
+<mbean>
+ <description>A deployable JBoss Messaging Queue</description>
+ <class>org.jboss.jms.server.destination.QueueService</class>
+
+ <!-- Managed constructors -->
+
+ <constructor>
+ <name>Queue</name>
+ </constructor>
+
+ <constructor>
+ <name>Queue</name>
+ <parameter>
+ <name>IsCreatedProgrammatically</name>
+ <type>boolean</type>
+ </parameter>
+ </constructor>
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getName">
+ <description>The destination name</description>
+ <name>Name</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <!-- This attribute is writable to allow configuring an arbitrary JNDI name in the queue's
+ service deployment descriptor. Any attempt to change the attribute after initialization
+ will be ignored.
+ -->
+ <attribute access="read-write" getMethod="getJNDIName" setMethod="setJNDIName">
+ <description>The destination's JNDI name</description>
+ <name>JNDIName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <!-- ServerPeer ObjectName is configured as a dependency optional-attribute-name, this is the
+ only reason for this attribute to be writable. Any write attempt on this attribute after
+ initialization will be ignored.
+ -->
+ <attribute access="read-write" getMethod="getServerPeer" setMethod="setServerPeer">
+ <description>The ObjectName of the server peer this destination was deployed on</description>
+ <name>ServerPeer</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDLQ" setMethod="setDLQ">
+ <description>The DLQ for this queue, overrides the default DLQ on the server peer</description>
+ <name>DLQ</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getExpiryQueue" setMethod="setExpiryQueue">
+ <description>The expiry queue for this queue, overrides the default expiry queue on the server peer</description>
+ <name>ExpiryQueue</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getRedeliveryDelay" setMethod="setRedeliveryDelay">
+ <description>The delay before redelivering</description>
+ <name>RedeliveryDelay</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSecurityConfig" setMethod="setSecurityConfig">
+ <description>The destination's security configuration</description>
+ <name>SecurityConfig</name>
+ <type>org.w3c.dom.Element</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="isCreatedProgrammatically">
+ <description>True if this destination was created programmatically</description>
+ <name>CreatedProgrammatically</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getMessageCount">
+ <description>The number of messages in the queue</description>
+ <name>MessageCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getDeliveringCount">
+ <description>The number of messages currently being delivered</description>
+ <name>DeliveringCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getScheduledMessageCount">
+ <description>The number of scheduled messages in the queue</description>
+ <name>ScheduledMessageCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxSize" setMethod="setMaxSize">
+ <description>The maximum number of messages this queue can hold before they are dropped</description>
+ <name>MaxSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getFullSize" setMethod="setFullSize">
+ <description>The in-memory message limit, can only be set when queue is stopped</description>
+ <name>FullSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getPageSize" setMethod="setPageSize">
+ <description>The paging size, can only be set when queue is stopped</description>
+ <name>PageSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDownCacheSize" setMethod="setDownCacheSize">
+ <description>The write-cache size, can only be set when queue is stopped</description>
+ <name>DownCacheSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isClustered" setMethod="setClustered">
+ <description>Is this a clustered destination?</description>
+ <name>Clustered</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isDropOldMessageOnRedeploy" setMethod="setDropOldMessageOnRedeploy">
+ <description>When you redeploy a queue after changing its clustered state, do you want to keep or abandon its existing messages?</description>
+ <name>DropOldMessageOnRedeploy</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getMessageCounter">
+ <description>Get the message counter for the queue</description>
+ <name>MessageCounter</name>
+ <type>org.jboss.jms.server.messagecounter.MessageCounter</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getMessageStatistics">
+ <description>Get the message statistics for the queue</description>
+ <name>MessageStatistics</name>
+ <type>org.jboss.jms.server.messagecounter.MessageStatistics</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMessageCounterHistoryDayLimit" setMethod="setMessageCounterHistoryDayLimit">
+ <description>The day limit for the message counter</description>
+ <name>MessageCounterHistoryDayLimit</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxDeliveryAttempts" setMethod="setMaxDeliveryAttempts">
+ <description>The maximum delivery attempts to the queue</description>
+ <name>MaxDeliveryAttempts</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getConsumerCount">
+ <description>The number of consumers on the queue</description>
+ <name>ConsumerCount</name>
+ <type>int</type>
+ </attribute>
+
+ <!-- instance access -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to be accessed by select plugins via a typed hard reference</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+ <operation>
+ <description>Remove all messages in the queue</description>
+ <name>removeAllMessages</name>
+ </operation>
+
+ <operation>
+ <description>List all messages</description>
+ <name>listAllMessages</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List all messages with selector</description>
+ <name>listAllMessages</name>
+ <parameter>
+ <description>Expression to define the selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List durable messages</description>
+ <name>listDurableMessages</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List durable messages with selector</description>
+ <name>listDurableMessages</name>
+ <parameter>
+ <description>Expression to define the selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List non durable messages</description>
+ <name>listNonDurableMessages</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List non durable messages with selector</description>
+ <name>listNonDurableMessages</name>
+ <parameter>
+ <description>Expression to define the selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List all messages which meet the condition described in selector</description>
+ <name>listMessages</name>
+ <parameter>
+ <description>Expression to define the selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>Reset the message counter</description>
+ <name>resetMessageCounter</name>
+ </operation>
+
+ <operation>
+ <description>Reset the message counter history</description>
+ <name>resetMessageCounterHistory</name>
+ </operation>
+
+ <operation>
+ <description>Get the message counter as HTML</description>
+ <name>listMessageCounterAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>Get the message counter history as HTML</description>
+ <name>listMessageCounterHistoryAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+</mbean>
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/ServerPeer-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/ServerPeer-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/ServerPeer-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,463 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+<mbean>
+ <description>JBoss Messaging Server Peer</description>
+ <class>org.jboss.jms.server.ServerPeer</class>
+
+ <!-- Managed constructors -->
+
+ <constructor>
+ <name>ServerPeer</name>
+ </constructor>
+
+ <!-- Managed attributes -->
+
+ <!-- plugins ObjectNames -->
+
+ <attribute access="read-write" getMethod="getPersistenceManager" setMethod="setPersistenceManager">
+ <description>The ObjectName of the persistence manager</description>
+ <name>PersistenceManager</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getPostOffice" setMethod="setPostOffice">
+ <description>The ObjectName of the post office</description>
+ <name>PostOffice</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getJMSUserManager" setMethod="setJMSUserManager">
+ <description>The ObjectName of the jms user manager</description>
+ <name>JMSUserManager</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <!-- instance access -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to be accessed by select plugins via a typed hard reference</description>
+ <name>Instance</name>
+ <type>java.lang.Object</type>
+ </attribute>
+
+ <!-- regular JMX attributes -->
+
+ <attribute access="read-only" getMethod="getJMSVersion">
+ <description>The version of the JMS specification implemented by this provider</description>
+ <name>JMSVersion</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getJMSMajorVersion">
+ <description>The major version of the JMS specification implemented by this provider</description>
+ <name>JMSMajorVersion</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getJMSMinorVersion">
+ <description>The minor version of the JMS specification implemented by this provider</description>
+ <name>JMSMinorVersion</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getJMSProviderName">
+ <description>The JMS provider name</description>
+ <name>JMSProviderName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getProviderVersion">
+ <description>The fully qualified provider version string</description>
+ <name>ProviderVersion</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getProviderMajorVersion">
+ <description>The JMS provider major version number</description>
+ <name>ProviderMajorVersion</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getProviderMinorVersion">
+ <description>The JMS provider minor version number</description>
+ <name>ProviderMinorVersion</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getDestinations">
+ <description>Returns a Set of javax.jms.Destinations (Queues and Topics) containing the current active destinations</description>
+ <name>Destinations</name>
+ <type>java.util.Set</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getMessageCounters">
+ <description>The message counters</description>
+ <name>MessageCounters</name>
+ <type>java.util.List</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getMessageStatistics">
+ <description>The message statistics</description>
+ <name>MessageStatistics</name>
+ <type>java.util.List</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultDLQ" setMethod="setDefaultDLQ">
+ <description>The ObjectName of the default DLQ - used when an individual queue does not specify a DLQ</description>
+ <name>DefaultDLQ</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultExpiryQueue" setMethod="setDefaultExpiryQueue">
+ <description>The ObjectName of the default expiry queue - used when an individual queue does not specify an expiry queue</description>
+ <name>DefaultExpiryQueue</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getServerPeerID" setMethod="setServerPeerID">
+ <description>The ID of the ServerPeer. Must be unique per JBoss instance</description>
+ <name>ServerPeerID</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultQueueJNDIContext" setMethod="setDefaultQueueJNDIContext">
+ <description>The default JNDI context queues are bound under.</description>
+ <name>DefaultQueueJNDIContext</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultTopicJNDIContext" setMethod="setDefaultTopicJNDIContext">
+ <description>The default JNDI context topics are bound under.</description>
+ <name>DefaultTopicJNDIContext</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getServerAopConfig" setMethod="setServerAopConfig">
+ <description>The aop.xml resource name for the server aspects.</description>
+ <name>ServerAopConfig</name>
+ <type>java.lang.String</type>
+ </attribute>
+ <attribute access="read-write" getMethod="getClientAopConfig" setMethod="setClientAopConfig">
+ <description>The aop.xml resource name for the client aspects.</description>
+ <name>ClientAopConfig</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSecurityStore" setMethod="setSecurityStore">
+ <description>The SecurityStore implementation for the server.</description>
+ <name>SecurityStore</name>
+ <type>org.jboss.jms.server.SecurityStore</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultMaxDeliveryAttempts" setMethod="setDefaultMaxDeliveryAttempts">
+ <description>The default maximum delivery attempts for destinations, unless overridden on the destination</description>
+ <name>DefaultMaxDeliveryAttempts</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getFailoverStartTimeout" setMethod="setFailoverStartTimeout">
+ <description>The maximum amount of time to wait for failover to begin</description>
+ <name>FailoverStartTimeout</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getFailoverCompleteTimeout" setMethod="setFailoverCompleteTimeout">
+ <description>The maximum amount of time to wait for failover to complete</description>
+ <name>FailoverCompleteTimeout</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultRedeliveryDelay" setMethod="setDefaultRedeliveryDelay">
+ <description>How long to wait before redelivery, can be overridden on the destination</description>
+ <name>DefaultRedeliveryDelay</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMessageCounterSamplePeriod" setMethod="setMessageCounterSamplePeriod">
+ <description>The period between which the message counter manager enquires for statistics from queues</description>
+ <name>MessageCounterSamplePeriod</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getClusterPullConnectionFactoryName" setMethod="setClusterPullConnectionFactoryName">
+ <description>The name of the connection factory used to create connections to pull messages from one node to another</description>
+ <name>ClusterPullConnectionFactoryName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isDefaultPreserveOrdering" setMethod="setDefaultPreserveOrdering">
+ <description>When pulling messages do we need to preserve the ordering of messages consumed from a particular producer, for a particular consumer?</description>
+ <name>DefaultPreserveOrdering</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getRecoverDeliveriesTimeout" setMethod="setRecoverDeliveriesTimeout">
+ <description>When a failover occurs the max. amount of time the server will keep messages in its recovery area. waiting for clients to reconnect</description>
+ <name>RecoverDeliveriesTimeout</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDefaultMessageCounterHistoryDayLimit" setMethod="setDefaultMessageCounterHistoryDayLimit">
+ <description>The default max number of messages per day in message counter history</description>
+ <name>DefaultMessageCounterHistoryDayLimit</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isSupportsFailover" setMethod="setSupportsFailover">
+ <description>Should Server Side Failover be executed</description>
+ <name>SupportsFailover</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isStrictTck" setMethod="setStrictTck">
+ <description>Should strict TCK behaviour be always followed?</description>
+ <name>StrictTck</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isEnableMessageCounters" setMethod="setEnableMessageCounters">
+ <description>Enable message counters</description>
+ <name>EnableMessageCounters</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="write-only" setMethod="setSuckerPassword">
+ <description>The password used for message suckers. Must match the SecurityStore.SuckerPassword.</description>
+ <name>SuckerPassword</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSuckerConnectionRetryTimes" setMethod="setSuckerConnectionRetryTimes">
+ <description>Max times for a sucker's connection to retry in case of failure. Default is -1 (retry forever)</description>
+ <name>SuckerConnectionRetryTimes</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSuckerConnectionRetryInterval" setMethod="setSuckerConnectionRetryInterval">
+ <description>The interval in milliseconds between each retry of the failed sucker's connection</description>
+ <name>SuckerConnectionRetryInterval</name>
+ <type>int</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+ <operation>
+ <description>
+ Deploys a queue with the specified name/JNDI name. The corresponding destination service will be instantiated, created and started.
+ </description>
+ <name>deployQueue</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <name>jndiName</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Deploys a queue with the specified name/JNDI name and paging parameters. The corresponding destination service will be instantiated, created and started.
+ </description>
+ <name>deployQueue</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <name>jndiName</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <name>fullSize</name>
+ <type>int</type>
+ </parameter>
+ <parameter>
+ <name>pageSize</name>
+ <type>int</type>
+ </parameter>
+ <parameter>
+ <name>downCacheSize</name>
+ <type>int</type>
+ </parameter>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Undeploys the queue, but does not delete its data from storage.
+ </description>
+ <name>undeployQueue</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>boolean</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Undeploys the queue, and deletes its data from storage
+ </description>
+ <name>destroyQueue</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>boolean</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Deploys a topic with the specified name/JNDI name. The corresponding destination service will be instantiated, created and started.
+ </description>
+ <name>deployTopic</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <name>jndiName</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <name>fullSize</name>
+ <type>int</type>
+ </parameter>
+ <parameter>
+ <name>pageSize</name>
+ <type>int</type>
+ </parameter>
+ <parameter>
+ <name>downCacheSize</name>
+ <type>int</type>
+ </parameter>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Deploys a topic with the specified name/JNDI name and paging parameters. The corresponding destination service will be instantiated, created and started.
+ </description>
+ <name>deployTopic</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <name>jndiName</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Undeploys the topic, but does not delete all its data from storage
+ </description>
+ <name>undeployTopic</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>boolean</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Undeploys the topic and deletes all its data
+ </description>
+ <name>destroyTopic</name>
+ <parameter>
+ <name>name</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>boolean</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ List all message counters in HTML
+ </description>
+ <name>listMessageCountersAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Reset all message counters
+ </description>
+ <name>resetAllMessageCounters</name>
+ </operation>
+
+ <operation>
+ <description>
+ Reset all message counter histories
+ </description>
+ <name>resetAllMessageCounterHistories</name>
+ </operation>
+
+ <operation>
+ <description>
+ Enable message counters
+ </description>
+ <name>enableMessageCounters</name>
+ </operation>
+
+ <operation>
+ <description>
+ Disable message counters
+ </description>
+ <name>disableMessageCounters</name>
+ </operation>
+
+ <operation>
+ <description>
+ Retrieve list of all prepared transaction ids
+ </description>
+ <name>retrievePreparedTransactions</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Show of all prepared transaction ids in HTML
+ </description>
+ <name>showPreparedTransactionsAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>
+ Show of all information about active clients
+ </description>
+ <name>showActiveClientsAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+
+</mbean>
Added: branches/Branch_1_4/integration/EAP5/etc/xmdesc/Topic-xmbean.xml
===================================================================
--- branches/Branch_1_4/integration/EAP5/etc/xmdesc/Topic-xmbean.xml (rev 0)
+++ branches/Branch_1_4/integration/EAP5/etc/xmdesc/Topic-xmbean.xml 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE mbean PUBLIC
+ "-//JBoss//DTD JBOSS XMBEAN 1.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_2.dtd">
+
+<mbean>
+ <description>A deployable JBoss Messaging Topic</description>
+ <class>org.jboss.jms.server.destination.TopicService</class>
+
+ <!-- Managed constructors -->
+
+ <constructor>
+ <name>Topic</name>
+ </constructor>
+
+ <constructor>
+ <name>Topic</name>
+ <parameter>
+ <name>IsCreatedProgrammatically</name>
+ <type>boolean</type>
+ </parameter>
+ </constructor>
+
+ <!-- Managed attributes -->
+
+ <attribute access="read-only" getMethod="getName">
+ <description>The destination name</description>
+ <name>Name</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <!-- This attribute is writable to allow configuring an arbitrary JNDI name in the topic's
+ service deployment descriptor. Any attempt to change the attribute after initialization
+ will be ignored.
+ -->
+ <attribute access="read-write" getMethod="getJNDIName" setMethod="setJNDIName">
+ <description>The destination's JNDI name</description>
+ <name>JNDIName</name>
+ <type>java.lang.String</type>
+ </attribute>
+
+ <!-- ServerPeer ObjectName is configured as a dependency optional-attribute-name, this is the
+ only reason for this attribute to be writable. Any write attempt on this attribute after
+ initialization will be ignored.
+ -->
+ <attribute access="read-write" getMethod="getServerPeer" setMethod="setServerPeer">
+ <description>The ObjectName of the server peer this destination was deployed on</description>
+ <name>ServerPeer</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDLQ" setMethod="setDLQ">
+ <description>The DLQ for this queue, overrides the default DLQ on the server peer</description>
+ <name>DLQ</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getExpiryQueue" setMethod="setExpiryQueue">
+ <description>The expiry queue for this queue, overrides the default expiry queue on the server peer</description>
+ <name>ExpiryQueue</name>
+ <type>javax.management.ObjectName</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getRedeliveryDelay" setMethod="setRedeliveryDelay">
+ <description>The delay before redelivering</description>
+ <name>RedeliveryDelay</name>
+ <type>long</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getSecurityConfig" setMethod="setSecurityConfig">
+ <description>The destination's security configuration</description>
+ <name>SecurityConfig</name>
+ <type>org.w3c.dom.Element</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="isCreatedProgrammatically">
+ <description>True if this destination was created programmatically</description>
+ <name>CreatedProgrammatically</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxSize" setMethod="setMaxSize">
+ <description>The maximum number of messages subscriptions of this topic can hold before they are dropped</description>
+ <name>MaxSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getFullSize" setMethod="setFullSize">
+ <description>The in-memory message limit, can only be set when topic is stopped</description>
+ <name>FullSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getPageSize" setMethod="setPageSize">
+ <description>The paging size, can only be set when topic is stopped</description>
+ <name>PageSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getDownCacheSize" setMethod="setDownCacheSize">
+ <description>The write-cache size, can only be set when topic is stopped</description>
+ <name>DownCacheSize</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isClustered" setMethod="setClustered">
+ <description>Is this a clustered destination?</description>
+ <name>Clustered</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="isDropOldMessageOnRedeploy" setMethod="setDropOldMessageOnRedeploy">
+ <description>When you redeploy a topic after changing its clustered state, do you want to keep or abandon its existing messages?</description>
+ <name>DropOldMessageOnRedeploy</name>
+ <type>boolean</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMessageCounterHistoryDayLimit" setMethod="setMessageCounterHistoryDayLimit">
+ <description>The day limit for the message counters of this topic</description>
+ <name>MessageCounterHistoryDayLimit</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-write" getMethod="getMaxDeliveryAttempts" setMethod="setMaxDeliveryAttempts">
+ <description>The maximum delivery attempts to the topic</description>
+ <name>MaxDeliveryAttempts</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getMessageCounters">
+ <description>The message counters for the topic</description>
+ <name>MessageCounters</name>
+ <type>java.util.List</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getAllMessageCount">
+ <description>The count of all messages in all subscriptions of this topic</description>
+ <name>AllMessageCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getDurableMessageCount">
+ <description>The count of all messages in all durable subscriptions of this topic</description>
+ <name>DurableMessageCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getNonDurableMessageCount">
+ <description>The count of all messages in all non durable subscriptions of this topic</description>
+ <name>NonDurableMessageCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getAllSubscriptionsCount">
+ <description>The count of all subscriptions of this topic</description>
+ <name>AllSubscriptionsCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getDurableSubscriptionsCount">
+ <description>The count of all durable subscriptions of this topic</description>
+ <name>DurableSubscriptionsCount</name>
+ <type>int</type>
+ </attribute>
+
+ <attribute access="read-only" getMethod="getNonDurableSubscriptionsCount">
+ <description>The count of all non durable subscriptions of this topic</description>
+ <name>NonDurableSubscriptionsCount</name>
+ <type>int</type>
+ </attribute>
+
+
+ <!-- instance access -->
+
+ <attribute access="read-only" getMethod="getInstance">
+ <description>The instance to be accessed by select plugins via a typed hard reference</description>
+ <name>Instance</name>
+ <type>org.jboss.messaging.core.contract.MessagingComponent</type>
+ </attribute>
+
+ <!-- Managed operations -->
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>create</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>start</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>stop</name>
+ </operation>
+
+ <operation>
+ <description>JBoss Service lifecycle operation</description>
+ <name>destroy</name>
+ </operation>
+
+ <operation>
+ <description>Remove all messages</description>
+ <name>removeAllMessages</name>
+ </operation>
+
+ <operation>
+ <description>Return all subscriptions for the topic</description>
+ <name>listAllSubscriptions</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>Return all durable subscriptions for the topic</description>
+ <name>listDurableSubscriptions</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>Return all non durable subscriptions for the topic</description>
+ <name>listNonDurableSubscriptions</name>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>Return all subscriptions for the topic in HTML</description>
+ <name>listAllSubscriptionsAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>Return all durable subscriptions for the topic in HTML</description>
+ <name>listDurableSubscriptionsAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>Return all non durable subscriptions for the topic in HTML</description>
+ <name>listNonDurableSubscriptionsAsHTML</name>
+ <return-type>java.lang.String</return-type>
+ </operation>
+
+ <operation>
+ <description>List all messages for the specified subscription</description>
+ <name>listAllMessages</name>
+ <parameter>
+ <description>The subscription id</description>
+ <name>subscriptionID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List all messages for the specified subscription with the specified selector</description>
+ <name>listAllMessages</name>
+ <parameter>
+ <description>The subscription id</description>
+ <name>subscriptionID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <description>The selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+
+ <operation>
+ <description>List all durable messages for the specified subscription</description>
+ <name>listDurableMessages</name>
+ <parameter>
+ <description>The subscription id</description>
+ <name>subscriptionID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List all durable messages for the specified subscription with the specified selector</description>
+ <name>listDurableMessages</name>
+ <parameter>
+ <description>The subscription id</description>
+ <name>subscriptionID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <description>The selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List all non durable messages for the specified subscription</description>
+ <name>listNonDurableMessages</name>
+ <parameter>
+ <description>The subscription id</description>
+ <name>subscriptionID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+ <operation>
+ <description>List all non durable messages for the specified subscription with the specified selector</description>
+ <name>listNonDurableMessages</name>
+ <parameter>
+ <description>The subscription id</description>
+ <name>subscriptionID</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <parameter>
+ <description>The selector</description>
+ <name>selector</name>
+ <type>java.lang.String</type>
+ </parameter>
+ <return-type>java.util.List</return-type>
+ </operation>
+
+
+</mbean>
Added: branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/LocalTestServer.java (rev 0)
+++ branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/LocalTestServer.java 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,1157 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2005, JBoss Inc., and individual contributors as indicated by the
+ * @authors tag. See the copyright.txt in the distribution for a full listing of individual contributors. This is free
+ * software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
+ * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
+ * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+ * details. You should have received a copy of the GNU Lesser General Public License along with this software; if not,
+ * write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF
+ * site: http://www.fsf.org.
+ */
+package org.jboss.test.messaging.tools.container;
+
+import org.jboss.aop.AspectXmlLoader;
+import org.jboss.jms.server.DestinationManager;
+import org.jboss.jms.server.ServerPeer;
+import org.jboss.logging.Logger;
+import org.jboss.messaging.core.contract.MessageStore;
+import org.jboss.messaging.core.contract.PersistenceManager;
+import org.jboss.messaging.core.contract.PostOffice;
+import org.jboss.messaging.util.XMLUtil;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.test.messaging.tools.aop.PoisonInterceptor;
+import org.jboss.test.messaging.tools.jboss.MBeanConfigurationElement;
+import org.jboss.test.messaging.tools.jboss.ServiceDeploymentDescriptor;
+import org.w3c.dom.Element;
+
+import javax.jms.Destination;
+import javax.jms.Queue;
+import javax.jms.Topic;
+import javax.management.Attribute;
+import javax.management.NotificationListener;
+import javax.management.ObjectName;
+import javax.transaction.UserTransaction;
+
+import java.io.File;
+import java.net.URL;
+import java.util.*;
+
+/**
+ * @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>1.1</tt> LocalTestServer.java,v 1.1 2006/02/21 08:25:32 timfox Exp
+ */
+public class LocalTestServer implements Server
+{
+ // Constants ------------------------------------------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(LocalTestServer.class);
+
+ // Static ---------------------------------------------------------------------------------------
+
+ public static void setEnvironmentServerIndex(int serverIndex)
+ {
+ System.setProperty(Constants.SERVER_INDEX_PROPERTY_NAME, Integer.toString(serverIndex));
+ }
+
+ public static void clearEnvironmentServerIndex()
+ {
+ System.getProperty(Constants.SERVER_INDEX_PROPERTY_NAME, null);
+ }
+
+ // Attributes -----------------------------------------------------------------------------------
+
+ private ServiceContainer sc;
+
+ // service dependencies
+ private ObjectName persistenceManagerObjectName;
+
+ private ObjectName postOfficeObjectName;
+
+ private ObjectName jmsUserManagerObjectName;
+
+ // the server MBean itself
+ private ObjectName serverPeerObjectName;
+
+ private int serverIndex;
+
+ // Constructors ---------------------------------------------------------------------------------
+
+ public LocalTestServer()
+ {
+ super();
+ }
+
+ public LocalTestServer(int serverIndex)
+ {
+ this();
+
+ this.serverIndex = serverIndex;
+ }
+
+ // Server implementation ------------------------------------------------------------------------
+
+ public int getServerID()
+ {
+ return serverIndex;
+ }
+
+ public void start(String containerConfig, boolean clearDatabase) throws Exception
+ {
+ start(containerConfig, null, clearDatabase, true);
+ }
+
+ public synchronized void start(String containerConfig,
+ ServiceAttributeOverrides attrOverrides,
+ boolean clearDatabase,
+ boolean startMessagingServer) throws Exception
+ {
+ if (isStarted())
+ {
+ return;
+ }
+
+ log.debug("starting service container");
+
+ try
+ {
+ setEnvironmentServerIndex(serverIndex);
+
+ sc = new ServiceContainer(containerConfig, null, serverIndex);
+ sc.start(clearDatabase, attrOverrides);
+
+ if (sc.getDatabaseName().equals("hsqldb") && sc.isClustered())
+ {
+ throw new IllegalStateException("The test server cannot be started in clustered mode with hsqldb as a database - must use a shared database");
+ }
+
+ if ("none".equals(containerConfig))
+ {
+ return;
+ }
+
+ if (startMessagingServer)
+ {
+ startServerPeer(serverIndex, null, null, attrOverrides, sc.isClustered());
+ }
+
+ log.info("Server " + serverIndex + " started");
+ }
+ finally
+ {
+ clearEnvironmentServerIndex();
+ }
+ }
+
+ public synchronized boolean stop() throws Exception
+ {
+ if (!isStarted())
+ {
+ return false;
+ }
+
+ try
+ {
+ setEnvironmentServerIndex(serverIndex);
+
+ stopServerPeer();
+
+ log.debug("stopping service container");
+
+ sc.stop();
+ sc = null;
+
+ log.info("server stopped");
+ }
+ finally
+ {
+ clearEnvironmentServerIndex();
+ }
+
+ return true;
+ }
+
+ public void ping() throws Exception
+ {
+ // noop... do nothing
+ }
+
+ public synchronized void kill() throws Exception
+ {
+ throw new IllegalStateException("Cannot KILL a local server. Consider using stop() instead.");
+ }
+
+ public ObjectName deploy(String mbeanConfiguration) throws Exception
+ {
+ Element mbeanElement = XMLUtil.stringToElement(mbeanConfiguration);
+ MBeanConfigurationElement mbc = new MBeanConfigurationElement(mbeanElement);
+ return sc.registerAndConfigureService(mbc);
+ }
+
+ public void undeploy(ObjectName on) throws Exception
+ {
+ sc.unregisterService(on);
+ }
+
+ public Object getAttribute(ObjectName on, String attribute) throws Exception
+ {
+ return sc.getAttribute(on, attribute);
+ }
+
+ public void setAttribute(ObjectName on, String name, String valueAsString) throws Exception
+ {
+ sc.setAttribute(on, name, valueAsString);
+ }
+
+ public Object invoke(ObjectName on, String operationName, Object[] params, String[] signature) throws Exception
+ {
+ return sc.invoke(on, operationName, params, signature);
+ }
+
+ public void addNotificationListener(ObjectName on, NotificationListener listener) throws Exception
+ {
+ sc.addNotificationListener(on, listener);
+ }
+
+ public void removeNotificationListener(ObjectName on, NotificationListener listener) throws Exception
+ {
+ sc.removeNotificationListener(on, listener);
+ }
+
+ public Set query(ObjectName pattern) throws Exception
+ {
+ return sc.query(pattern);
+ }
+
+ public String getRemotingTransport()
+ {
+ return sc.getRemotingTransport();
+ }
+
+ public void log(int level, String text)
+ {
+ if (ServerManagement.FATAL == level)
+ {
+ log.fatal(text);
+ }
+ else if (ServerManagement.ERROR == level)
+ {
+ log.error(text);
+ }
+ else if (ServerManagement.WARN == level)
+ {
+ log.warn(text);
+ }
+ else if (ServerManagement.INFO == level)
+ {
+ log.info(text);
+ }
+ else if (ServerManagement.DEBUG == level)
+ {
+ log.debug(text);
+ }
+ else if (ServerManagement.TRACE == level)
+ {
+ log.trace(text);
+ }
+ else
+ {
+ // log everything else as INFO
+ log.info(text);
+ }
+ }
+
+ public synchronized boolean isStarted() throws Exception
+ {
+ return sc != null;
+ }
+
+ public void startServerPeer(int serverPeerID,
+ String defaultQueueJNDIContext,
+ String defaultTopicJNDIContext,
+ ServiceAttributeOverrides attrOverrides,
+ boolean clustered) throws Exception
+ {
+ List toStop = new ArrayList();
+ try
+ {
+ log.debug("creating ServerPeer instance");
+
+ // we are using the "default" service deployment descriptors available in
+ // src/etc/server/default/deploy. This will allow to test the default parameters we ship.
+
+ String mainConfigFile = "server/default/deploy/messaging-service.xml";
+
+ String persistenceConfigFile = sc.getPersistenceConfigFile(clustered);
+
+ log.info(" Persistence config file .. " + persistenceConfigFile);
+
+ ServiceDeploymentDescriptor mdd = ServiceConfigHelper.loadConfigFile(mainConfigFile);
+
+ ServiceDeploymentDescriptor pdd = ServiceConfigHelper.loadConfigFile(persistenceConfigFile);
+
+ MBeanConfigurationElement persistenceManagerConfig = ServiceConfigHelper.getServiceConfiguration(pdd,
+ "PersistenceManager");
+ persistenceManagerObjectName = sc.registerAndConfigureService(persistenceManagerConfig);
+ overrideAttributes(persistenceManagerObjectName, attrOverrides);
+ toStop.add(persistenceManagerObjectName);
+ sc.invoke(persistenceManagerObjectName, "create", new Object[0], new String[0]);
+ sc.invoke(persistenceManagerObjectName, "start", new Object[0], new String[0]);
+
+ MBeanConfigurationElement jmsUserManagerConfig = ServiceConfigHelper.getServiceConfiguration(pdd,
+ "JMSUserManager");
+ jmsUserManagerObjectName = sc.registerAndConfigureService(jmsUserManagerConfig);
+ overrideAttributes(jmsUserManagerObjectName, attrOverrides);
+ toStop.add(jmsUserManagerObjectName);
+ sc.invoke(jmsUserManagerObjectName, "create", new Object[0], new String[0]);
+ sc.invoke(jmsUserManagerObjectName, "start", new Object[0], new String[0]);
+ // regioster metadatasore
+ /*
+ * MBeanConfigurationElement securityStoreConfig = ServiceConfigHelper.getServiceConfiguration(mdd,
+ * "SecurityStore"); securityStoreObjectname = sc.registerAndConfigureService(securityStoreConfig);
+ * toStop.add(securityStoreObjectname);
+ */
+
+ // register server peer as a service, dependencies are injected automatically
+ MBeanConfigurationElement serverPeerConfig = ServiceConfigHelper.getServiceConfiguration(mdd, "ServerPeer");
+
+ // overwrite the file configuration, if needed
+ overrideServerPeerConfiguration(serverPeerConfig,
+ serverPeerID,
+ defaultQueueJNDIContext,
+ defaultTopicJNDIContext);
+
+ serverPeerObjectName = sc.registerAndConfigureService(serverPeerConfig);
+
+ overrideAttributes(serverPeerObjectName, attrOverrides);
+
+ // ServerPeer serverPeer = (ServerPeer) sc.getMBeanServer().
+
+ log.debug("starting JMS server");
+
+ toStop.add(serverPeerObjectName);
+ sc.getMBeanServer()
+ .setAttribute(serverPeerObjectName, new Attribute("SecurityStore", sc.startSecurityStore()));
+ sc.invoke(serverPeerObjectName, "create", new Object[0], new String[0]);
+ sc.invoke(serverPeerObjectName, "start", new Object[0], new String[0]);
+
+ MBeanConfigurationElement postOfficeConfig = ServiceConfigHelper.getServiceConfiguration(pdd, "PostOffice");
+
+ postOfficeObjectName = sc.registerAndConfigureService(postOfficeConfig);
+ sc.setAttribute(postOfficeObjectName, "Clustered", clustered ? "true" : "false");
+
+ overrideAttributes(postOfficeObjectName, attrOverrides);
+ toStop.add(postOfficeObjectName);
+
+ sc.invoke(postOfficeObjectName, "create", new Object[0], new String[0]);
+ sc.invoke(postOfficeObjectName, "start", new Object[0], new String[0]);
+ log.debug("deploying connection factories");
+
+ sc.startConnectionFactories(attrOverrides);
+ }
+ catch (Exception e)
+ {
+ log.error("Failed to start", e);
+
+ // Now we need to shutdown any services we did start
+ for (int i = toStop.size() - 1; i >= 0; i--)
+ {
+ ObjectName on = (ObjectName)toStop.get(i);
+ log.info("stopping: " + on);
+ try
+ {
+ sc.unregisterService(on);
+ }
+ catch (Exception ignore)
+ {
+ }
+ }
+
+ throw e;
+ }
+ }
+
+ public void stopServerPeer() throws Exception
+ {
+ if (!isServerPeerStarted())
+ {
+ log.debug("messaging server was not started, so there is no stopping");
+ return;
+ }
+
+ try
+ {
+ // if we don't find a ServerPeer instance registered under the serverPeerObjectName
+ // ObjectName, we assume that the server was already stopped and we silently exit
+ if (sc.query(serverPeerObjectName).isEmpty())
+ {
+ log.warn("ServerPeer already stopped");
+ return;
+ }
+
+ // unbind the JCA ConnectionFactory; nothing happens if no connection factory is bound
+ sc.unbindJCAJMSConnectionFactory();
+ sc.unbindDefaultJMSProvider();
+
+ log.debug("stopping connection factories");
+
+ sc.stopConnectionFactories();
+
+ log.debug("stopping all destinations");
+
+ try
+ {
+ Set destinations = (Set)sc.getAttribute(serverPeerObjectName, "Destinations");
+
+ for (Iterator i = destinations.iterator(); i.hasNext();)
+ {
+ String name;
+ boolean isQueue = true;
+ Destination d = (Destination)i.next();
+ if (d instanceof Queue)
+ {
+ name = ((Queue)d).getQueueName();
+ }
+ else
+ {
+ isQueue = false;
+ name = ((Topic)d).getTopicName();
+ }
+
+ try
+ {
+ undeployDestination(isQueue, name);
+ }
+ catch (Exception e)
+ {
+ // needs to be resilient
+ }
+ }
+ }
+ catch (Exception ignore)
+ {
+ // Needs to be resilient on close
+ }
+
+ log.debug("stopping JMS server");
+
+ try
+ {
+ sc.invoke(serverPeerObjectName, "stop", new Object[0], new String[0]);
+ sc.invoke(serverPeerObjectName, "destroy", new Object[0], new String[0]);
+ sc.unregisterService(serverPeerObjectName);
+ sc.invoke(ServiceContainer.SECURITYSTORE_OBJECT_NAME, "stop", new Object[0], new String[0]);
+ sc.unregisterService(ServiceContainer.SECURITYSTORE_OBJECT_NAME);
+ }
+ catch (Exception ignore)
+ {
+ // If the serverpeer failed when starting up previously, then only some of the
+ // services may be started. The ones that didn't start will fail when attempting to shut
+ // them down.
+ // Hence we must catch and ignore or we won't shut everything down
+ }
+
+ log.debug("stopping ServerPeer's plug-in dependencies");
+
+ try
+ {
+ sc.invoke(jmsUserManagerObjectName, "stop", new Object[0], new String[0]);
+ sc.invoke(jmsUserManagerObjectName, "destroy", new Object[0], new String[0]);
+ sc.unregisterService(jmsUserManagerObjectName);
+ }
+ catch (Exception ignore)
+ {
+ // If the serverpeer failed when starting up previously, then only some of the
+ // services may be started. The ones that didn't start will fail when attempting to shut
+ // them down.
+ // Hence we must catch and ignore or we won't shut everything down
+ }
+
+ try
+ {
+ sc.invoke(postOfficeObjectName, "stop", new Object[0], new String[0]);
+ sc.invoke(postOfficeObjectName, "destroy", new Object[0], new String[0]);
+ sc.unregisterService(postOfficeObjectName);
+ }
+ catch (Exception ignore)
+ {
+ // If the serverpeer failed when starting up previously, then only some of the
+ // services may be started. The ones that didn't start will fail when attempting to shut
+ // them down.
+ // Hence we must catch and ignore or we won't shut everything down
+ }
+
+ try
+ {
+ sc.invoke(persistenceManagerObjectName, "stop", new Object[0], new String[0]);
+ sc.invoke(persistenceManagerObjectName, "destroy", new Object[0], new String[0]);
+ sc.unregisterService(persistenceManagerObjectName);
+ }
+ catch (Exception ignore)
+ {
+ // If the serverpeer failed when starting up previously, then only some of the
+ // services may be started. The ones that didn't start will fail when attempting to shut
+ // them down.
+ // Hence we must catch and ignore or we won't shut everything down
+ }
+ }
+ catch (Exception e)
+ {
+ log.error("Failed to stop server peer", e);
+ throw e;
+ }
+ }
+
+ public boolean isServerPeerStarted() throws Exception
+ {
+ if (sc.query(serverPeerObjectName).isEmpty())
+ {
+ return false;
+ }
+ ServerPeer sp = (ServerPeer)sc.getAttribute(serverPeerObjectName, "Instance");
+ sp.getVersion();
+ return true;
+ }
+
+ public ObjectName getServerPeerObjectName()
+ {
+ return serverPeerObjectName;
+ }
+
+ public Set getConnectorSubsystems() throws Exception
+ {
+ RemotingJMXWrapper remoting = (RemotingJMXWrapper)sc.getService(ServiceContainer.REMOTING_OBJECT_NAME);
+
+ return remoting.getConnectorSubsystems();
+ }
+
+ public void addServerInvocationHandler(String subsystem, ServerInvocationHandler handler) throws Exception
+ {
+ RemotingJMXWrapper remoting = (RemotingJMXWrapper)sc.getService(ServiceContainer.REMOTING_OBJECT_NAME);
+
+ remoting.addInvocationHandler(subsystem, handler);
+ }
+
+ public void removeServerInvocationHandler(String subsystem) throws Exception
+ {
+ RemotingJMXWrapper remoting = (RemotingJMXWrapper)sc.getService(ServiceContainer.REMOTING_OBJECT_NAME);
+
+ remoting.removeInvocationHandler(subsystem);
+ }
+
+ /**
+ * Only for in-VM use!
+ */
+ public MessageStore getMessageStore() throws Exception
+ {
+ ServerPeer serverPeer = (ServerPeer)sc.getAttribute(serverPeerObjectName, "Instance");
+ return serverPeer.getMessageStore();
+ }
+
+ public DestinationManager getDestinationManager() throws Exception
+ {
+ ServerPeer serverPeer = (ServerPeer)sc.getAttribute(serverPeerObjectName, "Instance");
+ return serverPeer.getDestinationManager();
+ }
+
+ public PersistenceManager getPersistenceManager() throws Exception
+ {
+ ServerPeer serverPeer = (ServerPeer)sc.getAttribute(serverPeerObjectName, "Instance");
+ return serverPeer.getPersistenceManagerInstance();
+ }
+
+ /**
+ * Only for in-VM use!
+ */
+ public ServerPeer getServerPeer() throws Exception
+ {
+ return (ServerPeer)sc.getAttribute(serverPeerObjectName, "Instance");
+ }
+
+ public void deployTopic(String name, String jndiName, boolean clustered) throws Exception
+ {
+ deployDestination(false, name, jndiName, clustered);
+ }
+
+ public void deployTopic(String name,
+ String jndiName,
+ int fullSize,
+ int pageSize,
+ int downCacheSize,
+ boolean clustered) throws Exception
+ {
+ deployDestination(false, name, jndiName, fullSize, pageSize, downCacheSize, clustered);
+ }
+
+ public void deployTopicProgrammatically(String name, String jndiName) throws Exception
+ {
+ sc.invoke(serverPeerObjectName,
+ "deployTopic",
+ new Object[] { name, jndiName },
+ new String[] { "java.lang.String", "java.lang.String" });
+ }
+
+ public void deployQueue(String name, String jndiName, boolean clustered) throws Exception
+ {
+ deployDestination(true, name, jndiName, clustered);
+ }
+
+ public void deployQueue(String name,
+ String jndiName,
+ int fullSize,
+ int pageSize,
+ int downCacheSize,
+ boolean clustered) throws Exception
+ {
+ deployDestination(true, name, jndiName, fullSize, pageSize, downCacheSize, clustered);
+ }
+
+ public void deployQueueProgrammatically(String name, String jndiName) throws Exception
+ {
+ sc.invoke(serverPeerObjectName,
+ "deployQueue",
+ new Object[] { name, jndiName },
+ new String[] { "java.lang.String", "java.lang.String" });
+ }
+
+ public ObjectName deployQueueWithDLQnExpiryQ(String q, String dlq, String expq) throws Exception
+ {
+ String config = "<mbean code=\"org.jboss.jms.server.destination." + "QueueService" +
+ "\"" +
+ " name=\"jboss.messaging.destination:service=" +
+ "Queue" +
+ ",name=" +
+ q +
+ "\"" +
+ " xmbean-dd=\"xmdesc/" +
+ "Queue" +
+ "-xmbean.xml\">" +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>" +
+ " <depends>jboss.messaging:service=PostOffice</depends>" +
+ " <attribute name=\"DLQ\">" +
+ "jboss.messaging.destination:service=Queue,name=" +
+ dlq +
+ "</attribute>" +
+ " <attribute name=\"ExpiryQueue\">" +
+ "jboss.messaging.destination:service=Queue,name=" +
+ expq +
+ "</attribute>" +
+ "</mbean>";
+
+ MBeanConfigurationElement mbean = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName deston = sc.registerAndConfigureService(mbean);
+ sc.invoke(deston, "create", new Object[0], new String[0]);
+ // sc.invoke(deston, "start", new Object[0], new String[0]);
+ return deston;
+ }
+
+ public ObjectName deployTopicWithDLQnExpiryQ(String topic, String dlq, String expq) throws Exception
+ {
+ String config = "<mbean code=\"org.jboss.jms.server.destination." + "TopicService" +
+ "\"" +
+ " name=\"jboss.messaging.destination:service=" +
+ "Topic" +
+ ",name=" +
+ topic +
+ "\"" +
+ " xmbean-dd=\"xmdesc/" +
+ "Topic" +
+ "-xmbean.xml\">" +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>" +
+ " <depends>jboss.messaging:service=PostOffice</depends>" +
+ " <attribute name=\"DLQ\">" +
+ "jboss.messaging.destination:service=Queue,name=" +
+ dlq +
+ "</attribute>" +
+ " <attribute name=\"ExpiryQueue\">" +
+ "jboss.messaging.destination:service=Queue,name=" +
+ expq +
+ "</attribute>" +
+ "</mbean>";
+
+ MBeanConfigurationElement mbean = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName deston = sc.registerAndConfigureService(mbean);
+ sc.invoke(deston, "create", new Object[0], new String[0]);
+ return deston;
+ }
+
+ public ObjectName deployQueueWithoutStart(String q, String jndiName, boolean b) throws Exception
+ {
+ String config = "<mbean code=\"org.jboss.jms.server.destination." + "QueueService" +
+ "\"" +
+ " name=\"jboss.messaging.destination:service=" +
+ "Queue" +
+ ",name=" +
+ q +
+ "\"" +
+ " xmbean-dd=\"xmdesc/" +
+ "Queue" +
+ "-xmbean.xml\">" +
+ (jndiName != null ? " <attribute name=\"JNDIName\">" + jndiName + "</attribute>" : "") +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>" +
+ " <depends>jboss.messaging:service=PostOffice</depends>" +
+ " <attribute name=\"Clustered\">" +
+ String.valueOf(b) +
+ "</attribute>" +
+ "</mbean>";
+
+ MBeanConfigurationElement mbean = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName deston = sc.registerAndConfigureService(mbean);
+ sc.invoke(deston, "create", new Object[0], new String[0]);
+ return deston;
+ }
+
+ /**
+ * start the services.
+ */
+ public void startDestinationService(ObjectName[] objectNames) throws Exception
+ {
+ for (ObjectName sv : objectNames)
+ {
+ sc.invoke(sv, "start", new Object[0], new String[0]);
+ }
+ }
+
+ public void deployDestination(boolean isQueue, String name, String jndiName, boolean clustered) throws Exception
+ {
+ String config = "<mbean code=\"org.jboss.jms.server.destination." + (isQueue ? "QueueService" : "TopicService") +
+ "\"" +
+ " name=\"jboss.messaging.destination:service=" +
+ (isQueue ? "Queue" : "Topic") +
+ ",name=" +
+ name +
+ "\"" +
+ " xmbean-dd=\"xmdesc/" +
+ (isQueue ? "Queue" : "Topic") +
+ "-xmbean.xml\">" +
+ (jndiName != null ? " <attribute name=\"JNDIName\">" + jndiName + "</attribute>" : "") +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>" +
+ " <attribute name=\"Clustered\">" +
+ String.valueOf(clustered) +
+ "</attribute>" +
+ "</mbean>";
+
+ MBeanConfigurationElement mbean = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName deston = sc.registerAndConfigureService(mbean);
+ sc.invoke(deston, "create", new Object[0], new String[0]);
+ sc.invoke(deston, "start", new Object[0], new String[0]);
+ }
+
+ public void deployDestination(boolean isQueue, String name, String jndiName, boolean clustered, boolean keepMessage) throws Exception
+ {
+ String config = "<mbean code=\"org.jboss.jms.server.destination." + (isQueue ? "QueueService" : "TopicService") +
+ "\"" +
+ " name=\"jboss.messaging.destination:service=" +
+ (isQueue ? "Queue" : "Topic") +
+ ",name=" +
+ name +
+ "\"" +
+ " xmbean-dd=\"xmdesc/" +
+ (isQueue ? "Queue" : "Topic") +
+ "-xmbean.xml\">" +
+ (jndiName != null ? " <attribute name=\"JNDIName\">" + jndiName + "</attribute>" : "") +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>" +
+ " <attribute name=\"Clustered\">" +
+ String.valueOf(clustered) +
+ "</attribute>" +
+ " <attribute name=\"DropOldMessageOnRedeploy\">" +
+ String.valueOf(!keepMessage) +
+ "</attribute>" +
+ "</mbean>";
+
+ MBeanConfigurationElement mbean = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName deston = sc.registerAndConfigureService(mbean);
+ sc.invoke(deston, "create", new Object[0], new String[0]);
+ sc.invoke(deston, "start", new Object[0], new String[0]);
+ }
+
+ public void deployDestination(boolean isQueue,
+ String name,
+ String jndiName,
+ int fullSize,
+ int pageSize,
+ int downCacheSize,
+ boolean clustered) throws Exception
+ {
+ log.info("deploying queue, fullsize:" + fullSize + ", ps:" + pageSize + " dc size:" + downCacheSize);
+
+ String config = "<mbean code=\"org.jboss.jms.server.destination." + (isQueue ? "QueueService" : "TopicService") +
+ "\"" +
+ " name=\"jboss.messaging.destination:service=" +
+ (isQueue ? "Queue" : "Topic") +
+ ",name=" +
+ name +
+ "\"" +
+ " xmbean-dd=\"xmdesc/" +
+ (isQueue ? "Queue" : "Topic") +
+ "-xmbean.xml\">" +
+ (jndiName != null ? " <attribute name=\"JNDIName\">" + jndiName + "</attribute>" : "") +
+ " <depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>" +
+ " <attribute name=\"FullSize\">" +
+ fullSize +
+ "</attribute>" +
+ " <attribute name=\"PageSize\">" +
+ pageSize +
+ "</attribute>" +
+ " <attribute name=\"DownCacheSize\">" +
+ downCacheSize +
+ "</attribute>" +
+ " <attribute name=\"Clustered\">" +
+ String.valueOf(clustered) +
+ "</attribute>" +
+ "</mbean>";
+
+ MBeanConfigurationElement mbean = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName deston = sc.registerAndConfigureService(mbean);
+ sc.invoke(deston, "create", new Object[0], new String[0]);
+ sc.invoke(deston, "start", new Object[0], new String[0]);
+ }
+
+ public void undeployDestination(boolean isQueue, String name) throws Exception
+ {
+ ObjectName pattern = new ObjectName("*:service=" + (isQueue ? "Queue" : "Topic") + ",name=" + name);
+ Set s = sc.query(pattern);
+ int size = s.size();
+ if (size == 0)
+ {
+ log.debug("No such " + (isQueue ? "queue" : "topic") + " to undeploy: " + name);
+ return;
+ }
+ if (size > 1)
+ {
+ throw new Exception("Too many destination with the same name: " + name);
+ }
+ ObjectName destinationObjectName = (ObjectName)s.iterator().next();
+ sc.invoke(destinationObjectName, "stop", new Object[0], new String[0]);
+ sc.invoke(destinationObjectName, "destroy", new Object[0], new String[0]);
+ sc.unregisterService(destinationObjectName);
+ }
+
+ public boolean undeployDestinationProgrammatically(boolean isQueue, String name) throws Exception
+ {
+ if (isQueue)
+ {
+ return ((Boolean)sc.invoke(serverPeerObjectName,
+ "undeployQueue",
+ new Object[] { name },
+ new String[] { "java.lang.String" })).booleanValue();
+ }
+ else
+ {
+ return ((Boolean)sc.invoke(serverPeerObjectName,
+ "undeployTopic",
+ new Object[] { name },
+ new String[] { "java.lang.String" })).booleanValue();
+ }
+ }
+
+ public void deployConnectionFactory(String objectName, String[] jndiBindings, int prefetchSize) throws Exception
+ {
+ deployConnectionFactory(objectName, jndiBindings, prefetchSize, -1, -1, -1, false, false, false, null);
+ }
+
+ public void deployConnectionFactory(String objectName, String[] jndiBindings) throws Exception
+ {
+ deployConnectionFactory(objectName, jndiBindings, -1, -1, -1, -1, false, false, false, null);
+ }
+
+ public void deployConnectionFactory(String objectName, String[] jndiBindings, boolean strictTck) throws Exception
+ {
+ deployConnectionFactory(objectName, jndiBindings, -1, -1, -1, -1, false, false, strictTck, null);
+ }
+
+ public void deployConnectionFactory(String objectName,
+ String[] jndiBindings,
+ int prefetchSize,
+ int defaultTempQueueFullSize,
+ int defaultTempQueuePageSize,
+ int defaultTempQueueDownCacheSize) throws Exception
+ {
+ this.deployConnectionFactory(objectName,
+ jndiBindings,
+ prefetchSize,
+ defaultTempQueueFullSize,
+ defaultTempQueuePageSize,
+ defaultTempQueueDownCacheSize,
+ false,
+ false,
+ false,
+ null);
+ }
+
+ public void deployConnectionFactory(String objectName,
+ String[] jndiBindings,
+ boolean supportsFailover,
+ boolean supportsLoadBalancing) throws Exception
+ {
+ this.deployConnectionFactory(objectName,
+ jndiBindings,
+ -1,
+ -1,
+ -1,
+ -1,
+ supportsFailover,
+ supportsLoadBalancing,
+ false,
+ null);
+ }
+
+ public void deployConnectionFactory(String objectName,
+ String[] jndiBindings,
+ boolean supportsFailover,
+ boolean supportsLoadBalancing,
+ String clientID) throws Exception
+ {
+ this.deployConnectionFactory(objectName,
+ jndiBindings,
+ -1,
+ -1,
+ -1,
+ -1,
+ supportsFailover,
+ supportsLoadBalancing,
+ false,
+ clientID);
+ }
+
+ private void deployConnectionFactory(String objectName,
+ String[] jndiBindings,
+ int prefetchSize,
+ int defaultTempQueueFullSize,
+ int defaultTempQueuePageSize,
+ int defaultTempQueueDownCacheSize,
+ boolean supportsFailover,
+ boolean supportsLoadBalancing,
+ boolean strictTck,
+ String clientID) throws Exception
+ {
+ log.trace("deploying connection factory with name: " + objectName);
+
+ String config = "<mbean code=\"org.jboss.jms.server.connectionfactory.ConnectionFactory\"\n" + "name=\"" +
+ objectName +
+ "\"\n" +
+ "xmbean-dd=\"xmdesc/ConnectionFactory-xmbean.xml\">\n" +
+ "<depends optional-attribute-name=\"ServerPeer\">jboss.messaging:service=ServerPeer</depends>\n" +
+ "<depends optional-attribute-name=\"Connector\">" +
+ ServiceContainer.REMOTING_OBJECT_NAME +
+ "</depends>\n";
+ // <arg type="java.lang.String" value="MyClientID"/>
+ if (clientID != null)
+ {
+ config += "<constructor><arg type=\"java.lang.String\" value=\"" + clientID + "\"/> </constructor>\n";
+ }
+
+ if (defaultTempQueueFullSize != -1)
+ {
+ config += "<attribute name=\"DefaultTempQueueFullSize\">" + defaultTempQueueFullSize + "</attribute>\n";
+ }
+
+ if (defaultTempQueuePageSize != -1)
+ {
+ config += "<attribute name=\"DefaultTempQueuePageSize\">" + defaultTempQueuePageSize + "</attribute>\n";
+ }
+
+ if (defaultTempQueueDownCacheSize != -1)
+ {
+ config += "<attribute name=\"DefaultTempQueueDownCacheSize\">" + defaultTempQueueDownCacheSize +
+ "</attribute>\n";
+ }
+
+ if (prefetchSize != -1)
+ {
+ config += "<attribute name=\"PrefetchSize\">" + prefetchSize + "</attribute>";
+ }
+
+ config += "<attribute name=\"SupportsFailover\">" + supportsFailover + "</attribute>";
+ config += "<attribute name=\"SupportsLoadBalancing\">" + supportsLoadBalancing + "</attribute>";
+ config += "<attribute name=\"StrictTck\">" + strictTck + "</attribute>";
+ if (jndiBindings != null)
+ {
+ config += "<attribute name=\"JNDIBindings\"><bindings>";
+
+ for (int i = 0; i < jndiBindings.length; i++)
+ {
+ config += "<binding>" + jndiBindings[i] + "</binding>\n";
+ }
+ config += "</bindings></attribute>";
+ }
+ config += "</mbean>";
+
+ MBeanConfigurationElement mc = new MBeanConfigurationElement(XMLUtil.stringToElement(config));
+ ObjectName on = sc.registerAndConfigureService(mc);
+
+ log.trace("Object name is now: " + on);
+
+ sc.invoke(on, "create", new Object[0], new String[0]);
+ sc.invoke(on, "start", new Object[0], new String[0]);
+ }
+
+ public void undeployConnectionFactory(ObjectName objectName) throws Exception
+ {
+ sc.invoke(objectName, "stop", new Object[0], new String[0]);
+ sc.invoke(objectName, "destroy", new Object[0], new String[0]);
+ sc.unregisterService(objectName);
+ }
+
+ public void configureSecurityForDestination(String destName, String config) throws Exception
+ {
+ Set s = sc.query(new ObjectName("*:service=Queue,name=" + destName));
+ for (Iterator i = s.iterator(); i.hasNext();)
+ {
+ ObjectName on = (ObjectName)i.next();
+ sc.setAttribute(on, "SecurityConfig", config);
+ }
+
+ s = sc.query(new ObjectName("*:service=Topic,name=" + destName));
+ for (Iterator i = s.iterator(); i.hasNext();)
+ {
+ ObjectName on = (ObjectName)i.next();
+ sc.setAttribute(on, "SecurityConfig", config);
+ }
+ }
+
+ public void setDefaultSecurityConfig(String config) throws Exception
+ {
+ sc.setAttribute(ServiceContainer.SECURITYSTORE_OBJECT_NAME, "DefaultSecurityConfig", config);
+ }
+
+ public String getDefaultSecurityConfig() throws Exception
+ {
+ Element element = (Element)sc.getAttribute(ServiceContainer.SECURITYSTORE_OBJECT_NAME, "DefaultSecurityConfig");
+ return XMLUtil.elementToString(element);
+ }
+
+ public Object executeCommand(Command command) throws Exception
+ {
+ return command.execute(this);
+ }
+
+ public UserTransaction getUserTransaction() throws Exception
+ {
+ return sc.getUserTransaction();
+ }
+
+ public Set getNodeIDView() throws Exception
+ {
+ PostOffice postOffice = (PostOffice)sc.getAttribute(postOfficeObjectName, "Instance");
+
+ return postOffice.nodeIDView();
+ }
+
+ public Map getFailoverMap() throws Exception
+ {
+ PostOffice postOffice = (PostOffice)sc.getAttribute(postOfficeObjectName, "Instance");
+
+ return postOffice.getFailoverMap();
+ }
+
+ public Map getRecoveryArea(String queueName) throws Exception
+ {
+ PostOffice postOffice = (PostOffice)sc.getAttribute(postOfficeObjectName, "Instance");
+
+ return postOffice.getRecoveryArea(queueName);
+ }
+
+ public int getRecoveryMapSize(String queueName) throws Exception
+ {
+ PostOffice postOffice = (PostOffice)sc.getAttribute(postOfficeObjectName, "Instance");
+
+ return postOffice.getRecoveryMapSize(queueName);
+ }
+
+ public List pollNotificationListener(long listenerID) throws Exception
+ {
+ throw new IllegalStateException("Poll doesn't make sense on a local server. " + "Register listeners directly instead.");
+ }
+
+ public void poisonTheServer(int type) throws Exception
+ {
+ URL url = this.getClass().getClassLoader().getResource("poison.xml");
+ if (url == null) // JBMESSAGING-1222 - Hack for OSX JVM Bug when testing the remote connectors
+ { // (Assumes tests are being executed is the jboss-messaging/tests directory)
+
+ url = (new File("etc/poison.xml")).toURL();
+ }
+ AspectXmlLoader.deployXML(url);
+
+ log.debug(url + " deployed");
+
+ PoisonInterceptor.setType(type);
+ }
+
+ public void flushManagedConnectionPool()
+ {
+ sc.flushManagedConnectionPool();
+ }
+
+ public void resetAllSuckers() throws Exception
+ {
+ getServerPeer().resetAllSuckers();
+ }
+
+ // Public ---------------------------------------------------------------------------------------
+
+ // Package protected ----------------------------------------------------------------------------
+
+ // Protected ------------------------------------------------------------------------------------
+
+ protected ServiceContainer getServiceContainer()
+ {
+ return sc;
+ }
+
+ protected void overrideServerPeerConfiguration(MBeanConfigurationElement config,
+ int serverPeerID,
+ String defaultQueueJNDIContext,
+ String defaultTopicJNDIContext) throws Exception
+ {
+ config.setAttribute("ServerPeerID", Integer.toString(serverPeerID));
+ config.setAttribute("DefaultQueueJNDIContext", defaultQueueJNDIContext == null ? "/queue"
+ : defaultQueueJNDIContext);
+ config.setAttribute("DefaultTopicJNDIContext", defaultTopicJNDIContext == null ? "/topic"
+ : defaultTopicJNDIContext);
+ }
+
+ // Private --------------------------------------------------------------------------------------
+
+ private void overrideAttributes(ObjectName on, ServiceAttributeOverrides attrOverrides) throws Exception
+ {
+ if (attrOverrides == null)
+ {
+ return;
+ }
+
+ Map sao = attrOverrides.get(on);
+
+ for (Iterator i = sao.entrySet().iterator(); i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String attrName = (String)entry.getKey();
+ Object attrValue = entry.getValue();
+ sc.setAttribute(on, attrName, attrValue.toString());
+
+ }
+ }
+
+
+ public ObjectName getPostOfficeObjectName()
+ {
+ return postOfficeObjectName;
+ }
+
+ public void deployQueue(String name, String jndiName, boolean clustered, boolean keepMessage) throws Exception
+ {
+ deployDestination(true, name, jndiName, clustered, keepMessage);
+ }
+
+ public void deployTopic(String name, String jndiName, boolean clustered, boolean keepMessage) throws Exception
+ {
+ deployDestination(false, name, jndiName, clustered, keepMessage);
+
+ }
+
+ // Inner classes --------------------------------------------------------------------------------
+
+}
Added: branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/ServiceContainer.java
===================================================================
--- branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/ServiceContainer.java (rev 0)
+++ branches/Branch_1_4/integration/EAP5/tests-src/org/jboss/test/messaging/tools/container/ServiceContainer.java 2009-11-02 05:01:30 UTC (rev 7887)
@@ -0,0 +1,1775 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.messaging.tools.container;
+
+import com.arjuna.ats.arjuna.recovery.RecoveryManager;
+import org.hsqldb.Server;
+import org.hsqldb.persist.HsqlProperties;
+import org.jboss.jms.jndi.JMSProviderAdapter;
+import org.jboss.jms.jndi.JNDIProviderAdapter;
+import org.jboss.jms.server.ServerPeer;
+import org.jboss.jms.server.remoting.JMSServerInvocationHandler;
+import org.jboss.jms.server.security.SecurityMetadataStore;
+import org.jboss.logging.Logger;
+import org.jboss.messaging.util.JNDIUtil;
+import org.jboss.messaging.util.XMLUtil;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.ServerInvocationHandler;
+import org.jboss.remoting.transport.PortUtil;
+import org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory;
+import org.jboss.resource.adapter.jdbc.remote.WrapperDataSourceService;
+import org.jboss.resource.adapter.jms.JmsManagedConnectionFactory;
+import org.jboss.resource.connectionmanager.*;
+import org.jboss.system.Registry;
+import org.jboss.system.ServiceController;
+import org.jboss.system.ServiceCreator;
+import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.test.messaging.tools.jboss.MBeanConfigurationElement;
+import org.jboss.test.messaging.tools.jboss.ServiceDeploymentDescriptor;
+import org.jboss.tm.TransactionManagerService;
+import org.jboss.tm.usertx.client.ServerVMClientUserTransaction;
+import org.jboss.util.id.GUID;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import javax.management.*;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.spi.NamingManager;
+import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
+import javax.transaction.UserTransaction;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URL;
+import java.sql.*;
+import java.util.*;
+
+/**
+ * An MBeanServer and a configurable set of services (TransactionManager, Remoting, etc) available
+ * for testing.
+ *
+ * @author <a href="mailto:ovidiu at feodorov.com">Ovidiu Feodorov</a>
+ * @version <tt>$Revision: 4986 $</tt>
+ *
+ * $Id: ServiceContainer.java 4986 2008-09-18 22:11:43Z clebert.suconic at jboss.com $
+ */
+public class ServiceContainer
+{
+ // Constants ------------------------------------------------------------------------------------
+
+ private static final Logger log = Logger.getLogger(ServiceContainer.class);
+
+ private static final String CONFIGURATION_FILE_NAME = "container.xml";
+
+ public static final String DO_NOT_USE_MESSAGING_MARSHALLERS = "DO_NOT_USE_MESSAGING_MARSHALLERS";
+
+ // Static ---------------------------------------------------------------------------------------
+
+ public static ObjectName SERVICE_CONTROLLER_OBJECT_NAME;
+ public static ObjectName CLASS_LOADER_OBJECT_NAME;
+ public static ObjectName TRANSACTION_MANAGER_OBJECT_NAME;
+ public static ObjectName CACHED_CONNECTION_MANAGER_OBJECT_NAME;
+
+ public static ObjectName DEFAULTDS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME;
+ public static ObjectName DEFAULTDS_MANAGED_CONNECTION_POOL_OBJECT_NAME;
+ public static ObjectName DEFAULTDS_CONNECTION_MANAGER_OBJECT_NAME;
+ public static ObjectName DEFAULTDS_WRAPPER_DATA_SOURCE_SERVICE_OBJECT_NAME;
+
+ public static ObjectName JMS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME;
+ public static ObjectName JMS_MANAGED_CONNECTION_POOL_OBJECT_NAME;
+ public static ObjectName JMS_CONNECTION_MANAGER_OBJECT_NAME;
+ public static ObjectName JMS_CONNECTION_FACTORY_BINDING_SERVICE_OBJECT_NAME;
+ public static ObjectName SECURITYSTORE_OBJECT_NAME;
+
+ public static ObjectName REMOTING_OBJECT_NAME;
+
+ // Used only on testcases where Socket and HTTP are deployed at the same time
+ public static ObjectName HTTP_REMOTING_OBJECT_NAME;
+
+ public static ObjectName SERVER_PEER_OBJECT_NAME;
+
+ public static String DATA_SOURCE_JNDI_NAME = "java:/DefaultDS";
+ public static String TRANSACTION_MANAGER_JNDI_NAME = "java:/TransactionManager";
+ public static String USER_TRANSACTION_JNDI_NAME = "UserTransaction";
+ public static String JCA_JMS_CONNECTION_FACTORY_JNDI_NAME = "java:/JCAConnectionFactory";
+
+ // Must match the value in remoting-http-service.xml
+ public static long HTTP_CONNECTOR_CALLBACK_POLL_PERIOD = 102;
+
+ // List<ObjectName>
+ private List connFactoryObjectNames = new ArrayList();
+
+ static
+ {
+ try
+ {
+ SERVICE_CONTROLLER_OBJECT_NAME =
+ new ObjectName("jboss.system:service=ServiceController");
+ CLASS_LOADER_OBJECT_NAME =
+ new ObjectName("jboss.system:service=ClassLoader");
+ TRANSACTION_MANAGER_OBJECT_NAME =
+ new ObjectName("jboss:service=TransactionManager");
+ CACHED_CONNECTION_MANAGER_OBJECT_NAME =
+ new ObjectName("jboss.jca:service=CachedConnectionManager");
+
+ DEFAULTDS_CONNECTION_MANAGER_OBJECT_NAME =
+ new ObjectName("jboss.jca:name=DefaultDS,service=LocalTxCM");
+ DEFAULTDS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME =
+ new ObjectName("jboss.jca:name=DefaultDS,service=ManagedConnectionFactory");
+ DEFAULTDS_MANAGED_CONNECTION_POOL_OBJECT_NAME =
+ new ObjectName("jboss.jca:name=DefaultDS,service=ManagedConnectionPool");
+ DEFAULTDS_WRAPPER_DATA_SOURCE_SERVICE_OBJECT_NAME =
+ new ObjectName("jboss.jca:name=DefaultDS,service=DataSourceBinding");
+
+ JMS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME =
+ new ObjectName("jboss.jca:service=ManagedConnectionFactory,name=JCAConnectionFactory");
+ JMS_MANAGED_CONNECTION_POOL_OBJECT_NAME =
+ new ObjectName("jboss.jca:service=ManagedConnectionPool,name=JCAConnectionFactory");
+ JMS_CONNECTION_MANAGER_OBJECT_NAME =
+ new ObjectName("jboss.jca:service=TxCM,name=JCAConnectionFactory");
+ JMS_CONNECTION_FACTORY_BINDING_SERVICE_OBJECT_NAME =
+ new ObjectName("jboss.jca:service=ConnectionFactoryBinding,name=JCAConnectionFactory");
+
+ REMOTING_OBJECT_NAME =
+ new ObjectName("jboss.messaging:service=Connector,transport=bisocket");
+
+ HTTP_REMOTING_OBJECT_NAME =
+ new ObjectName("jboss.messaging:service=Connector,transport=http");
+
+ SERVER_PEER_OBJECT_NAME =
+ new ObjectName("jboss.messaging:service=ServerPeer");
+ SECURITYSTORE_OBJECT_NAME = new ObjectName("jboss.messaging:service=SecurityStore");
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getCurrentAddress() throws Exception
+ {
+ String currentAddress = System.getProperty("test.bind.address");
+
+ if (currentAddress == null)
+ {
+ currentAddress = "localhost";
+ }
+ return currentAddress;
+ }
+
+ // Attributes -----------------------------------------------------------------------------------
+
+ private ServiceContainerConfiguration config;
+
+ private TransactionManager tm;
+
+ private MBeanServer mbeanServer;
+ private ServiceCreator serviceCreator; // the 'creator' helps in creating and registering XMBeans
+ private InitialContext initialContext;
+ private String jndiNamingFactory;
+ private Server hsqldbServer;
+ private RecoveryManager recoveryManager;
+ private JBossManagedConnectionPool mcp;
+
+ private boolean transaction;
+ private boolean database;
+ private boolean jca;
+ private boolean remoting;
+ private boolean security;
+ private boolean httpConnectionFactory;
+ private boolean channelfactory; // the JGroups channels multiplexer
+
+ private List toUnbindAtExit;
+ private String ipAddressOrHostName;
+
+ // There may be many service containers on the same machine, so we need to distinguish them
+ // so we don't start up multiple servers with services running on the same port
+ private int serverIndex;
+
+ // Static ---------------------------------------------------------------------------------------
+
+ public static Object type(MBeanInfo mbeanInfo, String attributeName, String valueAsString)
+ throws Exception
+ {
+ MBeanAttributeInfo[] attrs = mbeanInfo.getAttributes();
+ MBeanAttributeInfo attr = null;
+
+ for(int i = 0; i < attrs.length; i++)
+ {
+ if (attrs[i].getName().equals(attributeName))
+ {
+ attr = attrs[i];
+ break;
+ }
+ }
+
+ if (attr == null)
+ {
+ throw new Exception("No such attribute: " + attributeName);
+ }
+
+ String type = attr.getType();
+
+ if ("int".equals(type) || "java.lang.Integer".equals(type))
+ {
+ int i = Integer.parseInt(valueAsString);
+ return new Integer(i);
+ }
+ else if ("long".equals(type) || "java.lang.Long".equals(type))
+ {
+ long l = Long.parseLong(valueAsString);
+ return new Long(l);
+ }
+ else if ("boolean".equals(type) || "java.lang.Boolean".equals(type))
+ {
+ boolean b = Boolean.valueOf(valueAsString).booleanValue();
+ return new Boolean(b);
+ }
+ else if ("java.lang.String".equals(type))
+ {
+ return valueAsString;
+ }
+ else if ("javax.management.ObjectName".equals(type))
+ {
+ return new ObjectName(valueAsString);
+ }
+ else if ("org.w3c.dom.Element".equals(type))
+ {
+ if (valueAsString == null)
+ {
+ return null;
+ }
+ else
+ {
+ return XMLUtil.stringToElement(valueAsString);
+ }
+ }
+ else if (type.startsWith("org.jboss."))
+ {
+ Class interfazza = ServiceContainer.class.getClassLoader().loadClass(type);
+ Class implementation = ServiceContainer.class.getClassLoader().loadClass(valueAsString);
+ return implementation.newInstance();
+ }
+ else if (type.startsWith("java.util.Properties"))
+ {
+ ByteArrayInputStream is = new ByteArrayInputStream(valueAsString.getBytes());
+ Properties props = new Properties();
+ props.load(is);
+ return props;
+ }
+
+ throw new Exception("Don't know to handle type " + type);
+
+ }
+
+ // Constructors ---------------------------------------------------------------------------------
+
+ public ServiceContainer(String servicesToStart) throws Exception
+ {
+ this(servicesToStart, null);
+ }
+
+ public ServiceContainer(String sevicesToStart, int serverIndex) throws Exception
+ {
+ this(sevicesToStart, null, serverIndex);
+ }
+
+ /**
+ * @param sevicesToStart - A comma separated list of services to be started. Available services:
+ * transaction, jca, database, remoting. Example: "transaction, database, remoting".
+ * "all" will start every service available. A dash in front of a service name will
+ * disable that service. Example "all,-database".
+ * @param tm - specifies a specific TransactionManager instance to bind into the mbeanServer.
+ * If null, the default JBoss TransactionManager implementation will be used.
+ */
+ public ServiceContainer(String sevicesToStart, TransactionManager tm) throws Exception
+ {
+ this.tm = tm;
+ parseConfig(sevicesToStart);
+ toUnbindAtExit = new ArrayList();
+ this.serverIndex = 0;
+ }
+
+ public ServiceContainer(String sevicesToStart, TransactionManager tm, int serverIndex)
+ throws Exception
+ {
+ this.tm = tm;
+ parseConfig(sevicesToStart);
+ toUnbindAtExit = new ArrayList();
+ this.serverIndex = serverIndex;
+ }
+
+ // Public ---------------------------------------------------------------------------------------
+
+ public void start() throws Exception
+ {
+ start(true);
+ }
+
+ public void start(boolean cleanDatabase) throws Exception
+ {
+ start(cleanDatabase, null);
+ }
+
+ public void start(boolean cleanDatabase, ServiceAttributeOverrides attrOverrides)
+ throws Exception
+ {
+ try
+ {
+ readConfigurationFile();
+
+ ipAddressOrHostName = getCurrentAddress();
+ log.debug("all server sockets will be open on address " + ipAddressOrHostName);
+
+ toUnbindAtExit.clear();
+
+ jndiNamingFactory = System.getProperty("java.naming.factory.initial");
+
+ //TODO: need to think more about this; if I don't do it, though, bind() fails because it tries to use "java.naming.provider.url"
+ try
+ {
+ NamingManager.
+ setInitialContextFactoryBuilder(new InVMInitialContextFactoryBuilder());
+ }
+ catch(IllegalStateException e)
+ {
+ // OK
+ }
+
+ Hashtable t = InVMInitialContextFactory.getJNDIEnvironment(serverIndex);
+ System.setProperty("java.naming.factory.initial",
+ (String)t.get("java.naming.factory.initial"));
+ System.setProperty(Constants.SERVER_INDEX_PROPERTY_NAME,
+ Integer.toString(serverIndex));
+
+ initialContext = new InitialContext();
+
+ System.setProperty("javax.management.builder.initial",
+ "org.jboss.test.messaging.tools.container.MBeanServerBuilder");
+
+ mbeanServer = MBeanServerFactory.createMBeanServer("jboss");
+
+ serviceCreator = new ServiceCreator(mbeanServer);
+
+ startServiceController();
+
+ registerClassLoader();
+
+ if (transaction)
+ {
+ startTransactionManager();
+ }
+
+ if (database)
+ {
+ startInVMDatabase();
+ }
+
+ if (jca)
+ {
+ startCachedConnectionManager(CACHED_CONNECTION_MANAGER_OBJECT_NAME);
+
+ // DefaultDS specific
+ startManagedConnectionFactory(DEFAULTDS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME);
+ startManagedConnectionPool(DEFAULTDS_MANAGED_CONNECTION_POOL_OBJECT_NAME,
+ DEFAULTDS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME,
+ "ByContainer");
+ startConnectionManager(DEFAULTDS_CONNECTION_MANAGER_OBJECT_NAME, true, true,
+ TRANSACTION_MANAGER_OBJECT_NAME,
+ CachedConnectionManagerMBean.OBJECT_NAME,
+ DEFAULTDS_MANAGED_CONNECTION_POOL_OBJECT_NAME);
+ startWrapperDataSourceService();
+ }
+
+ if (database && transaction && jca && cleanDatabase)
+ {
+ // We make sure the database is clean (only if we have all dependencies the database,
+ // otherwise we'll get an access error)
+ deleteAllData();
+ }
+
+ if (remoting)
+ {
+ startRemoting(attrOverrides, config.getRemotingTransport(), REMOTING_OBJECT_NAME);
+ }
+
+ if (security)
+ {
+ startSecurityManager();
+ }
+
+ if (channelfactory)
+ {
+ startChannelFactory();
+ }
+
+ loadJNDIContexts();
+
+ log.debug("loaded JNDI context");
+
+
+ String transport = config.getRemotingTransport();
+
+ log.info("Remoting type: .............. " + (remoting ? transport : "DISABLED"));
+ log.info("Clustering mode: ............ " +
+ (this.isClustered() ? "CLUSTERED" : "NON-CLUSTERED"));
+
+ log.debug(this + " started");
+ }
+ catch(Throwable e)
+ {
+ log.error("Failed to start ServiceContainer", e);
+ throw new Exception("Failed to start ServiceContainer", e);
+ }
+ }
+
+ public void dropTables() throws Exception
+ {
+ dropAllTables();
+ }
+
+ public void startConnectionFactories(ServiceAttributeOverrides attrOverrides) throws Exception
+ {
+ deployConnectionFactories("server/default/deploy/connection-factories-service.xml", attrOverrides);
+
+ log.info("HTTP ConnectionFactory " + httpConnectionFactory);
+ if (httpConnectionFactory)
+ {
+ log.info("Installing HTTP connection factory");
+ ServiceAttributeOverrides httpOverride = new ServiceAttributeOverrides();
+ startRemoting(httpOverride, "http", HTTP_REMOTING_OBJECT_NAME);
+ deployConnectionFactories("connection-factory-http.xml", attrOverrides);
+ }
+
+ // bind the default JMS provider
+ bindDefaultJMSProvider();
+ // bind the JCA ConnectionFactory
+ bindJCAJMSConnectionFactory();
+ }
+
+ public void stopConnectionFactories() throws Exception
+ {
+ for(Iterator i = connFactoryObjectNames.iterator(); i.hasNext(); )
+ {
+ try
+ {
+ ObjectName on = (ObjectName)i.next();
+ invoke(on, "stop", new Object[0], new String[0]);
+ invoke(on, "destroy", new Object[0], new String[0]);
+ unregisterService(on);
+ }
+ catch (Exception ignore)
+ {
+ //If the serverpeer failed when starting up previously, then only some of the
+ //services may be started. The ones that didn't start will fail when attempting to shut
+ //them down.
+ //Hence we must catch and ignore or we won't shut everything down
+ }
+ }
+ connFactoryObjectNames.clear();
+
+ }
+
+ public void flushManagedConnectionPool()
+ {
+ mcp.flush();
+ }
+
+
+ public void stop() throws Exception
+ {
+ log.info("Stopping serviceconatiner");
+
+ unloadJNDIContexts();
+
+ stopService(REMOTING_OBJECT_NAME);
+
+ if (httpConnectionFactory)
+ {
+ stopService(HTTP_REMOTING_OBJECT_NAME);
+ }
+
+ if (jca)
+ {
+ stopWrapperDataSourceService();
+ stopConnectionManager(DEFAULTDS_CONNECTION_MANAGER_OBJECT_NAME);
+ stopManagedConnectionPool(DEFAULTDS_MANAGED_CONNECTION_POOL_OBJECT_NAME);
+ stopManagedConnectionFactory(DEFAULTDS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME);
+ stopService(CACHED_CONNECTION_MANAGER_OBJECT_NAME);
+ }
+
+ stopService(TRANSACTION_MANAGER_OBJECT_NAME);
+
+ if (database)
+ {
+ stopInVMDatabase();
+ }
+
+ unregisterClassLoader();
+ stopServiceController();
+ MBeanServerFactory.releaseMBeanServer(mbeanServer);
+
+ if (security)
+ {
+ initialContext.unbind(MockJBossSecurityManager.TEST_SECURITY_DOMAIN);
+ }
+
+ cleanJNDI();
+
+ initialContext.close();
+
+ if (jndiNamingFactory != null)
+ {
+ System.setProperty("java.naming.factory.initial", jndiNamingFactory);
+ }
+
+ log.debug(this + " stopped");
+ }
+
+ public DataSource getDataSource()
+ {
+ DataSource ds = null;
+ try
+ {
+ InitialContext ic = new InitialContext();
+ ds = (DataSource)ic.lookup(DATA_SOURCE_JNDI_NAME);
+ ic.close();
+ }
+ catch(Exception e)
+ {
+ log.error("Failed to look up DataSource", e);
+ }
+ return ds;
+ }
+
+ public TransactionManager getTransactionManager()
+ {
+ TransactionManager tm = null;
+ try
+ {
+ InitialContext ic = new InitialContext();
+ tm = (TransactionManager)ic.lookup(TRANSACTION_MANAGER_JNDI_NAME);
+ ic.close();
+ }
+ catch(Exception e)
+ {
+ log.error("Failed to look up transaction manager", e);
+ }
+ return tm;
+ }
+
+ public UserTransaction getUserTransaction() throws Exception
+ {
+ return (UserTransaction)initialContext.lookup(USER_TRANSACTION_JNDI_NAME);
+ }
+
+ public Object getService(ObjectName on) throws Exception
+ {
+ return mbeanServer.invoke(on, "getInstance", new Object[0], new String[0]);
+ }
+
+ public String getPersistenceConfigFile(boolean clustered)
+ {
+ String databaseName = getDatabaseName();
+
+ return "server/default/deploy/" + databaseName + "-persistence-service.xml";
+ }
+
+ public Properties getPersistenceManagerSQLProperties() throws Exception
+ {
+ String persistenceConfigFile = getPersistenceConfigFile(false);
+ log.info("Persistence config file: .... " + persistenceConfigFile);
+
+ MBeanConfigurationElement persistenceManagerConfig =
+ ServiceConfigHelper.loadServiceConfiguration(persistenceConfigFile, "PersistenceManager");
+
+ String props = persistenceManagerConfig.getAttributeValue("SqlProperties");
+
+ if (props != null)
+ {
+ ByteArrayInputStream is = new ByteArrayInputStream(props.getBytes());
+
+ Properties sqlProperties = new Properties();
+
+ sqlProperties.load(is);
+
+ return sqlProperties;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public Properties getPostOfficeSQLProperties() throws Exception
+ {
+ String persistenceConfigFile = getPersistenceConfigFile(true);
+ log.info("Persistence config file: .... " + persistenceConfigFile);
+
+ MBeanConfigurationElement postOfficeConfig =
+ ServiceConfigHelper.loadServiceConfiguration(persistenceConfigFile, "PostOffice");
+
+ String props = postOfficeConfig.getAttributeValue("SqlProperties");
+
+ if (props != null)
+ {
+ ByteArrayInputStream is = new ByteArrayInputStream(props.getBytes());
+
+ Properties sqlProperties = new Properties();
+
+ sqlProperties.load(is);
+
+ return sqlProperties;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ /**
+ * @return Set<ObjectName>
+ */
+ public Set query(ObjectName pattern)
+ {
+ if (pattern == null)
+ {
+ return Collections.EMPTY_SET;
+ }
+ return mbeanServer.queryNames(pattern, null);
+ }
+
+ /**
+ * Creates and registers a service based on the MBean service descriptor element. 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.
+ */
+ public ObjectName registerAndConfigureService(MBeanConfigurationElement mbeanConfig)
+ throws Exception
+ {
+ ObjectName on = mbeanConfig.getObjectName();
+ serviceCreator.install(on, CLASS_LOADER_OBJECT_NAME, mbeanConfig.getDelegate());
+
+ // inject dependencies
+ for(Iterator i = mbeanConfig.dependencyOptionalAttributeNames().iterator(); i.hasNext(); )
+ {
+ String name = (String)i.next();
+ String value = mbeanConfig.getDependencyOptionalAttributeValue(name);
+ setAttribute(on, name, value);
+ }
+
+ // apply attributes
+ for(Iterator i = mbeanConfig.attributeNames().iterator(); i.hasNext();)
+ {
+ String name = (String)i.next();
+ String value = mbeanConfig.getAttributeValue(name);
+ setAttribute(on, name, value);
+ }
+
+ log.debug(mbeanConfig + " registered and configured");
+ return on;
+ }
+
+ /**
+ * Note that this method makes no assumption on whether the service was stopped or destroyed, nor
+ * does it attempt to stop/destroy the service.
+ */
+ public void unregisterService(ObjectName on) throws Exception
+ {
+ mbeanServer.unregisterMBean(on);
+ log.debug(on + " unregistered");
+ }
+
+ public Object invoke(ObjectName on, String operationName, Object[] params, String[] signature)
+ throws Exception
+ {
+ try
+ {
+ return mbeanServer.invoke(on, operationName, params, signature);
+ }
+ catch(MBeanException e)
+ {
+ // unwrap the exception thrown by the service
+ throw (Exception)e.getCause();
+ }
+ }
+
+ /**
+ * Set the attribute value, performing String -> Object conversion as appropriate.
+ */
+ public void setAttribute(ObjectName on, String name, String valueAsString) throws Exception
+ {
+ MBeanInfo mbeanInfo = mbeanServer.getMBeanInfo(on);
+ if("SecurityStore".equals(name))
+ {
+ return;
+ }
+ Object value = type(mbeanInfo, name, valueAsString);
+ mbeanServer.setAttribute(on, new Attribute(name, value));
+ }
+
+ public Object getAttribute(ObjectName on, String name) throws Exception
+ {
+ return mbeanServer.getAttribute(on, name);
+ }
+
+ public void addNotificationListener(ObjectName on, NotificationListener listener)
+ throws Exception
+ {
+ mbeanServer.addNotificationListener(on, listener, null, null);
+ }
+
+ public void removeNotificationListener(ObjectName on, NotificationListener listener)
+ throws Exception
+ {
+ mbeanServer.removeNotificationListener(on, listener);
+ }
+
+ public MBeanServer getMBeanServer()
+ {
+ return mbeanServer;
+ }
+
+ public void bindDefaultJMSProvider() throws Exception
+ {
+ JNDIProviderAdapter pa = new JNDIProviderAdapter();
+ pa.setQueueFactoryRef("/ConnectionFactory");
+ pa.setTopicFactoryRef("/ConnectionFactory");
+ pa.setFactoryRef("/ConnectionFactory");
+ initialContext.bind("java:/DefaultJMSProvider", pa);
+ }
+
+ public void unbindDefaultJMSProvider() throws Exception
+ {
+ initialContext.unbind("java:/DefaultJMSProvider");
+ }
+
+ public void bindJCAJMSConnectionFactory() throws Exception
+ {
+ deployJBossJMSRA(JMS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME);
+
+ startManagedConnectionPool(JMS_MANAGED_CONNECTION_POOL_OBJECT_NAME,
+ JMS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME,
+ "ByApplication");
+
+ startConnectionManager(JMS_CONNECTION_MANAGER_OBJECT_NAME, true, false, // not local, but XA(!)
+ TRANSACTION_MANAGER_OBJECT_NAME,
+ CachedConnectionManagerMBean.OBJECT_NAME,
+ JMS_MANAGED_CONNECTION_POOL_OBJECT_NAME);
+
+ ObjectName on = JMS_CONNECTION_FACTORY_BINDING_SERVICE_OBJECT_NAME;
+
+ // create it
+ ConnectionFactoryBindingService cfBindingService = new ConnectionFactoryBindingService();
+
+ // register it
+ mbeanServer.registerMBean(cfBindingService, on);
+
+ // configure it
+ mbeanServer.setAttribute(on, new Attribute("ConnectionManager", JMS_CONNECTION_MANAGER_OBJECT_NAME));
+ mbeanServer.setAttribute(on, new Attribute("JndiName", JCA_JMS_CONNECTION_FACTORY_JNDI_NAME));
+ mbeanServer.setAttribute(on, new Attribute("UseJavaContext", Boolean.TRUE));
+
+ // start it
+ mbeanServer.invoke(on, "start", new Object[0], new String[0]);
+
+ log.debug("started " + on);
+ }
+
+ /**
+ * This method may be called twice successively, so it is important to handle graciously this
+ * situation.
+ */
+ public void unbindJCAJMSConnectionFactory() throws Exception
+ {
+ ObjectName on = JMS_CONNECTION_FACTORY_BINDING_SERVICE_OBJECT_NAME;
+
+ if (mbeanServer.isRegistered(on))
+ {
+ mbeanServer.invoke(on, "stop", new Object[0], new String[0]);
+ mbeanServer.invoke(on, "destroy", new Object[0], new String[0]);
+ mbeanServer.unregisterMBean(on);
+ }
+
+ stopConnectionManager(JMS_CONNECTION_MANAGER_OBJECT_NAME);
+ stopManagedConnectionPool(JMS_MANAGED_CONNECTION_POOL_OBJECT_NAME);
+ undeployJBossJMSRA(JMS_MANAGED_CONNECTION_FACTORY_OBJECT_NAME);
+ }
+
+ public String getDatabaseName()
+ {
+ return config.getDatabaseName();
+ }
+
+ public String getRemotingTransport()
+ {
+ return config.getRemotingTransport();
+ }
+
+ public boolean isClustered()
+ {
+ return config.isClustered();
+ }
+
+ public void installJMSProviderAdaptor(String jndi, JMSProviderAdapter adaptor) throws Exception
+ {
+ log.info("Binding adaptor " + adaptor + " in JNDI: " + jndi);
+ initialContext.bind(jndi, adaptor);
+ }
+
+ public void uninstallJMSProviderAdaptor(String jndi) throws Exception
+ {
+ initialContext.unbind(jndi);
+ }
+
+ public void startRecoveryManager()
+ {
+ log.info("Starting arjuna recovery manager");
+
+ //Need to start the recovery manager manually - if deploying
+ //inside JBoss this wouldn't be necessary - since you would use
+ //the TransactionManagerService MBean which would start the recovery manager
+ //for you
+ recoveryManager = RecoveryManager.manager(RecoveryManager.INDIRECT_MANAGEMENT);
+
+ log.info("Started recovery manager");
+ }
+
+ public void stopRecoveryManager()
+ {
+ if (recoveryManager != null)
+ {
+ recoveryManager.stop();
+ }
+ }
+
+
+ static boolean storeAlreadySet = false;
+
+ // Recovery doesn't play well with reseting the ObjectStore, so we do that per VM
+ public static void setupObjectStoreDir()
+ {
+ String name = "TestObjectStore-";
+ if (!storeAlreadySet)
+ {
+ storeAlreadySet = true;
+ String objectStoreDir = System.getProperty("objectstore.dir");
+ log.trace("ObjectStoreDir===" + objectStoreDir);
+
+ //We must ensure each node has its own object store
+
+ String newObjectStore = name + new GUID().toString();
+
+ if (objectStoreDir != null)
+ {
+ //Delete the old one
+ //deleteDirectory(new File(objectStoreDir));
+
+ newObjectStore = objectStoreDir + "/" + newObjectStore;
+ }
+
+ log.info("Setting com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_DIR to " + newObjectStore);
+
+ System.setProperty(com.arjuna.ats.arjuna.common.Environment.OBJECTSTORE_DIR, newObjectStore);
+
+ //We must also make sure the node identifier is unique for each node
+ //Otherwise xids might overlap
+ String arjunanodeId = "TestNodeID-" + new GUID().toString();
+
+ log.info("Setting com.arjuna.ats.arjuna.common.Environment.XA_NODE_IDENTIFIER to " + arjunanodeId);
+
+ System.setProperty(com.arjuna.ats.arjuna.common.Environment.XA_NODE_IDENTIFIER, arjunanodeId);
+
+ log.info("Setting objectstore.dir to " + newObjectStore);
+ }
+ }
+
+
+
+ public String toString()
+ {
+ return "ServiceContainer[" + Integer.toHexString(hashCode()) + "]";
+ }
+
+ // Package protected ---------------------------------------------
+
+ // Protected -----------------------------------------------------
+
+ // Private --------------------------------------------------------------------------------------
+
+ /**
+ * Note that this method makes no assumption on whether the service was created or started, nor
+ * does it attempt to create/start the service.
+ *
+ * @param service - a Standard/DynamicMBean instance.
+ */
+ private void registerService(Object service, ObjectName on) throws Exception
+ {
+ mbeanServer.registerMBean(service, on);
+ log.debug(service + " registered as " + on);
+ }
+
+ private void readConfigurationFile() throws Exception
+ {
+ InputStream cs = getClass().getClassLoader().getResourceAsStream(CONFIGURATION_FILE_NAME);
+ if (cs == null) // JBMESSAGING-1222 - Hack for OSX JVM Bug when testing the remote connectors
+ { //(Assumes tests are being executed is the jboss-messaging/tests directory)
+ cs = new FileInputStream("etc/" + CONFIGURATION_FILE_NAME);
+ if(cs == null)
+ {
+ throw new Exception("Cannot file container's configuration file " +
+ CONFIGURATION_FILE_NAME + ". Make sure it is in the classpath.");
+ }
+ }
+
+ try
+ {
+ config = new ServiceContainerConfiguration(cs);
+ }
+ finally
+ {
+ cs.close();
+ }
+ }
+
+ private void loadJNDIContexts() throws Exception
+ {
+ String[] names = {ServerManagement.DEFAULT_QUEUE_CONTEXT,
+ ServerManagement.DEFAULT_TOPIC_CONTEXT};
+
+ for (int i = 0; i < names.length; i++)
+ {
+ try
+ {
+ initialContext.lookup(names[i]);
+ }
+ catch(NameNotFoundException e)
+ {
+ JNDIUtil.createContext(initialContext, names[i]);
+ log.debug("created context /" + names[i]);
+ }
+ }
+ }
+
+ private void unloadJNDIContexts() throws Exception
+ {
+ // ServerPeer should do that upon its shutdown, this is redundant
+
+ String[] context = { "/topic", "/queue" };
+ for(int i = 0; i < context.length; i++)
+ {
+ try
+ {
+ Context c = (Context)initialContext.lookup(context[i]);
+ JNDIUtil.tearDownRecursively(c);
+ }
+ catch(NameNotFoundException e)
+ {
+ // OK
+ log.debug("no context " + context[i] + " to unload, cleanup already performed");
+ }
+ }
+ }
+
+ private void startServiceController() throws Exception
+ {
+ // I don't really need it, because I enforce dependencies by hand, but this will keep some
+ // services happy.
+ ServiceController sc = new ServiceController();
+ mbeanServer.registerMBean(sc, SERVICE_CONTROLLER_OBJECT_NAME);
+ }
+
+ private void stopServiceController() throws Exception
+ {
+ mbeanServer.unregisterMBean(SERVICE_CONTROLLER_OBJECT_NAME);
+ }
+
+ /**
+ * Register a class loader used to instantiate other services.
+ */
+ private void registerClassLoader() throws Exception
+ {
+ ClassLoader cl = getClass().getClassLoader();
+ mbeanServer.registerMBean(new ClassLoaderJMXWrapper(cl), CLASS_LOADER_OBJECT_NAME);
+ }
+
+ private void unregisterClassLoader() throws Exception
+ {
+ mbeanServer.unregisterMBean(CLASS_LOADER_OBJECT_NAME);
+ }
+
+ private void startInVMDatabase() throws Exception
+ {
+ if (!"hsqldb".equals(config.getDatabaseName()))
+ {
+ // is an out-of-process DB, and it must be stared externally
+ return;
+ }
+
+ log.debug("starting " + config.getDatabaseName() + " in-VM");
+
+ String url = config.getDatabaseConnectionURL();
+ HsqlProperties props = new HsqlProperties();
+ props.setProperty("server.database.0", ServiceContainerConfiguration.getHypersonicDatabase(url));
+ props.setProperty("server.dbname.0", ServiceContainerConfiguration.getHypersonicDbname(url));
+ props.setProperty("server.trace", "false");
+ props.setProperty("server.silent", "true");
+ props.setProperty("server.no_system_exit", "true");
+ props.setProperty("server.port", 27862);
+ props.setProperty("server.address", ipAddressOrHostName);
+
+ hsqldbServer = new Server();
+ hsqldbServer.setLogWriter(null);
+ hsqldbServer.setProperties(props);
+ hsqldbServer.start();
+
+ log.debug("started " + config.getDatabaseName() + " in-VM");
+ }
+
+ private void stopInVMDatabase() throws Exception
+ {
+ if (!"hsqldb".equals(config.getDatabaseName()))
+ {
+ // is an out-of-process DB, and it must be stopped externally
+ return;
+ }
+
+ log.debug("stop " + hsqldbServer);
+
+ Class.forName(config.getDatabaseDriverClass());
+
+ Connection conn =
+ DriverManager.getConnection(config.getDatabaseConnectionURL(),
+ config.getDatabaseUserName(),
+ config.getDatabasePassword());
+
+ Statement stat = conn.createStatement();
+ stat.executeUpdate("SHUTDOWN");
+ conn.close();
+
+ // faster stop
+ // hsqldbServer.stop();
+ }
+
+
+ private void startTransactionManager() throws Exception
+ {
+ if (tm == null)
+ {
+ setupObjectStoreDir();
+ log.info("Starting arjuna tx mgr");
+ tm = com.arjuna.ats.jta.TransactionManager.transactionManager();
+ }
+
+ TransactionManagerJMXWrapper mbean = new TransactionManagerJMXWrapper(tm);
+ mbeanServer.registerMBean(mbean, TRANSACTION_MANAGER_OBJECT_NAME);
+ mbeanServer.invoke(TRANSACTION_MANAGER_OBJECT_NAME, "start", new Object[0], new String[0]);
+ log.debug("started " + TRANSACTION_MANAGER_OBJECT_NAME);
+
+ initialContext.bind(TRANSACTION_MANAGER_JNDI_NAME, tm);
+ toUnbindAtExit.add(TRANSACTION_MANAGER_JNDI_NAME);
+
+ log.debug("bound " + TRANSACTION_MANAGER_JNDI_NAME);
+
+ initialContext.
+ rebind(USER_TRANSACTION_JNDI_NAME, ServerVMClientUserTransaction.getSingleton());
+
+ log.debug("bound " + USER_TRANSACTION_JNDI_NAME);
+ }
+
+ public SecurityMetadataStore startSecurityStore() throws Exception
+ {
+ ObjectName securityObject = new ObjectName("jboss.messaging:service=SecurityStore");
+ SecurityMetadataStore securityMetadataStore = new SecurityMetadataStore();
+ securityMetadataStore.setSecurityDomain(MockJBossSecurityManager.TEST_SECURITY_DOMAIN);
+ securityMetadataStore.setSuckerPassword(SecurityMetadataStore.DEFAULT_SUCKER_USER_PASSWORD);
+ securityMetadataStore.setDefaultSecurityConfig(XMLUtil.stringToElement("<security>\n" +
+ " <role name=\"guest\" read=\"true\" write=\"true\" create=\"true\"/>\n" +
+ " </security>"));
+ mbeanServer.registerMBean(securityMetadataStore, securityObject);
+ mbeanServer.invoke(securityObject, "start", new Object[0], new String[0]);
+ return securityMetadataStore;
+ }
+
+ private static boolean deleteDirectory(File directory)
+ {
+ if (directory.isDirectory())
+ {
+ String[] files = directory.list();
+
+ for (int j = 0; j < files.length; j++)
+ {
+ if (!deleteDirectory(new File(directory, files[j])))
+ {
+ return false;
+ }
+ }
+ }
+
+ return directory.delete();
+ }
+
+ private void startCachedConnectionManager(ObjectName on) throws Exception
+ {
+ CachedConnectionManager ccm = new CachedConnectionManager();
+
+ // dependencies
+ ccm.setTransactionManagerServiceName(TRANSACTION_MANAGER_OBJECT_NAME);
+
+ mbeanServer.registerMBean(ccm, on);
+ mbeanServer.invoke(on, "start", new Object[0], new String[0]);
+ log.debug("started " + on);
+ }
+
+ /**
+ * Database specific.
+ */
+ private void startManagedConnectionFactory(ObjectName on) throws Exception
+ {
+ LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
+
+ log.info("connection url:" + config.getDatabaseConnectionURL());
+ log.info("driver:" + config.getDatabaseConnectionURL());
+ log.info("username:" + config.getDatabaseUserName());
+ log.info("password:" + config.getDatabasePassword());
+
+ mcf.setConnectionURL(config.getDatabaseConnectionURL());
+ mcf.setDriverClass(config.getDatabaseDriverClass());
+ mcf.setUserName(config.getDatabaseUserName());
+ mcf.setPassword(config.getDatabasePassword());
+ String isolation = config.getDatabaseTransactionIsolation();
+ if (isolation != null)
+ {
+ mcf.setTransactionIsolation(isolation);
+ }
+
+ ManagedConnectionFactoryJMXWrapper mbean = new ManagedConnectionFactoryJMXWrapper(mcf);
+ mbeanServer.registerMBean(mbean, on);
+ mbeanServer.invoke(on, "start", new Object[0], new String[0]);
+ log.debug("started " + on);
+ }
+
+ /**
+ * This method may be called twice successively, so it is important to handle graciously this
+ * situation.
+ */
+ private void stopManagedConnectionFactory(ObjectName on) throws Exception
+ {
+ stopService(on);
+ }
+
+ private void startManagedConnectionPool(ObjectName on,
+ ObjectName managedConnectionFactoryObjectName,
+ String criteria) throws Exception
+ {
+ mcp = new JBossManagedConnectionPool();
+ mcp.setCriteria(criteria);
+
+ // dependencies
+ mcp.setManagedConnectionFactoryName(managedConnectionFactoryObjectName);
+
+ mbeanServer.registerMBean(mcp, on);
+ mbeanServer.invoke(on, "start", new Object[0], new String[0]);
+ log.debug("started " + on);
+
+
+ }
+
+ /**
+ * This method may be called twice successively, so it is important to handle graciously this
+ * situation.
+ */
+ private void stopManagedConnectionPool(ObjectName on) throws Exception
+ {
+ stopService(on);
+ }
+
+ private TxConnectionManager startConnectionManager(ObjectName on,
+ boolean trackConnectionByTx,
+ boolean localTransactions,
+ ObjectName transactionManagerObjectName,
+ ObjectName cachedConnectionManagerObjectName,
+ ObjectName managedConnectionPoolObjectName)
+ throws Exception
+ {
+ TxConnectionManager cm = new TxConnectionManager();
+ cm.preRegister(mbeanServer, on);
+ cm.setTrackConnectionByTx(trackConnectionByTx);
+ cm.setLocalTransactions(localTransactions);
+
+ // dependencies
+ cm.setTransactionManagerService(transactionManagerObjectName);
+ cm.setCachedConnectionManager(cachedConnectionManagerObjectName);
+ cm.setManagedConnectionPool(managedConnectionPoolObjectName);
+
+ mbeanServer.registerMBean(cm, on);
+ mbeanServer.invoke(on, "start", new Object[0], new String[0]);
+ log.debug("started " + on);
+
+ return cm;
+ }
+
+ /**
+ * This method may be called twice successively, so it is important to handle graciously this
+ * situation.
+ */
+ private void stopConnectionManager(ObjectName on) throws Exception
+ {
+ stopService(on);
+ }
+
+ private void startWrapperDataSourceService() throws Exception
+ {
+ WrapperDataSourceService wdss = new WrapperDataSourceService();
+ wdss.setJndiName(DATA_SOURCE_JNDI_NAME);
+
+ // dependencies
+ wdss.setConnectionManager(DEFAULTDS_CONNECTION_MANAGER_OBJECT_NAME);
+ ObjectName irrelevant = new ObjectName(":name=irrelevant");
+ wdss.setJMXInvokerName(irrelevant);
+ Registry.bind(irrelevant, new NoopInvoker());
+
+ mbeanServer.registerMBean(wdss, DEFAULTDS_WRAPPER_DATA_SOURCE_SERVICE_OBJECT_NAME);
+ mbeanServer.invoke(DEFAULTDS_WRAPPER_DATA_SOURCE_SERVICE_OBJECT_NAME, "start", new Object[0], new String[0]);
+
+ log.debug("started " + DEFAULTDS_WRAPPER_DATA_SOURCE_SERVICE_OBJECT_NAME);
+ }
+
+ private void stopWrapperDataSourceService() throws Exception
+ {
+ stopService(DEFAULTDS_WRAPPER_DATA_SOURCE_SERVICE_OBJECT_NAME);
+ }
+
+ private void deployJBossJMSRA(ObjectName managedConnFactoryObjectName) throws Exception
+ {
+ JmsManagedConnectionFactory mcf = new JmsManagedConnectionFactory();
+// mcf.setClientID("");
+// mcf.setUserName("");
+// mcf.setPassword("");
+ mcf.setJmsProviderAdapterJNDI("java:/DefaultJMSProvider");
+ mcf.setStrict(true);
+ mcf.setSessionDefaultType("javax.jms.Queue");
+
+ registerService(new ManagedConnectionFactoryJMXWrapper(mcf), managedConnFactoryObjectName);
+ }
+
+ /**
+ * This method may be called twice successively, so it is important to handle graciously this
+ * situation.
+ */
+ private void undeployJBossJMSRA(ObjectName managedConnFactoryObjectName) throws Exception
+ {
+ stopService(managedConnFactoryObjectName);
+ }
+
+ private String buildLocatorURI(String transport, Map overrideMap) throws Exception
+ {
+ // We use this from thirdparty remoting tests when we don't want to send stuff through
+ // JMSWireFormat, but we want everything else in the connector's configuration to be
+ // identical with what we use in Messaging
+ boolean overrideMarshallers =
+ overrideMap != null && overrideMap.get(DO_NOT_USE_MESSAGING_MARSHALLERS) != null;
+
+ // Note that we DO NOT want the direct thread pool on the server side - since that can lead
+ // to deadlocks
+
+ String configFileName = "remoting/remoting-" + transport + "-service.xml";
+
+ MBeanConfigurationElement connectorServiceConfig =
+ ServiceConfigHelper.loadServiceConfiguration(configFileName, "Connector");
+
+ String invokerConfig = connectorServiceConfig.getAttributeValue("Configuration");
+
+ Element invokerElement = (Element) XMLUtil
+ .stringToElement(invokerConfig)
+ .getElementsByTagName("invoker").item(0);
+
+ NodeList invokerAttributes = invokerElement.getElementsByTagName("attribute");
+
+ StringBuffer paramsBuffer = new StringBuffer();
+
+ for (int i = 0; i < invokerAttributes.getLength(); i++)
+ {
+ Element attr = (Element) invokerAttributes.item(i);
+ String key = attr.getAttribute("name");
+
+ if (attr.getAttribute("isParam").equals("") && (key == null || !key.equals("serverSocketClass")))
+ {
+ continue;
+ }
+
+ String value = attr.getTextContent().trim();
+
+ if (overrideMarshallers &&
+ (key.equals("marshaller") || key.equals("unmarshaller")))
+ {
+ continue;
+ }
+
+ if (paramsBuffer.length() > 0)
+ {
+ paramsBuffer.append('&');
+ }
+
+ if (overrideMap != null)
+ {
+ String valueOverride = (String)overrideMap.get(key);
+ if (valueOverride != null)
+ {
+ value = valueOverride;
+ }
+ }
+
+ paramsBuffer.append(key).append('=').append(value);
+ }
+
+ int freePort = PortUtil.findFreePort(ipAddressOrHostName);
+
+ return new StringBuffer()
+ .append(transport).append("://")
+ .append(ipAddressOrHostName).append(':').append(freePort)
+ .append("/?").append(paramsBuffer)
+ .toString();
+ }
+
+ private void startRemoting(ServiceAttributeOverrides attrOverrides,
+ String transport,
+ ObjectName objectName) throws Exception
+ {
+ log.debug("Starting remoting transport=" + transport + " objectName=" + objectName);
+ RemotingJMXWrapper mbean;
+ String locatorURI = null;
+
+ // some tests may want specific locator URI overrides to simulate special conditions; use
+ // that with priority, if available
+ Map overrideMap = null;
+
+ if (attrOverrides != null)
+ {
+ overrideMap = attrOverrides.get(objectName);
+
+ if (overrideMap != null)
+ {
+ locatorURI = (String)overrideMap.get("LocatorURI");
+ }
+ }
+
+ if (locatorURI == null)
+ {
+ locatorURI = buildLocatorURI(transport, overrideMap);
+ log.info("creating server for: " + locatorURI);
+ }
+
+ log.debug("Using locator uri: " + locatorURI);
+
+ InvokerLocator locator = new InvokerLocator(locatorURI);
+
+ log.debug("Started remoting connector on uri:" + locator.getLocatorURI());
+
+ mbean = new RemotingJMXWrapper(locator);
+ mbeanServer.registerMBean(mbean, objectName);
+ mbeanServer.invoke(objectName, "start", new Object[0], new String[0]);
+
+ ServerInvocationHandler handler = new JMSServerInvocationHandler();
+
+ mbeanServer.invoke(objectName, "addInvocationHandler",
+ new Object[] { ServerPeer.REMOTING_JMS_SUBSYSTEM, handler},
+ new String[] { "java.lang.String",
+ "org.jboss.remoting.ServerInvocationHandler"});
+
+ log.debug("started " + objectName);
+ }
+
+
+ private void startSecurityManager() throws Exception
+ {
+ MockJBossSecurityManager sm = new MockJBossSecurityManager();
+ this.initialContext.bind(MockJBossSecurityManager.TEST_SECURITY_DOMAIN, sm);
+
+ toUnbindAtExit.add(MockJBossSecurityManager.TEST_SECURITY_DOMAIN);
+
+ log.debug("started JBoss Mock Security Manager, using ic: " + this.initialContext + " id " + System.identityHashCode(this.initialContext));
+ }
+
+ private void stopService(ObjectName target) throws Exception
+ {
+ if (mbeanServer.isRegistered(target))
+ {
+ mbeanServer.invoke(target, "stop", new Object[0], new String[0]);
+ mbeanServer.unregisterMBean(target);
+ log.debug("stopped " + target);
+ }
+ }
+
+ private void cleanJNDI() throws Exception
+ {
+ for (Iterator i = toUnbindAtExit.iterator(); i.hasNext(); )
+ {
+ String name = (String)i.next();
+
+ initialContext.unbind(name);
+ }
+ }
+
+ private void executeStatement(TransactionManager mgr, DataSource ds, String statement) throws Exception
+ {
+ Connection conn = null;
+ boolean exception = false;
+
+ try
+ {
+ try
+ {
+ mgr.begin();
+
+ conn = ds.getConnection();
+
+ log.debug("executing " + statement);
+
+ PreparedStatement ps = conn.prepareStatement(statement);
+
+ ps.executeUpdate();
+
+ log.debug(statement + " executed");
+
+ ps.close();
+ }
+ catch (SQLException e)
+ {
+ // Ignore
+ log.debug("Failed to execute statement", e);
+ exception = true;
+ }
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+
+ if (exception)
+ {
+ mgr.rollback();
+ }
+ else
+ {
+ mgr.commit();
+ }
+ }
+
+
+ }
+
+ protected void dropAllTables() throws Exception
+ {
+ log.info("DROPPING ALL TABLES FROM DATABASE!");
+
+ InitialContext ctx = new InitialContext();
+
+ // We need to execute each drop in its own transaction otherwise postgresql will not execute
+ // further commands after one fails
+
+ TransactionManager mgr = (TransactionManager)ctx.lookup(TransactionManagerService.JNDI_NAME);
+ DataSource ds = (DataSource)ctx.lookup("java:/DefaultDS");
+
+ javax.transaction.Transaction txOld = mgr.suspend();
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_POSTOFFICE");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_MSG_REF");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_MSG");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_TX");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_COUNTER");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_USER");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_ROLE");
+
+ executeStatement(mgr, ds, "DROP TABLE JBM_DUAL");
+
+ if (txOld != null)
+ {
+ mgr.resume(txOld);
+ }
+
+ log.debug("done with dropping tables");
+ }
+
+ protected void deleteAllData() throws Exception
+ {
+ log.info("DELETING ALL DATA FROM DATABASE!");
+
+ InitialContext ctx = new InitialContext();
+
+ // We need to execute each drop in its own transaction otherwise postgresql will not execute
+ // further commands after one fails
+
+ TransactionManager mgr = (TransactionManager)ctx.lookup(TransactionManagerService.JNDI_NAME);
+ DataSource ds = (DataSource)ctx.lookup("java:/DefaultDS");
+
+ javax.transaction.Transaction txOld = mgr.suspend();
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_POSTOFFICE");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_MSG_REF");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_MSG");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_TX");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_COUNTER");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_USER");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_ROLE");
+
+ executeStatement(mgr, ds, "DELETE FROM JBM_ID_CACHE");
+
+ if (txOld != null)
+ {
+ mgr.resume(txOld);
+ }
+
+ log.debug("done with the deleting data");
+ }
+
+ private void startChannelFactory() throws Exception
+ {
+ log.debug("Starting multiplexer");
+
+ String channelFactory = "server/default/deploy/mock-channelfactory-service.xml";
+ URL multiplexerCofigURL = getClass().getClassLoader().getResource(channelFactory);
+
+ if (multiplexerCofigURL == null)
+ {
+ throw new Exception("Cannot find " + multiplexerCofigURL + " in the classpath");
+ }
+
+ ServiceDeploymentDescriptor multiplexerDD = ServiceConfigHelper.loadConfigFile(channelFactory);
+
+ List services = multiplexerDD.query("service", "ChannelFactory");
+
+ if (services.isEmpty())
+ {
+ log.info("Couldn't find multiplexer config");
+ }
+ else
+ {
+ log.info("Could find multiplexer config");
+ }
+
+ MBeanConfigurationElement multiplexerConfig =
+ (MBeanConfigurationElement)services.iterator().next();
+ ObjectName nameMultiplexer = registerAndConfigureService(multiplexerConfig);
+ invoke(nameMultiplexer,"create", new Object[0], new String[0]);
+ invoke(nameMultiplexer,"start", new Object[0], new String[0]);
+ }
+
+ private void overrideAttributes(ObjectName on, ServiceAttributeOverrides attrOverrides)
+ throws Exception
+ {
+ if (attrOverrides == null)
+ {
+ return;
+ }
+
+ Map sao = attrOverrides.get(on);
+
+ for(Iterator i = sao.entrySet().iterator(); i.hasNext();)
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String attrName = (String)entry.getKey();
+ Object attrValue = entry.getValue();
+ setAttribute(on, attrName, attrValue.toString());
+
+ }
+ }
+
+ public void deployConnectionFactories(String connFactoryConfigFile,
+ ServiceAttributeOverrides attrOverrides) throws Exception
+ {
+ connFactoryObjectNames.clear();
+
+ ServiceDeploymentDescriptor cfdd = ServiceConfigHelper.loadConfigFile(connFactoryConfigFile);
+
+ List connFactoryElements = cfdd.query("service", "ConnectionFactory");
+
+ for (Iterator i = connFactoryElements.iterator(); i.hasNext();)
+ {
+ MBeanConfigurationElement connFactoryElement = (MBeanConfigurationElement) i.next();
+ ObjectName on = registerAndConfigureService(connFactoryElement);
+ overrideAttributes(on, attrOverrides);
+ // dependencies have been automatically injected already
+ invoke(on, "create", new Object[0], new String[0]);
+ invoke(on, "start", new Object[0], new String[0]);
+ connFactoryObjectNames.add(on);
+ }
+
+ connFactoryElements = cfdd.query("service", "ClusteredConnectionFactory");
+
+ for (Iterator i = connFactoryElements.iterator(); i.hasNext();)
+ {
+ MBeanConfigurationElement connFactoryElement = (MBeanConfigurationElement) i.next();
+ ObjectName on = registerAndConfigureService(connFactoryElement);
+ overrideAttributes(on, attrOverrides);
+ // dependencies have been automatically injected already
+ invoke(on, "create", new Object[0], new String[0]);
+ invoke(on, "start", new Object[0], new String[0]);
+ connFactoryObjectNames.add(on);
+ }
+
+ connFactoryElements = cfdd.query("service", "HTTPConnectionFactory");
+
+ for (Iterator i = connFactoryElements.iterator(); i.hasNext();)
+ {
+ MBeanConfigurationElement connFactoryElement = (MBeanConfigurationElement) i.next();
+ ObjectName on = registerAndConfigureService(connFactoryElement);
+ overrideAttributes(on, attrOverrides);
+ // dependencies have been automatically injected already
+ invoke(on, "create", new Object[0], new String[0]);
+ invoke(on, "start", new Object[0], new String[0]);
+ connFactoryObjectNames.add(on);
+ }
+
+ connFactoryElements = cfdd.query("service", "ClusterPullConnectionFactory");
+
+ for (Iterator i = connFactoryElements.iterator(); i.hasNext();)
+ {
+ MBeanConfigurationElement connFactoryElement = (MBeanConfigurationElement) i.next();
+ ObjectName on = registerAndConfigureService(connFactoryElement);
+ overrideAttributes(on, attrOverrides);
+ // dependencies have been automatically injected already
+ invoke(on, "create", new Object[0], new String[0]);
+ invoke(on, "start", new Object[0], new String[0]);
+ connFactoryObjectNames.add(on);
+ }
+ }
+
+ private void parseConfig(String config)
+ {
+ config = config.toLowerCase();
+ for (StringTokenizer st = new StringTokenizer(config, ", "); st.hasMoreTokens(); )
+ {
+ String tok = st.nextToken();
+ boolean minus = false;
+
+ if (tok.startsWith("-"))
+ {
+ tok = tok.substring(1);
+ minus = true;
+ }
+
+ if ("all".equals(tok))
+ {
+ transaction = true;
+ database = true;
+ jca = true;
+ remoting = true;
+ security = true;
+ channelfactory = true;
+ }
+ else
+ if ("all+http".equals(tok))
+ {
+ channelfactory = true;
+ transaction = true;
+ database = true;
+ jca = true;
+ remoting = true;
+ security = true;
+ httpConnectionFactory = true;
+ }
+ else if ("transaction".equals(tok))
+ {
+ transaction = true;
+ if (minus)
+ {
+ transaction = false;
+ }
+ }
+ else if ("database".equals(tok))
+ {
+ database = true;
+ if (minus)
+ {
+ database = false;
+ }
+ }
+ else if ("jca".equals(tok))
+ {
+ jca = true;
+ if (minus)
+ {
+ jca = false;
+ }
+ }
+ else if ("remoting".equals(tok))
+ {
+ remoting = true;
+ if (minus)
+ {
+ remoting = false;
+ }
+ }
+ else if ("security".equals(tok))
+ {
+ security = true;
+ if (minus)
+ {
+ security = false;
+ }
+ }
+ else if ("channelfactory".equals(tok))
+ {
+ channelfactory = true;
+ if (minus)
+ {
+ channelfactory = false;
+ }
+ }
+ else if ("none".equals(tok))
+ {
+ transaction = false;
+ database = false;
+ jca = false;
+ remoting = false;
+ security = false;
+ channelfactory = false;
+ }
+ else
+ {
+ throw new IllegalArgumentException("Unknown service: " + tok);
+ }
+ }
+ }
+
+ // Inner classes --------------------------------------------------------------------------------
+}
More information about the jboss-cvs-commits
mailing list