[jboss-cvs] JBossAS SVN: r111114 - in trunk: hornetq-int/src and 15 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 7 03:06:41 EDT 2011


Author: jaikiran
Date: 2011-04-07 03:06:39 -0400 (Thu, 07 Apr 2011)
New Revision: 111114

Added:
   trunk/hornetq-int/src/etc/
   trunk/hornetq-int/src/etc/build.xml
   trunk/hornetq-int/src/resources/examples/
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-configuration.xml
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-jboss-beans.xml
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-configuration.xml
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jboss-beans.xml
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jms.xml
   trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/jms-ds.xml
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/README.txt
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-configuration.xml
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-jboss-beans.xml
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-configuration.xml
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jboss-beans.xml
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jms.xml
   trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/jms-ds.xml
Modified:
   trunk/component-matrix/pom.xml
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DeploymentFactory.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQConnectionFactoryDeployment.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQCoreDeployment.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQJMSDeployment.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQQueueDeployment.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQTopicDeployment.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/AddressSettingsMapper.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryManageMO.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryMapper.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSManageMO.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/QueueManageMO.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/TopicManageMO.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/template/JAXBJMSConfiguration.java
   trunk/hornetq-int/src/resources/config/clustered/hornetq-configuration.xml
   trunk/hornetq-int/src/resources/config/non-clustered/hornetq-configuration.xml
Log:
JBAS-7950 Upgrade to 2.2.2.Final of HornetQ (ported the changes from http://anonsvn.jboss.org/repos/jbossas/branches/JBPAPP_5_1/hornetq-int/)

Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/component-matrix/pom.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -43,7 +43,7 @@
     <version.commons.beanutils>1.8.0</version.commons.beanutils>
     <version.com.google.guava>r06</version.com.google.guava>
     <version.fastinfoset>1.2.2</version.fastinfoset>
-    <version.hornetq>2.1.2.Final</version.hornetq>
+    <version.hornetq>2.2.2.Final</version.hornetq>
     <version.rhq>1.4.0.B01</version.rhq>
     <version.jacorb>2.3.1jboss.patch01-brew</version.jacorb>
     <version.javassist>3.12.1.GA</version.javassist>

Added: trunk/hornetq-int/src/etc/build.xml
===================================================================
--- trunk/hornetq-int/src/etc/build.xml	                        (rev 0)
+++ trunk/hornetq-int/src/etc/build.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~ Red Hat licenses this file to you under the Apache License, version
+  ~ 2.0 (the "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~    http://www.apache.org/licenses/LICENSE-2.0
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~ implied.  See the License for the specific language governing
+  ~ permissions and limitations under the License.
+  -->
+<project default="install" name="HornetQ Installer" basedir=".">
+
+   <property name="jboss_home" value="../../"/>
+   <property name="lib.dir" value="lib"/>
+   <property name="resources.dir" value="resources"/>
+   <property name="backup.suffix" value="-backup"/>
+   <property name="backup" value="false"/>
+   <condition property="backupTrue">
+   	<equals arg1="${backup}" arg2="true"/>
+   </condition>
+
+   <target name="install" depends="removeCommon, removeClient, addCommon, addClient">
+
+      <antcall target="removeConfig">
+         <param name="CONFIG" value="standard"/>
+      </antcall>
+      <antcall target="createConfig">
+         <param name="CONFIG" value="standard"/>
+         <param name="CONFIG_TYPE" value="non-clustered"/>
+      </antcall>
+
+      <antcall target="removeConfig">
+         <param name="CONFIG" value="default"/>
+      </antcall>
+      
+      <antcall target="createConfig">
+         <param name="CONFIG" value="default"/>
+         <param name="CONFIG_TYPE" value="non-clustered"/>
+      </antcall>
+
+      <antcall target="removeConfig">
+         <param name="CONFIG" value="all"/>
+      </antcall>
+      <antcall target="createConfig">
+         <param name="CONFIG" value="all"/>
+         <param name="CONFIG_TYPE" value="clustered"/>
+      </antcall>
+
+      <antcall target="removeConfig">
+         <param name="CONFIG" value="production"/>
+      </antcall>
+      <antcall target="createConfig">
+         <param name="CONFIG" value="production"/>
+         <param name="CONFIG_TYPE" value="clustered"/>
+      </antcall>
+
+      <!-- we need to disable guest security for production-based profiles -->
+      <replace dir="${jboss_home}" token="guest=guest" value="#guest=guest">
+         <include name="server/production*/conf/props/hornetq-*.properties"/>
+      </replace>
+
+      <available file="${lib.dir}/hornetq-jopr-plugin.jar" property="PLUGIN_EXISTS"/>
+
+      <antcall target="copy-jopr-plugin"/>
+   </target>
+
+   <target name="copy-jopr-plugin" if="PLUGIN_EXISTS">
+      <!-- this can be removed once the admin console is handled better-->
+       <copy todir="${jboss_home}/server/all/deploy/admin-console.war/plugins/" file="${lib.dir}/hornetq-jopr-plugin.jar" overwrite="true"/>
+       <copy todir="${jboss_home}/server/web/deploy/admin-console.war/plugins/" file="${lib.dir}/hornetq-jopr-plugin.jar" overwrite="true"/>
+       <copy todir="${jboss_home}/server/default/deploy/admin-console.war/plugins/" file="${lib.dir}/hornetq-jopr-plugin.jar" overwrite="true"/>
+       <copy todir="${jboss_home}/server/production/deploy/admin-console.war/plugins/" file="${lib.dir}/hornetq-jopr-plugin.jar" overwrite="true"/>
+   </target>
+
+   <target name="removeCommon">
+      <echo>Removing Common JBoss Messaging Components</echo>
+      <delete file="${jboss_home}/common/lib/jboss-messaging.jar"/>
+      <delete file="${jboss_home}/common/lib/jboss-messaging-int.jar"/>
+   </target>
+   
+   <target  name="addCommon">
+      <echo>Adding HornetQ common components</echo>
+      <copy todir="${jboss_home}/common/lib" overwrite="true">
+         <fileset dir="${lib.dir}">
+            <include name="hornetq-bootstrap.jar"/>
+            <include name="hornetq-core.jar"/>
+            <include name="hornetq-jboss-as-integration.jar"/>
+            <include name="hornetq-jms.jar"/>
+            <include name="hornetq-logging.jar"/>
+            <include name="hornetq-int.jar"/>
+            <include name="netty.jar"/>
+         </fileset>
+      </copy>
+   </target>
+
+   <target name="removeClient">
+      <echo>Removing JBoss Messaging client components</echo>
+      <delete file="${jboss_home}/client/jboss-messaging-client.jar"/>
+   </target>
+
+   <target  name="addClient">
+      <echo>Adding HornetQ client components</echo>
+      <copy todir="${jboss_home}/client" overwrite="true">
+         <fileset dir="${lib.dir}">
+            <include name="hornetq-core-client.jar"/>
+            <include name="hornetq-jms-client.jar"/>
+            <include name="jbossws-hornetq.jar"/>
+         </fileset>
+      </copy>
+   </target>
+
+   <target name="removeConfig">
+      <property name="config" value="${CONFIG}"/>
+      <echo>Removing JBoss Messaging from config: ${config}</echo>
+      <delete dir="${jboss_home}/server/${config}/deploy/messaging"/>
+      <delete dir="${jboss_home}/server/${config}/deploy/jms-ra.rar"/>
+      <delete file="${jboss_home}/server/${config}/deployers/messaging-definitions-jboss-beans.xml"/>
+      <delete file="${jboss_home}/server/${config}/conf/props/messaging-roles.properties"/>
+      <delete file="${jboss_home}/server/${config}/conf/props/messaging-users.properties"/>
+   </target>
+
+   <target name="createConfig">
+      <property name="config" value="${CONFIG}"/>
+      <property name="config_type" value="${CONFIG_TYPE}"/>
+      <echo>adding HornetQ components to ${config}</echo>
+      <copy todir="${jboss_home}/server/${config}/deployers/" file="${resources.dir}/ejb-deployer-jboss-beans.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/conf/props/" file="${resources.dir}/hornetq-roles.properties" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/conf/props/" file="${resources.dir}/hornetq-users.properties" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/conf/" file="${resources.dir}/login-config.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/conf" file="${resources.dir}/jbossts-properties.xml" overwrite="true"/>
+      <mkdir dir="${jboss_home}/server/${config}/deploy/hornetq"/>
+      <copy todir="${jboss_home}/server/${config}/deploy/hornetq" file="${resources.dir}/jboss-as-6/${config_type}/hornetq-configuration.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/deploy/hornetq" file="${resources.dir}/jboss-as-6/${config_type}/hornetq-jboss-beans.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/deploy/hornetq" file="${resources.dir}/jboss-as-6/${config_type}/hornetq-jms.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/deploy/hornetq" file="${resources.dir}/jboss-as-6/${config_type}/jms-ds.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/deployers/" file="${resources.dir}/hornetq-deployers-jboss-beans.xml" overwrite="true"/>
+      <mkdir dir="${jboss_home}/server/${config}/deploy/jms-ra.rar"/>
+      <mkdir dir="${jboss_home}/server/${config}/deploy/jms-ra.rar/META-INF"/>
+      <copy todir="${jboss_home}/server/${config}/deploy/jms-ra.rar/" file="${lib.dir}/hornetq-ra.jar" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/deploy/jms-ra.rar/META-INF" file="${resources.dir}/ra.xml" overwrite="true"/>
+      <copy todir="${jboss_home}/server/${config}/deployers/jbossws.deployer" file="${lib.dir}/jbossws-hornetq.jar" overwrite="true"/>
+      <antcall target="createBackup"></antcall>
+   </target>
+
+   <target name="createBackup" if="backupTrue">
+      <property name="backup.config" value="${config}${backup.suffix}"/>
+      <echo>Create HornetQ dedicated backup profile for ${config}</echo>
+      <mkdir dir="${jboss_home}/server/${backup.config}"/>
+      <copy todir="${jboss_home}/server/${backup.config}" includeemptydirs="true">
+         <fileset dir="${jboss_home}/server/${config}">
+            <include name="conf/**"/>
+            <include name="data"/>
+            <include name="deploy/hornetq/hornetq-configuration.xml"/>
+            <include name="deploy/hornetq/hornetq-jboss-beans.xml"/>
+            <include name="deploy/hornetq/hornetq-jms.xml"/>
+            <include name="deploy/security/**"/>
+            <include name="deploy/hdscanner-jboss-beans.xml"/>
+            <include name="deploy/profileservice-jboss-beans.xml"/>
+            <include name="deploy/remoting-jboss-beans.xml"/>
+            <include name="deploy/vfs-jboss-beans.xml"/>
+            <include name="deployers/logbridge-jboss-beans.xml"/>
+            <include name="deployers/security-deployer-jboss-beans.xml"/>
+            <include name="deployers/hornetq-deployers-jboss-beans.xml"/>
+            <include name="lib"/>
+         </fileset>
+      </copy>
+      <copy todir="${jboss_home}/server/${backup.config}/deploy/hornetq" overwrite="true">
+         <fileset dir="${jboss_home}/server/${config}/deploy/jms-ra.rar">
+            <include name="hornetq-ra.jar"/>
+         </fileset>
+      </copy>
+      <!-- Use non-clustered profile service beans (from default profile) -->
+      <copy todir="${jboss_home}/server/${backup.config}/conf/bootstrap" overwrite="true">
+         <fileset dir="${jboss_home}/server/default/conf/bootstrap">
+            <include name="profile.xml"/>
+         </fileset>
+      </copy>
+      <!-- Update HornetQ configuration to enable backup mode -->
+      <replace file="${jboss_home}/server/${backup.config}/deploy/hornetq/hornetq-configuration.xml">
+         <replacetoken><![CDATA[<name>HornetQ.main.config</name>]]></replacetoken>
+         <replacevalue><![CDATA[<name>HornetQ.main.config</name>
+   
+   <backup>true</backup>
+   <allow-failback>true</allow-failback>]]></replacevalue>
+      </replace>
+      <!-- Disable HornetQRAService -->
+      <replace file="${jboss_home}/server/${backup.config}/deploy/hornetq/hornetq-jboss-beans.xml">
+         <replacetoken>bean name="HornetQRAService"</replacetoken>
+         <replacevalue>bean name="HornetQRAService" mode="Disabled"</replacevalue>
+      </replace>
+      <!-- Remove dependency on TransactionManager -->
+      <replace file="${jboss_home}/server/${backup.config}/deploy/remoting-jboss-beans.xml">
+         <replacetoken><![CDATA[<depends>TransactionManager</depends>]]></replacetoken>
+         <replacevalue><![CDATA[<!--depends>TransactionManager</depends-->]]></replacevalue>
+      </replace>
+   </target>
+</project>

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DeploymentFactory.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DeploymentFactory.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DeploymentFactory.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -62,23 +62,23 @@
       
       try
       {
-
+         ObjectNameBuilder builder = ObjectNameBuilder.create(mainConfig.getDomain());
          for (JMSQueueConfiguration config : mainConfig.getQueueConfigurations())
          {
-            String name = ObjectNameBuilder.DEFAULT.getJMSQueueObjectName(config.getName()).toString();
-            unit.addAttachment(name, createJMSBasicBean(unit, HornetQQueueDeployment.class.getName(), name, config));
+            String name = builder.getJMSQueueObjectName(config.getName()).toString();
+            unit.addAttachment(name, createJMSBasicBean(unit, HornetQQueueDeployment.class.getName(), name, config, builder));
          }
    
          for (TopicConfiguration config : mainConfig.getTopicConfigurations())
          {
-            String name = ObjectNameBuilder.DEFAULT.getJMSTopicObjectName(config.getName()).toString(); 
-            unit.addAttachment(name, createJMSBasicBean(unit, HornetQTopicDeployment.class.getName(), name, config));
+            String name = builder.getJMSTopicObjectName(config.getName()).toString();
+            unit.addAttachment(name, createJMSBasicBean(unit, HornetQTopicDeployment.class.getName(), name, config, builder));
          }
    
          for (ConnectionFactoryConfiguration config : mainConfig.getConnectionFactoryConfigurations())
          {
-            String name = "org.hornetq:module=JMS,name=\"" + config.getName() + "\",type=ConnectionFactory";
-            unit.addAttachment(name, createJMSBasicBean(unit, HornetQConnectionFactoryDeployment.class.getName(), name, config));
+            String name = mainConfig.getDomain() + ":module=JMS,name=\"" + config.getName() + "\",type=ConnectionFactory";
+            unit.addAttachment(name, createJMSBasicBean(unit, HornetQConnectionFactoryDeployment.class.getName(), name, config, builder));
          }
       }
       catch (Exception e)
@@ -90,13 +90,15 @@
    /**
     * @param name
     */
-   private static BeanMetaData createJMSBasicBean(DeploymentUnit unit, String configClass, String name, Object config)
+   private static BeanMetaData createJMSBasicBean(DeploymentUnit unit, String configClass, String name, Object config, ObjectNameBuilder objectNameBuilder)
    {
       BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, configClass);
 
       builder.addPropertyMetaData("name", name);
 
       builder.addPropertyMetaData("jmsServer", builder.createInject("JMSServerManager"));
+
+      builder.addPropertyMetaData("builder", objectNameBuilder);
       
       builder.addPropertyMetaData("config", config);
 
@@ -105,6 +107,8 @@
       
       builder.addPropertyMetaData("mbeanServer", builder.createInject("MBeanServer"));
       
+      builder.addDependency("HornetQ.main.config");
+      
       for (Map.Entry<String, Object> entry : unit.getAttachments().entrySet())
       {
          if (entry.getValue() instanceof BeanMetaData)

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -21,9 +21,8 @@
  */
 package org.jboss.as.integration.hornetq.deployers;
 
-import java.util.concurrent.atomic.AtomicInteger;
-
 import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.jboss.as.integration.hornetq.deployers.pojo.HornetQCoreDeployment;
 import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
 import org.jboss.beans.metadata.spi.BeanMetaData;
@@ -55,8 +54,6 @@
 public class HornetQCoreConfigRealDeployer extends AbstractSimpleRealDeployer<Configuration>
 {
 
-    private final AtomicInteger idGenerator = new AtomicInteger(1);
-
     public HornetQCoreConfigRealDeployer()
     {
         super(Configuration.class);
@@ -72,14 +69,17 @@
     @Override
     public void deploy(DeploymentUnit unit, Configuration config) throws DeploymentException
     {
-       if (log.isTraceEnabled())
-       {
-          log.trace("Deploying unit: " + unit + " with config " + config);
-       }
-        String name = "HornetQCoreDeployment::" + idGenerator.incrementAndGet();
+        if (log.isTraceEnabled())
+        {
+           log.trace("Deploying unit: " + unit + " with config " + config);
+        }
         
+        String name = config.getName();
+        
         BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, HornetQCoreDeployment.class.getName());
 
+        builder.addPropertyMetaData("jmxDomain", config.getJMXDomain());
+        
         builder.addPropertyMetaData("name", name);
 
         builder.addPropertyMetaData("server", builder.createInject("HornetQServer"));

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQConnectionFactoryDeployment.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQConnectionFactoryDeployment.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQConnectionFactoryDeployment.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -40,7 +40,7 @@
          jmsServer.createConnectionFactory(false, config, config.getBindings());
          
          // Register the Control MBean in MC
-         registerControlReference(new ObjectName("org.hornetq:module=JMS,name=\"" + config.getName() + "\",type=ConnectionFactory"));
+         registerControlReference(builder.getConnectionFactoryObjectName(config.getName()));
          
       } catch (Exception e)
       {
@@ -55,7 +55,7 @@
       log.debug("Destroying ConnectionFactory " + config.getName());
       try
       {
-         unregisterControlReference(new ObjectName("org.hornetq:module=JMS,name=\"" + config.getName() + "\",type=ConnectionFactory"));
+         unregisterControlReference(builder.getConnectionFactoryObjectName(config.getName()));
          
          jmsServer.destroyConnectionFactory(config.getName());
       } 

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQCoreDeployment.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQCoreDeployment.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQCoreDeployment.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -21,10 +21,12 @@
  */
 package org.jboss.as.integration.hornetq.deployers.pojo;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.hornetq.api.core.SimpleString;
+import org.hornetq.core.config.BridgeConfiguration;
 import org.hornetq.core.config.Configuration;
 import org.hornetq.core.config.CoreQueueConfiguration;
 import org.hornetq.core.security.Role;
@@ -50,6 +52,8 @@
    private HornetQServer server;
 
    private String name;
+   
+   private String jmxDomain;
 
    private Configuration config;
 
@@ -57,7 +61,15 @@
    {
       return config;
    }
-
+	
+    public String getJmxDomain() {
+		return jmxDomain;
+	}
+	
+	public void setJmxDomain(String jmxDomain) {
+		this.jmxDomain = jmxDomain;
+	}
+   
    public void setConfig(Configuration config)
    {
       this.config = config;
@@ -101,6 +113,11 @@
       {
          log.trace(this.name + " is being started");
       }
+      
+      if (!jmxDomain.equals(server.getConfiguration().getJMXDomain()))
+      {
+    	  return;
+      }
 
       for (Map.Entry<String, AddressSettings> entry : config.getAddressesSettings().entrySet())
       {
@@ -127,6 +144,18 @@
             log.warn("Error on creating queue " + coreQueue.getName() + " address = " + coreQueue.getAddress(), e);
          }
       }
+
+      for(BridgeConfiguration bridgeConfiguration : config.getBridgeConfigurations())
+      {
+         try
+         {
+            server.deployBridge(bridgeConfiguration);
+         }
+         catch (Exception e)
+         {
+            log.warn("Error deploying Bridge " + bridgeConfiguration.getName(), e);
+         }
+      }
    }
 
    @Stop
@@ -136,6 +165,11 @@
       {
          log.trace(this.name + " is being stopped");
       }
+      
+      if (!jmxDomain.equals(server.getConfiguration().getJMXDomain()))
+      {
+    	  return;
+      }
 
       for (String entry : config.getAddressesSettings().keySet())
       {

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQJMSDeployment.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQJMSDeployment.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQJMSDeployment.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -21,6 +21,7 @@
  */
 package org.jboss.as.integration.hornetq.deployers.pojo;
 
+import org.hornetq.api.core.management.ObjectNameBuilder;
 import org.hornetq.jms.server.JMSServerManager;
 import org.jboss.as.integration.hornetq.deployers.HornetQJMSRealDeployer;
 import org.jboss.logging.Logger;
@@ -39,6 +40,8 @@
 
    protected JMSServerManager jmsServer;
 
+   protected ObjectNameBuilder builder;
+
    protected String name;
    
    protected T config;
@@ -73,6 +76,11 @@
       return name;
    }
 
+   public void setBuilder(ObjectNameBuilder builder)
+   {
+      this.builder = builder;
+   }
+
    public abstract void start() throws Exception;
 
    public abstract void stop() throws Exception;

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQQueueDeployment.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQQueueDeployment.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQQueueDeployment.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -41,7 +41,7 @@
          jmsServer.createQueue(false, config.getName(), config.getSelector(), config.isDurable(), config.getBindings());
          
          // Register the Control MBean in MC
-         registerControlReference(ObjectNameBuilder.DEFAULT.getJMSQueueObjectName(config.getName()));
+         registerControlReference(builder.getJMSQueueObjectName(config.getName()));
          
       } catch (Exception e)
       {

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQTopicDeployment.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQTopicDeployment.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/pojo/HornetQTopicDeployment.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -38,7 +38,7 @@
       try
       {
          jmsServer.createTopic(false, config.getName(), config.getBindings());
-         registerControlReference(ObjectNameBuilder.DEFAULT.getJMSTopicObjectName(config.getName()));
+         registerControlReference(builder.getJMSTopicObjectName(config.getName()));
       }
       catch (Exception e)
       {

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/AddressSettingsMapper.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/AddressSettingsMapper.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/AddressSettingsMapper.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -88,6 +88,7 @@
           "expiryAddress",
           "maxSize",
           "pageSize",
+          "pageMaxCacheSize",
           "maxDeliveryAttempts",
           "redeliveryDelay",
           "lastValueQueue",
@@ -103,6 +104,7 @@
           "expiryAddress",
           "maxSize",
           "pageSize",
+          "pageMaxCacheSize",
           "maxDeliveryAttempts",
           "redeliveryDelay",
           "lastValueQueue",
@@ -119,6 +121,7 @@
           SimpleMetaType.INTEGER_PRIMITIVE,
           SimpleMetaType.INTEGER_PRIMITIVE,
           SimpleMetaType.INTEGER_PRIMITIVE,
+          SimpleMetaType.INTEGER_PRIMITIVE,
           SimpleMetaType.LONG_PRIMITIVE,
           SimpleMetaType.BOOLEAN_PRIMITIVE,
           SimpleMetaType.LONG_PRIMITIVE,
@@ -151,6 +154,7 @@
       cvs.set("expiryAddress", new SimpleValueSupport(SimpleMetaType.STRING, addressSettings.getExpiryAddress()));
       cvs.set("maxSize", new SimpleValueSupport(SimpleMetaType.INTEGER_PRIMITIVE, addressSettings.getMaxSizeBytes()));
       cvs.set("pageSize", new SimpleValueSupport(SimpleMetaType.INTEGER_PRIMITIVE, addressSettings.getPageSizeBytes()));
+      cvs.set("pageMaxCacheSize", new SimpleValueSupport(SimpleMetaType.INTEGER_PRIMITIVE, addressSettings.getPageCacheMaxSize()));
       cvs.set("maxDeliveryAttempts", new SimpleValueSupport(SimpleMetaType.INTEGER_PRIMITIVE, addressSettings.getMaxDeliveryAttempts()));
       cvs.set("redeliveryDelay", new SimpleValueSupport(SimpleMetaType.LONG_PRIMITIVE, addressSettings.getRedeliveryDelay()));
       cvs.set("lastValueQueue", new SimpleValueSupport(SimpleMetaType.BOOLEAN_PRIMITIVE, addressSettings.isLastValueQueue()));

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryManageMO.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryManageMO.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryManageMO.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -21,7 +21,6 @@
 */
 package org.jboss.as.integration.hornetq.management.jms;
 
-import org.hornetq.api.core.management.ResourceNames;
 import org.hornetq.api.jms.management.ConnectionFactoryControl;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.core.server.HornetQServer;
@@ -40,25 +39,13 @@
    public ConnectionFactoryManageMO(HornetQServer server)
    {
       super(server);
-      this.server = server;
    }
 
-   private JMSServerControl jmsServerControl;
-
-   private ManagementService managementService;
-
-   private HornetQServer server;
-
-   public void start()
-   {
-      managementService = server.getManagementService();
-      jmsServerControl = (JMSServerControl) managementService.getResource(ResourceNames.JMS_SERVER);
-   }
-
    @ManagementOperation(name = "deleteConnectionFactory", description = "returns the JMS Connection Factory configuration",
        params = {@ManagementParameter(name = "name", description = "the connection factory name")})
    public void deleteConnectionFactory(String name) throws Exception
    {
+      JMSServerControl jmsServerControl = getJmsServerControl();
       jmsServerControl.destroyConnectionFactory(name);
    }
 
@@ -67,7 +54,7 @@
    @MetaMapping(value = ConnectionFactoryMapper.class)
    public ConnectionFactoryControl getConfiguration(String name)
    {
-      return (ConnectionFactoryControl) managementService.getResource("jms.connectionfactory." + name);
+      return (ConnectionFactoryControl) getManagementService().getResource("jms.connectionfactory." + name);
    }
 
    @ManagementOperation(name = "getMeasurements", description = "gets a connection factories",
@@ -76,6 +63,7 @@
            @ManagementParameter(name = "names", description = "the measurement names")})
    public String[] getMeasurements(String name, String[] names) throws Exception
    {
+      ManagementService managementService = getManagementService();
       ConnectionFactoryControl control = (ConnectionFactoryControl) managementService.getResource("jms.connectionfactory." + name);
       String[] val = new String[names.length];
       for (int i = 0, valLength = val.length; i < valLength; i++)
@@ -97,20 +85,25 @@
    @ManagementOperation(name = "getConnectionFactories", description = "returns the JMS Connection Factories")
    public String[] getJMSConnectionFactories()
    {
-      return jmsServerControl.getConnectionFactoryNames();
+      JMSServerControl jmsServerControl = getJmsServerControl();
+      if(jmsServerControl == null)
+      {
+         return new String[]{};
+      }
+      else
+      {
+         return jmsServerControl.getConnectionFactoryNames();
+      }
    }
 
    @ManagementOperation(name = "createConnectionFactory", description = "creates a connection factories",
        params = {
            @ManagementParameter(name = "name", description = "the connection factory name"),
-           @ManagementParameter(name = "liveTransportClassNames", description = "comma-separated list of class names for transport to live servers"),
-           @ManagementParameter(name = "liveTransportParams", description = "comma-separated list of key=value parameters for the live transports (enclosed between { } for each transport)"),
-           @ManagementParameter(name = "backupTransportClassNames", description = "comma-separated list of class names for transport to backup servers"),
-           @ManagementParameter(name = "backupTransportParams", description = "comma-separated list of key=value parameters for the backup transports (enclosed between { } for each transport)"),
+           @ManagementParameter(name = "ha", description = "does the connection factory support high availibility"),
+           @ManagementParameter(name = "useDiscovery", description = "should we use a discovery group configuration or a connector configuration"),
+           @ManagementParameter(name = "cfType", description = "the type of connection factory"),
+           @ManagementParameter(name = "connectorNames", description = "comma-separated list of connectors to uses"),
            @ManagementParameter(name = "bindings", description = "comma-separated list of JNDI bindings"),
-           @ManagementParameter(name = "discoveryAddress", description = "a discovery address"),
-           @ManagementParameter(name = "discoveryPort", description = "a discovery port"),
-           @ManagementParameter(name = "discoveryRefreshTimeout", description = "the discovery refresh timeout"),
            @ManagementParameter(name = "clientId", description = "the client id"),
            @ManagementParameter(name = "dupsOkBatchSize", description = "the batch size for DUPS_OK acknowledge mode"),
            @ManagementParameter(name = "transactionBatchSize", description = "the transaction batch size"),
@@ -131,7 +124,6 @@
            @ManagementParameter(name = "maxRetryInterval", description = "the max retry interval"),
            @ManagementParameter(name = "retryIntervalMultiplier", description = "the max retry interval multiplier"),
            @ManagementParameter(name = "reconnectAttempts", description = "the reconnect attempts"),
-           @ManagementParameter(name = "failoverOnShutdown", description = "do we failover on a clean shutdown"),
            @ManagementParameter(name = "scheduledThreadPoolMaxSize", description = "the pool size for scheduled threads"),
            @ManagementParameter(name = "threadPoolMaxSize", description = "the pool size for threads"),
            @ManagementParameter(name = "groupId", description = "the group id"),
@@ -139,15 +131,12 @@
            @ManagementParameter(name = "useGlobalPools", description = "do we use global pools"),
            @ManagementParameter(name = "retryInterval", description = "the retry interval"),
            @ManagementParameter(name = "connectionLoadBalancingPolicyClassName", description = "the load balancing class")})
-   public void createConnectionFactory(String name,
-                                        final String liveTransportClassNames,
-                                        final String liveTransportParams,
-                                        final String backupTransportClassNames,
-                                        final String backupTransportParams, 
+   public void createConnectionFactory(final String name,
+                                       final boolean ha,
+                                       final boolean useDiscovery,
+                                       final int cfType,
+                                        final String connectorNames,
                                         String bindings,
-                                        String discoveryAddress,
-                                        int discoveryPort,
-                                        long discoveryRefreshTimeout,
                                         String clientId,
                                         int dupsOkBatchSize,
                                         int transactionBatchSize,
@@ -168,7 +157,6 @@
                                         long maxRetryInterval,
                                         double retryIntervalMultiplier,
                                         int reconnectAttempts,
-                                        boolean failoverOnShutdown,
                                         int scheduledThreadPoolMaxSize,
                                         int threadPoolMaxSize,
                                         String groupId,
@@ -178,17 +166,11 @@
                                         String connectionLoadBalancingPolicyClassName)
          throws Exception
    {
-      if(liveTransportClassNames != null)
-      {
-         jmsServerControl.createConnectionFactory(name, liveTransportClassNames, liveTransportParams == null?"":liveTransportParams,
-               backupTransportClassNames == null?"":backupTransportClassNames, backupTransportParams == null?"":backupTransportParams, bindings);
-      }
-      else
-      {
-         jmsServerControl.createConnectionFactory(name, discoveryAddress, discoveryPort, bindings);
-      }
+      JMSServerControl jmsServerControl = getJmsServerControl();
+      jmsServerControl.createConnectionFactory(name, ha, useDiscovery, cfType, connectorNames, bindings);
+
+      ManagementService managementService = getManagementService();
       ConnectionFactoryControl control = (ConnectionFactoryControl) managementService.getResource("jms.connectionfactory." + name);
-      control.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
       control.setClientID(clientId);
       control.setDupsOKBatchSize(dupsOkBatchSize);
       control.setTransactionBatchSize(transactionBatchSize);
@@ -209,11 +191,11 @@
       control.setMaxRetryInterval(maxRetryInterval);
       control.setRetryIntervalMultiplier(retryIntervalMultiplier);
       control.setReconnectAttempts(reconnectAttempts);
-      control.setFailoverOnServerShutdown(failoverOnShutdown);
       control.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
       control.setThreadPoolMaxSize(threadPoolMaxSize);
       control.setGroupID(groupId);
-      control.setInitialMessagePacketSize(initialMessagePacketSize);
+      // TODO: figure out what to do with initialPacketSize as it's not really being applied to the connection factories
+      // control.setInitialMessagePacketSize(initialMessagePacketSize);
       control.setUseGlobalPools(useGlobalPools);
       control.setRetryInterval(retryInterval);
       control.setConnectionLoadBalancingPolicyClassName(connectionLoadBalancingPolicyClassName);
@@ -222,7 +204,7 @@
    @ManagementOperation(name = "createConnectionFactory", description = "creates a connection factories",
        params = {
            @ManagementParameter(name = "name", description = "the connection factory name"),
-           @ManagementParameter(name = "discoveryRefreshTimeout", description = "the discovery refresh timeout"),
+           @ManagementParameter(name = "ha", description = "does the connection factory support high availibility"),
            @ManagementParameter(name = "clientId", description = "the client id"),
            @ManagementParameter(name = "dupsOkBatchSize", description = "the batch size for DUPS_OK acknowledge mode"),
            @ManagementParameter(name = "transactionBatchSize", description = "the transaction batch size"),
@@ -243,7 +225,6 @@
            @ManagementParameter(name = "maxRetryInterval", description = "the max retry interval"),
            @ManagementParameter(name = "retryIntervalMultiplier", description = "the max retry interval multiplier"),
            @ManagementParameter(name = "reconnectAttempts", description = "the reconnect attempts"),
-           @ManagementParameter(name = "failoverOnShutdown", description = "do we failover on a clean shutdown"),
            @ManagementParameter(name = "scheduledThreadPoolMaxSize", description = "the pool size for scheduled threads"),
            @ManagementParameter(name = "threadPoolMaxSize", description = "the pool size for threads"),
            @ManagementParameter(name = "groupId", description = "the group id"),
@@ -252,7 +233,6 @@
            @ManagementParameter(name = "retryInterval", description = "the retry interval"),
            @ManagementParameter(name = "connectionLoadBalancingPolicyClassName", description = "the load balancing class")})
    public void updateConnectionFactory(String name,
-                                        long discoveryRefreshTimeout,
                                         String clientId,
                                         int dupsOkBatchSize,
                                         int transactionBatchSize,
@@ -273,7 +253,6 @@
                                         long maxRetryInterval,
                                         double retryIntervalMultiplier,
                                         int reconnectAttempts,
-                                        boolean failoverOnShutdown,
                                         int scheduledThreadPoolMaxSize,
                                         int threadPoolMaxSize,
                                         String groupId,
@@ -283,8 +262,9 @@
                                         String connectionLoadBalancingPolicyClassName)
          throws Exception
    {
+      ManagementService managementService = getManagementService();
       ConnectionFactoryControl control = (ConnectionFactoryControl) managementService.getResource("jms.connectionfactory." + name);
-      control.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
+      
       control.setClientID(clientId);
       control.setDupsOKBatchSize(dupsOkBatchSize);
       control.setTransactionBatchSize(transactionBatchSize);
@@ -305,11 +285,11 @@
       control.setMaxRetryInterval(maxRetryInterval);
       control.setRetryIntervalMultiplier(retryIntervalMultiplier);
       control.setReconnectAttempts(reconnectAttempts);
-      control.setFailoverOnServerShutdown(failoverOnShutdown);
       control.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
       control.setThreadPoolMaxSize(threadPoolMaxSize);
       control.setGroupID(groupId);
-      control.setInitialMessagePacketSize(initialMessagePacketSize);
+      // TODO: figure out what to do with initialPacketSize as it's not really being applied to the connection factories
+      // control.setInitialMessagePacketSize(initialMessagePacketSize);
       control.setUseGlobalPools(useGlobalPools);
       control.setRetryInterval(retryInterval);
       control.setConnectionLoadBalancingPolicyClassName(connectionLoadBalancingPolicyClassName);

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryMapper.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryMapper.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/ConnectionFactoryMapper.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -21,7 +21,9 @@
  */
 package org.jboss.as.integration.hornetq.management.jms;
 
-import org.hornetq.api.core.Pair;
+import java.lang.reflect.Type;
+
+import org.hornetq.api.core.DiscoveryGroupConfiguration;
 import org.hornetq.api.core.TransportConfiguration;
 import org.hornetq.api.jms.management.ConnectionFactoryControl;
 import org.jboss.metatype.api.types.CompositeMetaType;
@@ -33,10 +35,6 @@
 import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.jboss.metatype.spi.values.MetaMapper;
 
-import java.lang.reflect.Type;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
  *         Created Mar 19, 2010
@@ -48,15 +46,11 @@
    {
       String[] itemNames = {
             "name",
-            "liveTransportClassNames",
-            "liveTransportParams",
-            "backupTransportClassNames",
-            "backupTransportParams",
+            "ha",
+            "useDiscovery",
+            "cfType",
+            "connectorNames",
             "Bindings",
-            "DiscoveryAddress",
-            "DiscoveryPort",
-            "DiscoveryRefreshTimeout",
-            "DiscoveryInitialWaitTimeout",
             "ClientID",
             "DupsOKBatchSize",
             "TransactionBatchSize",
@@ -89,15 +83,11 @@
       };
       String[] itemDescriptions = {
             "name",
-            "liveTransportClassNames",
-            "liveTransportParams",
-            "backupTransportClassNames",
-            "backupTransportParams",
+            "ha",
+            "useDiscovery",
+            "cfType",
+            "connectorNames",
             "Bindings",
-            "DiscoveryAddress",
-            "DiscoveryPort",
-            "DiscoveryRefreshTimeout",
-            "DiscoveryInitialWaitTimeout",
             "ClientID",
             "DupsOKBatchSize",
             "TransactionBatchSize",
@@ -163,10 +153,6 @@
             SimpleMetaType.STRING,
             SimpleMetaType.STRING,
             SimpleMetaType.STRING,
-            SimpleMetaType.STRING,
-            SimpleMetaType.STRING,
-            SimpleMetaType.STRING,
-            SimpleMetaType.STRING,
             SimpleMetaType.STRING
       };
       TYPE = new ImmutableCompositeMetaType("javax.jms.ConnectionFactory", "Connection Factory Settings",
@@ -178,67 +164,32 @@
    {
       CompositeValueSupport cvs = new CompositeValueSupport(TYPE);
       cvs.set("name", new SimpleValueSupport(SimpleMetaType.STRING, control.getName()));
-      List<org.hornetq.api.core.Pair<TransportConfiguration, TransportConfiguration>> pairs = control.getStaticConnectors();
-      StringBuffer liveTransportClassNames = new StringBuffer();
-      StringBuffer liveTransportParams = new StringBuffer();
-      StringBuffer backupTransportClassNames = new StringBuffer();
-      StringBuffer backupTransportParams = new StringBuffer();
-      for (Pair<TransportConfiguration, TransportConfiguration> pair : pairs)
-      {
-         if (pair.a != null)
-         {
-            TransportConfiguration live = pair.a;
-            if(liveTransportClassNames.length() > 0)
-            {
-               liveTransportClassNames.append(",");
-            }
-            liveTransportClassNames.append(live.getFactoryClassName());
 
-            Map<String, Object> params = live.getParams();
-            liveTransportParams.append("{");
-            for (Map.Entry<String, Object> stringObjectEntry : params.entrySet())
-            {
-               if(liveTransportParams.length() > 1)
-               {
-                  liveTransportParams.append(",");
-               }
-               liveTransportParams.append(stringObjectEntry.getKey()).append("=").append(stringObjectEntry.getValue());
-            }
-            liveTransportParams.append("}");
-         }
+      TransportConfiguration[] connectors = control.getStaticConnectors();
+      DiscoveryGroupConfiguration groupConfiguration = control.getDiscoveryGroupConfiguration();
 
-         if (pair.b != null)
+      StringBuffer connectorNames = new StringBuffer();
+      if (groupConfiguration == null)
+      {
+         for (TransportConfiguration connector : connectors)
          {
-            TransportConfiguration backUp = pair.b;
-            if(backupTransportClassNames.length() > 0)
+            if(connectorNames.length() > 0)
             {
-               backupTransportClassNames.append(",");
+               connectorNames.append(",");
             }
-            backupTransportClassNames.append(backUp.getFactoryClassName());
-
-            Map<String, Object> params = backUp.getParams();
-            backupTransportParams.append("{");
-            for (Map.Entry<String, Object> stringObjectEntry : params.entrySet())
-            {
-               if(backupTransportParams.length() > 1)
-               {
-                  backupTransportParams.append(",");
-               }
-               backupTransportParams.append(stringObjectEntry.getKey()).append("=").append(stringObjectEntry.getValue());
-            }
-            backupTransportParams.append("}");
+            connectorNames.append(connector.getName());
          }
-
       }
-      cvs.set("liveTransportClassNames", new SimpleValueSupport(SimpleMetaType.STRING, liveTransportClassNames));
-      cvs.set("liveTransportParams", new SimpleValueSupport(SimpleMetaType.STRING, liveTransportParams));
-      cvs.set("backupTransportClassNames", new SimpleValueSupport(SimpleMetaType.STRING, backupTransportClassNames));
-      cvs.set("backupTransportParams", new SimpleValueSupport(SimpleMetaType.STRING, backupTransportParams));
+      else
+      {
+         connectorNames.append(groupConfiguration.getName());
+      }
+      cvs.set("ha", new SimpleValueSupport(SimpleMetaType.STRING, control.isHA()));
+      cvs.set("useDiscovery", new SimpleValueSupport(SimpleMetaType.STRING, control.getDiscoveryGroupConfiguration() != null));
+      //todo uncomment on next HornetQ release
+      //cvs.set("cfType", new SimpleValueSupport(SimpleMetaType.STRING, control.getFactoryType()));
+      cvs.set("connectorNames", new SimpleValueSupport(SimpleMetaType.STRING, connectorNames));
       cvs.set("Bindings", new SimpleValueSupport(SimpleMetaType.STRING, getJndiString(control.getJNDIBindings())));
-      cvs.set("DiscoveryAddress", new SimpleValueSupport(SimpleMetaType.STRING, control.getDiscoveryAddress()));
-      cvs.set("DiscoveryPort", new SimpleValueSupport(SimpleMetaType.STRING, control.getDiscoveryPort()));
-      cvs.set("DiscoveryRefreshTimeout", new SimpleValueSupport(SimpleMetaType.STRING, control.getDiscoveryRefreshTimeout()));
-      cvs.set("DiscoveryInitialWaitTimeout", new SimpleValueSupport(SimpleMetaType.STRING, control.getDiscoveryInitialWaitTimeout()));
       cvs.set("ClientID", new SimpleValueSupport(SimpleMetaType.STRING, control.getClientID()));
       cvs.set("DupsOKBatchSize", new SimpleValueSupport(SimpleMetaType.STRING, control.getDupsOKBatchSize()));
       cvs.set("TransactionBatchSize", new SimpleValueSupport(SimpleMetaType.STRING, control.getTransactionBatchSize()));
@@ -260,7 +211,6 @@
       cvs.set("MaxRetryInterval", new SimpleValueSupport(SimpleMetaType.STRING, control.getMaxRetryInterval()));
       cvs.set("RetryIntervalMultiplier", new SimpleValueSupport(SimpleMetaType.STRING, control.getRetryIntervalMultiplier()));
       cvs.set("ReconnectAttempts", new SimpleValueSupport(SimpleMetaType.STRING, control.getReconnectAttempts()));
-      cvs.set("FailoverOnServerShutdown", new SimpleValueSupport(SimpleMetaType.STRING, control.isFailoverOnServerShutdown()));
       cvs.set("ScheduledThreadPoolMaxSize", new SimpleValueSupport(SimpleMetaType.STRING, control.getScheduledThreadPoolMaxSize()));
       cvs.set("ThreadPoolMaxSize", new SimpleValueSupport(SimpleMetaType.STRING, control.getThreadPoolMaxSize()));
       cvs.set("GroupID", new SimpleValueSupport(SimpleMetaType.STRING, control.getGroupID()));

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSManageMO.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSManageMO.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSManageMO.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -33,11 +33,11 @@
  */
 public class JMSManageMO
 {
-   protected JMSServerControl jmsServerControl;
+   private JMSServerControl jmsServerControl;
 
-   protected ManagementService managementService;
+   private ManagementService managementService;
 
-   protected HornetQServerControl hornetQServerControl;
+   private HornetQServerControl hornetQServerControl;
 
    private HornetQServer server;
 
@@ -47,13 +47,6 @@
       this.server = server;
    }
 
-   public void start()
-   {
-      managementService = server.getManagementService();
-      jmsServerControl = (JMSServerControl) managementService.getResource(ResourceNames.JMS_SERVER);
-      hornetQServerControl = (HornetQServerControl) managementService.getResource(ResourceNames.CORE_SERVER);
-   }
-
    protected String coomaSeparatedString(Object[] objects)
    {
       StringBuffer sb = new StringBuffer("");
@@ -127,4 +120,31 @@
       }
       return classes;
    }
+
+   public JMSServerControl getJmsServerControl()
+   {
+      if(jmsServerControl == null)
+      {
+         jmsServerControl = (JMSServerControl) managementService.getResource(ResourceNames.JMS_SERVER);
+      }
+      return jmsServerControl;
+   }
+
+   public ManagementService getManagementService()
+   {
+      if(managementService == null)
+      {
+         managementService = server.getManagementService();
+      }
+      return managementService;
+   }
+
+   public HornetQServerControl getHornetQServerControl()
+   {
+      if(hornetQServerControl == null)
+      {
+         hornetQServerControl = (HornetQServerControl) managementService.getResource(ResourceNames.CORE_SERVER);
+      }
+      return hornetQServerControl;
+   }
 }

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -21,6 +21,8 @@
  */
 package org.jboss.as.integration.hornetq.management.jms;
 
+import org.hornetq.api.core.management.HornetQServerControl;
+import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.core.server.HornetQServer;
 import org.jboss.managed.api.annotation.*;
 
@@ -42,13 +44,22 @@
    @ManagementOperation(name = "getVersion", description = "returns the servers version")
    public String getVersion()
    {
-      return jmsServerControl.getVersion();
+      JMSServerControl jmsServerControl = getJmsServerControl();
+      if(jmsServerControl == null)
+      {
+         return null;
+      }
+      else
+      {
+         return jmsServerControl.getVersion();
+      }
    }
 
    @ManagementOperation(name = "getVersion", description = "returns the servers status")
    public boolean isStarted()
    {
-      return jmsServerControl.isStarted();
+      JMSServerControl jmsServerControl = getJmsServerControl();
+      return jmsServerControl != null && jmsServerControl.isStarted();
    }
 
    @ManagementOperation(name = "invokeManagerOperation", description = "invokes a queues method",
@@ -62,11 +73,13 @@
       Method m = null;
       try
       {
+         JMSServerControl jmsServerControl = getJmsServerControl();
          m = jmsServerControl.getClass().getMethod(method, classes);
          return m.invoke(jmsServerControl, getParams(params, classes));
       }
       catch (NoSuchMethodException e)
       {
+         HornetQServerControl hornetQServerControl = getHornetQServerControl();
          m = hornetQServerControl.getClass().getMethod(method, classes);
          return m.invoke(hornetQServerControl, getParams(params, classes));
       }

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/QueueManageMO.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/QueueManageMO.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/QueueManageMO.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -22,9 +22,12 @@
 package org.jboss.as.integration.hornetq.management.jms;
 
 import org.hornetq.api.core.management.AddressSettingsInfo;
+import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.RoleInfo;
 import org.hornetq.api.jms.management.JMSQueueControl;
+import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.management.ManagementService;
 import org.hornetq.jms.server.config.JMSQueueConfiguration;
 import org.hornetq.jms.server.config.impl.JMSQueueConfigurationImpl;
 import org.jboss.managed.api.annotation.*;
@@ -56,6 +59,7 @@
            @ManagementParameter(name = "expiryAddress", description = "Expiry Address"),
            @ManagementParameter(name = "maxSizeBytes", description = "Max Size of Address"),
            @ManagementParameter(name = "pageSizeBytes", description = "Page Size"),
+           @ManagementParameter(name = "pageMaxCacheSize", description = "Max number of pages in the soft memory cache"),
            @ManagementParameter(name = "deliveryAttempts", description = "Max Delivery Attempts"),
            @ManagementParameter(name = "redeliveryDelay", description = "Redelivery Delay"),
            @ManagementParameter(name = "lastValueQueue", description = "Last Value Queue"),
@@ -71,6 +75,7 @@
                            String expiryAddress,
                            long maxSizeBytes,
                            int pageSizeBytes,
+                           int pageMaxCacheSize,
                            int deliveryAttempts,
                            long redeliveryDelay,
                            boolean lastValueQueue,
@@ -82,18 +87,21 @@
    {
 
       //update the address settings
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       hornetQServerControl.addAddressSettings("jms.queue." + name,
-          DLA,
-          expiryAddress,
-          lastValueQueue,
-          deliveryAttempts,
-          maxSizeBytes,
-          pageSizeBytes,
-          redeliveryDelay,
-          redistributionDelay,
-          sendToDLAOnNoRoute,
-          addressFullMessagePolicy);
+            DLA,
+            expiryAddress,
+            lastValueQueue,
+            deliveryAttempts,
+            maxSizeBytes,
+            pageSizeBytes,
+            pageMaxCacheSize,
+            redeliveryDelay,
+            redistributionDelay,
+            sendToDLAOnNoRoute,
+            addressFullMessagePolicy);
       //create the queue
+      JMSServerControl jmsServerControl = getJmsServerControl();
       jmsServerControl.createQueue(name, jndiName);
       //update security
       hornetQServerControl.addSecuritySettings("jms.queue." + name, sendRoles, consumeRoles, "", "", "", "", "");
@@ -103,7 +111,9 @@
        params = {@ManagementParameter(name = "name", description = "the queue name")})
    public void deleteQueue(String name) throws Exception
    {
+      JMSServerControl jmsServerControl = getJmsServerControl();
       jmsServerControl.destroyQueue(name.replace("jms.queue.", ""));
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       hornetQServerControl.removeSecuritySettings(name);
       hornetQServerControl.removeAddressSettings(name);
    }
@@ -114,9 +124,11 @@
    public Object[] getQueueConfiguration(String name) throws Exception
    {
       Object[] config = new Object[3];
+      ManagementService managementService = getManagementService();
       JMSQueueControl control = (JMSQueueControl) managementService.getResource(name);
       JMSQueueConfiguration queueConfiguration = new JMSQueueConfigurationImpl(control.getName(), control.getSelector(), !control.isTemporary(), control.getJNDIBindings());
       config[0] = queueConfiguration;
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       String addressSettingsAsJSON = hornetQServerControl.getAddressSettingsAsJSON(name);
       config[1] = AddressSettingsInfo.from(addressSettingsAsJSON);
       String rolesAsJSON = hornetQServerControl.getRolesAsJSON(name);
@@ -133,6 +145,7 @@
            @ManagementParameter(name = "expiryAddress", description = "Expiry Address"),
            @ManagementParameter(name = "maxSizeBytes", description = "Max Size of Address"),
            @ManagementParameter(name = "pageSizeBytes", description = "Page Size"),
+           @ManagementParameter(name = "pageMaxCacheSize", description = "Max number of pages in the soft memory cache"),
            @ManagementParameter(name = "deliveryAttempts", description = "Max Delivery Attempts"),
            @ManagementParameter(name = "redeliveryDelay", description = "Redelivery Delay"),
            @ManagementParameter(name = "lastValueQueue", description = "Last Value Queue"),
@@ -148,6 +161,7 @@
                                         String expiryAddress,
                                         long maxSizeBytes,
                                         int pageSizeBytes,
+                                        int pageMaxCacheSize,
                                         int deliveryAttempts,
                                         long redeliveryDelay,
                                         boolean lastValueQueue,
@@ -158,17 +172,19 @@
                                         String consumeRoles) throws Exception
    {
       //update the address settings
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       hornetQServerControl.addAddressSettings(name,
-          dla,
-          expiryAddress,
-          lastValueQueue,
-          deliveryAttempts,
-          maxSizeBytes,
-          pageSizeBytes,
-          redeliveryDelay,
-          redistributionDelay,
-          sendToDLAOnNoRoute,
-          addressFullMessagePolicy);
+            dla,
+            expiryAddress,
+            lastValueQueue,
+            deliveryAttempts,
+            maxSizeBytes,
+            pageSizeBytes,
+            pageMaxCacheSize,
+            redeliveryDelay,
+            redistributionDelay,
+            sendToDLAOnNoRoute,
+            addressFullMessagePolicy);
       //update security
       hornetQServerControl.addSecuritySettings(name, sendRoles, consumeRoles, "", "", "", "", "");
    }
@@ -179,6 +195,7 @@
            @ManagementParameter(name = "names", description = "the measurement names")})
    public String[] getQueueMeasurements(String name, String[] names) throws Exception
    {
+      ManagementService managementService = getManagementService();
       JMSQueueControl control = (JMSQueueControl) managementService.getResource(name);
       String[] val = new String[names.length];
       for (int i = 0, valLength = val.length; i < valLength; i++)
@@ -203,6 +220,7 @@
            @ManagementParameter(name = "params", description = "the method params")})
    public Object invokeQueueOperation(String name, String method, String[] params, String[] type) throws Exception
    {
+      ManagementService managementService = getManagementService();
       JMSQueueControl control = (JMSQueueControl) managementService.getResource(name);
       Class[] classes = getClassTypes(type);
       Method m = control.getClass().getMethod(method, classes);
@@ -217,6 +235,7 @@
    @MetaMapping(value = MessageListMapper.class)
    public List invokeQueueOperationMessageType(String name, String method, String[] params, String[] type) throws Exception
    {
+      ManagementService managementService = getManagementService();
       JMSQueueControl control = (JMSQueueControl) managementService.getResource(name);
       Class[] classes = getClassTypes(type);
       Method m = control.getClass().getMethod(method, classes);
@@ -229,7 +248,15 @@
    @ManagementOperation(name = "getJMSQueues", description = "returns the JMS Queues")
    public String[] getJMSQueues()
    {
-      return jmsServerControl.getQueueNames();
+      JMSServerControl jmsServerControl = getJmsServerControl();
+      if(jmsServerControl == null)
+      {
+         return new String[]{};
+      }
+      else
+      {
+         return jmsServerControl.getQueueNames();
+      }
    }
    
    @ManagementOperation(name = "isPaused", description = "is the queue paused?",
@@ -238,7 +265,8 @@
    })
    public boolean isPaused(String name) throws Exception
    {
-	   JMSQueueControl control = (JMSQueueControl) managementService.getResource(name);
+      ManagementService managementService = getManagementService();
+      JMSQueueControl control = (JMSQueueControl) managementService.getResource(name);
 	   return control.isPaused();
    }
 }

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/TopicManageMO.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/TopicManageMO.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/TopicManageMO.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -22,10 +22,12 @@
 package org.jboss.as.integration.hornetq.management.jms;
 
 import org.hornetq.api.core.management.AddressSettingsInfo;
+import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.RoleInfo;
+import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.api.jms.management.TopicControl;
-import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.management.ManagementService;
 import org.hornetq.jms.server.config.TopicConfiguration;
 import org.hornetq.jms.server.config.impl.TopicConfigurationImpl;
 import org.jboss.managed.api.annotation.*;
@@ -53,7 +55,9 @@
        params = {@ManagementParameter(name = "name", description = "the queue name")})
    public void deleteTopic(String name) throws Exception
    {
+      JMSServerControl jmsServerControl = getJmsServerControl();
       jmsServerControl.destroyTopic(name.replace("jms.topic.", ""));
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       hornetQServerControl.removeSecuritySettings(name);
       hornetQServerControl.removeAddressSettings(name);
    }
@@ -64,9 +68,11 @@
    public Object[] getTopicConfiguration(String name) throws Exception 
    {
       Object[] config = new Object[3];
+      ManagementService managementService = getManagementService();
       TopicControl control = (TopicControl) managementService.getResource(name);
       TopicConfiguration topicConfiguration = new TopicConfigurationImpl(control.getName(), control.getJNDIBindings());
       config[0] = topicConfiguration;
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       String jsonString = hornetQServerControl.getAddressSettingsAsJSON(name);
       config[1] = AddressSettingsInfo.from(jsonString);
       String rolesAsJSON = hornetQServerControl.getRolesAsJSON(name);
@@ -82,6 +88,7 @@
            @ManagementParameter(name = "expiryAddress", description = "Expiry Address"),
            @ManagementParameter(name = "maxSizeBytes", description = "Max Size of Address"),
            @ManagementParameter(name = "pageSizeBytes", description = "Page Size"),
+           @ManagementParameter(name = "pageMaxCacheSize", description = "Max number of pages in the soft memory cache"),
            @ManagementParameter(name = "deliveryAttempts", description = "Max Delivery Attempts"),
            @ManagementParameter(name = "redeliveryDelay", description = "Redelivery Delay"),
            @ManagementParameter(name = "lastValueQueue", description = "Last Value Queue"),
@@ -101,6 +108,7 @@
                            String expiryAddress,
                            long maxSizeBytes,
                            int pageSizeBytes,
+                           int pageMaxCacheSize,
                            int deliveryAttempts,
                            long redeliveryDelay,
                            boolean lastValueQueue,
@@ -116,18 +124,21 @@
    {
 
       //update the address settings
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       hornetQServerControl.addAddressSettings("jms.queue." + name,
-          DLA,
-          expiryAddress,
-          lastValueQueue,
-          deliveryAttempts,
-          maxSizeBytes,
-          pageSizeBytes,
-          redeliveryDelay,
-          redistributionDelay,
-          sendToDLAOnNoRoute,
-          addressFullMessagePolicy);
+            DLA,
+            expiryAddress,
+            lastValueQueue,
+            deliveryAttempts,
+            maxSizeBytes,
+            pageSizeBytes,
+            pageMaxCacheSize,
+            redeliveryDelay,
+            redistributionDelay,
+            sendToDLAOnNoRoute,
+            addressFullMessagePolicy);
       //create the queue
+      JMSServerControl jmsServerControl = getJmsServerControl();
       jmsServerControl.createTopic(name, jndiName);
       //update security
       hornetQServerControl.addSecuritySettings(name, sendRoles, consumeRoles, createDurableQueueRoles, deleteDurableQueueRoles, createTempQueueRoles, deleteTempQueueRoles, "");
@@ -141,6 +152,7 @@
            @ManagementParameter(name = "expiryAddress", description = "Expiry Address"),
            @ManagementParameter(name = "maxSizeBytes", description = "Max Size of Address"),
            @ManagementParameter(name = "pageSizeBytes", description = "Page Size"),
+           @ManagementParameter(name = "pageMaxCacheSize", description = "Max number of pages in the soft memory cache"),
            @ManagementParameter(name = "deliveryAttempts", description = "Max Delivery Attempts"),
            @ManagementParameter(name = "redeliveryDelay", description = "Redelivery Delay"),
            @ManagementParameter(name = "lastValueQueue", description = "Last Value Queue"),
@@ -160,6 +172,7 @@
                                         String expiryAddress,
                                         long maxSizeBytes,
                                         int pageSizeBytes,
+                                        int pageMaxCacheSize,
                                         int deliveryAttempts,
                                         long redeliveryDelay,
                                         boolean lastValueQueue,
@@ -174,17 +187,19 @@
                                          final String deleteTempQueueRoles) throws Exception
    {
       //update the address settings
+      HornetQServerControl hornetQServerControl = getHornetQServerControl();
       hornetQServerControl.addAddressSettings(name,
-          dla,
-          expiryAddress,
-          lastValueQueue,
-          deliveryAttempts,
-          maxSizeBytes,
-          pageSizeBytes,
-          redeliveryDelay,
-          redistributionDelay,
-          sendToDLAOnNoRoute,
-          addressFullMessagePolicy);
+            dla,
+            expiryAddress,
+            lastValueQueue,
+            deliveryAttempts,
+            maxSizeBytes,
+            pageSizeBytes,
+            pageMaxCacheSize,
+            redeliveryDelay,
+            redistributionDelay,
+            sendToDLAOnNoRoute,
+            addressFullMessagePolicy);
       //update security
       hornetQServerControl.addSecuritySettings(name, sendRoles, consumeRoles, createDurableQueueRoles, deleteDurableQueueRoles, createTempQueueRoles, deleteTempQueueRoles, "");
    }
@@ -195,7 +210,7 @@
            @ManagementParameter(name = "names", description = "the measurement names")})
    public String[] getTopicMeasurements(String name, String[] names) throws Exception
    {
-      TopicControl control = (TopicControl) managementService.getResource(name);
+      TopicControl control = (TopicControl) getManagementService().getResource(name);
       String[] val = new String[names.length];
       for (int i = 0, valLength = val.length; i < valLength; i++)
       {
@@ -219,7 +234,7 @@
            @ManagementParameter(name = "params", description = "the method params")})
    public Object invokeTopicOperation(String name, String method, String[] params, String[] type) throws Exception
    {
-      TopicControl control = (TopicControl) managementService.getResource(name);
+      TopicControl control = (TopicControl) getManagementService().getResource(name);
       Class[] classes = getClassTypes(type);
       Method m = control.getClass().getMethod(method, classes);
       return m.invoke(control, getParams(params, classes));
@@ -233,6 +248,7 @@
    @MetaMapping(value = MessageListMapper.class)
    public List invokeTopicOperationMessageType(String name, String method, String[] params, String[] type) throws Exception
    {
+      ManagementService managementService = getManagementService();
       TopicControl control = (TopicControl) managementService.getResource(name);
       Class[] classes = getClassTypes(type);
       Method m = control.getClass().getMethod(method, classes);
@@ -251,6 +267,7 @@
    @MetaMapping(value = SubscriptionInfoMapper.class)
    public Object[] invokeTopicOperationSubscriptionType(String name, String method, String[] params, String[] type) throws Exception
    {
+      ManagementService managementService = getManagementService();
       TopicControl control = (TopicControl) managementService.getResource(name);
       Class[] classes = getClassTypes(type);
       Method m = control.getClass().getMethod(method, classes);
@@ -262,6 +279,14 @@
    @ManagementOperation(name = "getJMSTopics", description = "returns the JMS Topics")
    public String[] getJMSTopics()
    {
-      return jmsServerControl.getTopicNames();
+      JMSServerControl jmsServerControl = getJmsServerControl();
+      if(jmsServerControl == null)
+      {
+         return new String[]{};
+      }
+      else
+      {
+         return jmsServerControl.getTopicNames();
+      }
    }
 }

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/template/JAXBJMSConfiguration.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/template/JAXBJMSConfiguration.java	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/template/JAXBJMSConfiguration.java	2011-04-07 07:06:39 UTC (rev 111114)
@@ -89,4 +89,10 @@
    {
       this.topics = topics;
    }
+
+ at Override
+public String getDomain() {
+	// TODO Auto-generated method stub
+	return null;
 }
+}

Modified: trunk/hornetq-int/src/resources/config/clustered/hornetq-configuration.xml
===================================================================
--- trunk/hornetq-int/src/resources/config/clustered/hornetq-configuration.xml	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/resources/config/clustered/hornetq-configuration.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -15,25 +15,30 @@
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
 
+   <!--  Don't change this name.
+         This is used by the dependency framework on the deployers,
+         to make sure this deployment is done before any other deployment -->
+   <name>HornetQ.main.config</name>
+
    <clustered>true</clustered>
    
    <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
 
-   <bindings-directory>${jboss.server.data.dir}/hornetq/bindings</bindings-directory>
+   <bindings-directory>${jboss.server.data.dir}/${hornetq.data.dir:hornetq}/bindings</bindings-directory>
 
-   <journal-directory>${jboss.server.data.dir}/hornetq/journal</journal-directory>
+   <journal-directory>${jboss.server.data.dir}/${hornetq.data.dir:hornetq}/journal</journal-directory>
    
    <!-- Default journal file size is set to 1Mb for faster first boot -->
    <journal-file-size>${hornetq.journal.file.size:1048576}</journal-file-size>
-
+ 
    <!-- Default journal min file is 2, increase for higher average msg rates -->
    <journal-min-files>${hornetq.journal.min.files:2}</journal-min-files> 
-   
 
-   <large-messages-directory>${jboss.server.data.dir}/hornetq/largemessages</large-messages-directory>
 
-   <paging-directory>${jboss.server.data.dir}/hornetq/paging</paging-directory>
+   <large-messages-directory>${jboss.server.data.dir}/${hornetq.data.dir:hornetq}/largemessages</large-messages-directory>
 
+   <paging-directory>${jboss.server.data.dir}/${hornetq.data.dir:hornetq}/paging</paging-directory>
+
    <connectors>
       <connector name="netty">
          <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
@@ -82,7 +87,7 @@
          <group-address>231.7.7.7</group-address>
          <group-port>9876</group-port>
          <broadcast-period>5000</broadcast-period>
-         <connector-ref connector-name="netty"/>
+         <connector-ref>netty</connector-ref>
       </broadcast-group>
    </broadcast-groups>
 
@@ -97,6 +102,7 @@
    <cluster-connections>
       <cluster-connection name="my-cluster">
          <address>jms</address>	 
+         <connector-ref>netty</connector-ref>
 	      <discovery-group-ref discovery-group-name="dg-group1"/>
       </cluster-connection>
    </cluster-connections>

Modified: trunk/hornetq-int/src/resources/config/non-clustered/hornetq-configuration.xml
===================================================================
--- trunk/hornetq-int/src/resources/config/non-clustered/hornetq-configuration.xml	2011-04-07 04:15:46 UTC (rev 111113)
+++ trunk/hornetq-int/src/resources/config/non-clustered/hornetq-configuration.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -15,6 +15,11 @@
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
 
+   <!--  Don't change this name.
+         This is used by the dependency framework on the deployers,
+         to make sure this deployment is done before any other deployment -->
+   <name>HornetQ.main.config</name>
+
    <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
    
    <bindings-directory>${jboss.server.data.dir}/hornetq/bindings</bindings-directory>
@@ -23,7 +28,7 @@
    
    <!-- Default journal file size is set to 1Mb for faster first boot -->
    <journal-file-size>${hornetq.journal.file.size:1048576}</journal-file-size>
-
+ 
    <!-- Default journal min file is 2, increase for higher average msg rates -->
    <journal-min-files>${hornetq.journal.min.files:2}</journal-min-files> 
 

Added: trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-configuration.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-configuration.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-configuration.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,116 @@
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~  Red Hat licenses this file to you under the Apache License, version
+  ~  2.0 (the "License"); you may not use this file except in compliance
+  ~  with the License.  You may obtain a copy of the License at
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~  Unless required by applicable law or agreed to in writing, software
+  ~  distributed under the License is distributed on an "AS IS" BASIS,
+  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~  implied.  See the License for the specific language governing
+  ~  permissions and limitations under the License.
+  -->
+
+<configuration xmlns="urn:hornetq"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
+
+   <!--  Don't change this name.
+         This is used by the dependency framework on the deployers,
+         to make sure this deployment is done before any other deployment -->
+   <name>HornetQ.main.config</name>
+
+   <clustered>true</clustered>
+
+   <shared-store>true</shared-store>
+   
+   <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
+
+   <bindings-directory>../${hornetq.data.dir:hornetq}/bindings</bindings-directory>
+
+   <journal-directory>../${hornetq.data.dir:hornetq}/journal</journal-directory>
+   
+   <journal-min-files>10</journal-min-files>
+
+   <large-messages-directory>../${hornetq.data.dir:hornetq}/largemessages</large-messages-directory>
+
+   <paging-directory>../${hornetq.data.dir:hornetq}/paging</paging-directory>
+
+   <connectors>
+      <connector name="netty">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
+      </connector>
+
+      <connector name="in-vm">
+         <factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class>
+         <param key="server-id" value="${hornetq.server-id:0}"/>
+      </connector>
+
+   </connectors>
+
+   <acceptors>
+      <acceptor name="netty">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
+      </acceptor>
+
+      <acceptor name="in-vm">
+        <factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
+        <param key="server-id" value="0"/>
+      </acceptor>
+
+   </acceptors>
+
+   <broadcast-groups>
+      <broadcast-group name="bg-group1">
+         <group-address>231.7.7.7</group-address>
+         <group-port>9876</group-port>
+         <broadcast-period>5000</broadcast-period>
+         <connector-ref>netty</connector-ref>
+      </broadcast-group>
+   </broadcast-groups>
+
+   <discovery-groups>
+      <discovery-group name="dg-group1">
+         <group-address>231.7.7.7</group-address>
+         <group-port>9876</group-port>
+         <refresh-timeout>10000</refresh-timeout>
+      </discovery-group>
+   </discovery-groups>
+   
+   <cluster-connections>
+      <cluster-connection name="my-cluster">
+         <address>jms</address>	 
+         <connector-ref>netty</connector-ref>
+	      <discovery-group-ref discovery-group-name="dg-group1"/>
+        <!--max hops defines how messages are redistributed, the default is 1 meaning only distribute to directly
+        connected nodes, to disable set to 0-->
+        <!--<max-hops>0</max-hops>-->
+      </cluster-connection>
+   </cluster-connections>
+   
+   <security-settings>
+      <security-setting match="#">
+         <permission type="createNonDurableQueue" roles="guest"/>
+         <permission type="deleteNonDurableQueue" roles="guest"/>
+         <permission type="consume" roles="guest"/>
+         <permission type="send" roles="guest"/>
+      </security-setting>
+   </security-settings>
+
+   <address-settings>
+      <!--default for catch all-->
+      <address-setting match="#">
+         <dead-letter-address>jms.queue.DLQ</dead-letter-address>
+         <expiry-address>jms.queue.ExpiryQueue</expiry-address>
+         <redelivery-delay>0</redelivery-delay>
+         <max-size-bytes>10485760</max-size-bytes>       
+         <message-counter-history-day-limit>10</message-counter-history-day-limit>
+         <address-full-policy>BLOCK</address-full-policy>
+      </address-setting>
+   </address-settings>
+
+</configuration>

Added: trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jboss-beans.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jboss-beans.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jboss-beans.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- MBean server -->
+   <bean name="MBeanServer" class="javax.management.MBeanServer">
+      <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator"
+                   factoryMethod="locateJBoss"/>
+   </bean>
+
+   <!-- The core configuration -->
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
+      <property name="configurationUrl">${jboss.server.home.url}/deploy/hornetq/hornetq-configuration.xml</property>
+   </bean>
+
+	<!-- The security manager -->
+   <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
+      <start ignored="true"/>
+      <stop ignored="true"/>
+      <depends>JBossSecurityJNDIContextEstablishment</depends>
+      <property name="allowClientLogin">false</property>
+      <property name="authoriseOnClientLogin">false</property>
+   </bean>
+
+	<!-- The core server -->
+   <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
+      <constructor>
+         <parameter>
+            <inject bean="Configuration"/>
+         </parameter>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>
+            <inject bean="HornetQSecurityManager"/>
+         </parameter>        
+      </constructor>
+      <start ignored="true"/>
+      <stop ignored="true"/>   
+   </bean>
+   
+   <!-- The JMS server -->
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
+      <constructor>         
+         <parameter>
+            <inject bean="HornetQServer"/>
+         </parameter>         
+      </constructor>
+   </bean>
+
+   <!-- POJO which ensures HornetQ Resource Adapter is stopped before HornetQServer -->
+   <bean name="HornetQRAService" class="org.hornetq.ra.HornetQRAService">
+      <constructor>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>jboss.jca:name='jms-ra.rar',service=RARDeployment</parameter>
+      </constructor>
+      <depends>HornetQServer</depends>
+   </bean>
+
+</deployment>

Added: trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jms.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jms.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/hornetq-jms.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,48 @@
+<configuration xmlns="urn:hornetq"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
+
+   <connection-factory name="NettyConnectionFactory">
+      <xa>true</xa>
+      <connectors>
+         <connector-ref connector-name="netty"/>
+      </connectors>
+      <entries>
+         <entry name="/ConnectionFactory"/>
+         <entry name="/XAConnectionFactory"/>
+      </entries>
+
+      <ha>true</ha>
+      <!-- Pause 1 second between connect attempts -->
+      <retry-interval>1000</retry-interval>
+
+      <!-- Multiply subsequent reconnect pauses by this multiplier. This can be used to
+      implement an exponential back-off. For our purposes we just set to 1.0 so each reconnect
+      pause is the same length -->
+      <retry-interval-multiplier>1.0</retry-interval-multiplier>
+
+      <!-- Try reconnecting an unlimited number of times (-1 means "unlimited") -->
+      <reconnect-attempts>-1</reconnect-attempts>
+   </connection-factory>
+   
+   <connection-factory name="InVMConnectionFactory">
+      <xa>true</xa>
+      <connectors>
+         <connector-ref connector-name="in-vm"/>
+      </connectors>
+      <entries>
+         <entry name="java:/ConnectionFactory"/>
+         <entry name="java:/XAConnectionFactory"/>
+      </entries>
+   </connection-factory>
+
+   <queue name="DLQ">
+      <entry name="/queue/DLQ"/>
+   </queue>
+   
+   <queue name="ExpiryQueue">
+      <entry name="/queue/ExpiryQueue"/>
+   </queue>
+
+</configuration>
+

Added: trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/jms-ds.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/jms-ds.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq/jms-ds.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,26 @@
+<connection-factories>
+   <!--
+    JMS Stuff
+   -->
+
+   <mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="hornetq:service=JMSProviderLoader,name=JMSProvider">
+      <attribute name="ProviderName">DefaultJMSProvider</attribute>
+      <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
+      <attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
+      <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
+      <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
+   </mbean>
+   <!--
+    JMS XA Resource adapter, use this to get transacted JMS in beans
+   -->
+   <tx-connection-factory>
+      <jndi-name>JmsXA</jndi-name>
+      <xa-transaction/>
+      <rar-name>jms-ra.rar</rar-name>
+      <connection-definition>org.hornetq.ra.HornetQRAConnectionFactory</connection-definition>
+      <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
+      <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
+      <max-pool-size>20</max-pool-size>
+      <security-domain-and-application>JmsXARealm</security-domain-and-application>
+   </tx-connection-factory>
+</connection-factories>
\ No newline at end of file

Added: trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-configuration.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-configuration.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-configuration.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,110 @@
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~  Red Hat licenses this file to you under the Apache License, version
+  ~  2.0 (the "License"); you may not use this file except in compliance
+  ~  with the License.  You may obtain a copy of the License at
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~  Unless required by applicable law or agreed to in writing, software
+  ~  distributed under the License is distributed on an "AS IS" BASIS,
+  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~  implied.  See the License for the specific language governing
+  ~  permissions and limitations under the License.
+  -->
+
+<configuration xmlns="urn:hornetq"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
+
+   <clustered>true</clustered>
+
+   <backup>true</backup>
+
+   <shared-store>true</shared-store>
+
+   <allow-failback>false</allow-failback>
+
+   <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
+   
+   <bindings-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/bindings</bindings-directory>
+
+   <journal-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/journal</journal-directory>
+   
+   <journal-min-files>10</journal-min-files>
+
+   <large-messages-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/largemessages</large-messages-directory>
+
+   <paging-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/paging</paging-directory>
+
+   <connectors>
+      <connector name="netty-connector">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.backup1.remoting.netty.port:5446}"/>
+      </connector>
+
+      <!--invm connector added by the live server on this node, used by the bridges-->
+      <connector name="in-vm">
+         <factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class>
+         <param key="server-id" value="0"/>
+      </connector>
+
+   </connectors>
+
+   <acceptors>   
+      <acceptor name="netty">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.backup1.remoting.netty.port:5446}"/>
+      </acceptor>
+   </acceptors>
+
+    <broadcast-groups>
+        <broadcast-group name="bg-group1">
+            <group-address>231.7.7.7</group-address>
+            <group-port>9876</group-port>
+            <broadcast-period>1000</broadcast-period>
+            <connector-ref>netty-connector</connector-ref>
+        </broadcast-group>
+    </broadcast-groups>
+
+    <discovery-groups>
+        <discovery-group name="dg-group1">
+            <group-address>231.7.7.7</group-address>
+            <group-port>9876</group-port>
+            <refresh-timeout>60000</refresh-timeout>
+        </discovery-group>
+    </discovery-groups>
+
+    <cluster-connections>
+        <cluster-connection name="my-cluster">
+            <address>jms</address>
+            <connector-ref>netty-connector</connector-ref>
+            <discovery-group-ref discovery-group-name="dg-group1"/>
+           <!--max hops defines how messages are redistributed, the default is 1 meaning only distribute to directly
+           connected nodes, to disable set to 0-->
+           <!--<max-hops>0</max-hops>-->
+        </cluster-connection>
+    </cluster-connections>
+
+   <security-settings>
+      <security-setting match="#">
+         <permission type="createNonDurableQueue" roles="guest"/>
+         <permission type="deleteNonDurableQueue" roles="guest"/>
+         <permission type="consume" roles="guest"/>
+         <permission type="send" roles="guest"/>
+      </security-setting>
+   </security-settings>
+
+   <address-settings>
+      <!--default for catch all-->
+      <address-setting match="#">
+         <dead-letter-address>jms.queue.DLQ</dead-letter-address>
+         <expiry-address>jms.queue.ExpiryQueue</expiry-address>
+         <redelivery-delay>0</redelivery-delay>
+         <max-size-bytes>10485760</max-size-bytes>       
+         <message-counter-history-day-limit>10</message-counter-history-day-limit>
+         <address-full-policy>BLOCK</address-full-policy>
+      </address-setting>
+   </address-settings>
+
+</configuration>

Added: trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-jboss-beans.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-jboss-beans.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/cluster-with-dedicated-backup/hornetq-backup1/hornetq-jboss-beans.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- MBean server -->
+      <bean name="MBeanServer" class="javax.management.MBeanServer">
+         <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator"
+                      factoryMethod="locateJBoss"/>
+      </bean>
+
+   <!-- The core configuration -->
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
+      <property name="configurationUrl">${jboss.server.home.url}/deploy/hornetq-backup1/hornetq-configuration.xml</property>
+   </bean>
+
+
+	<!-- The security manager -->
+   <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
+      <start ignored="true"/>
+      <stop ignored="true"/>
+      <depends>JBossSecurityJNDIContextEstablishment</depends>
+      <property name="allowClientLogin">false</property>
+      <property name="authoriseOnClientLogin">false</property>
+   </bean>
+
+	<!-- The core server -->
+   <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
+      <constructor>
+         <parameter>
+            <inject bean="Configuration"/>
+         </parameter>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>
+            <inject bean="HornetQSecurityManager"/>
+         </parameter>        
+      </constructor>
+      <start ignored="true"/>
+      <stop ignored="true"/>          
+   </bean>
+   
+   <!-- The JMS server -->
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
+      <constructor>         
+         <parameter>
+            <inject bean="HornetQServer"/>
+         </parameter>         
+      </constructor>
+   </bean>
+
+
+   <!-- POJO which ensures HornetQ Resource Adapter is stopped before HornetQServer -->
+   <bean name="HornetQRAService" class="org.hornetq.ra.HornetQRAService">
+      <constructor>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>jboss.jca:name='jms-ra.rar',service=RARDeployment</parameter>
+      </constructor>
+      <depends>HornetQServer</depends>
+   </bean>
+
+
+</deployment>

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/README.txt
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/README.txt	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/README.txt	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,28 @@
+This example shows how to run 2 instances of eap each with a live and backup hornetq server.
+
+Firstly make a copy of the all configuration, lets call this hq1.
+
+Now over write the config files in hq1/deploy/hornetq with the ones in the examples hornetq directory.
+
+Now copy the hornetq-backup1 directory into the hq1/deply direcoty.
+
+we now have a server configured with live and backup.
+
+Now make a second configuration by copying hq1, lets call this hq2.
+
+Now start the first server by running
+
+./run.sh -c hq1
+
+and now start the second server by running
+
+./run.sh -Djboss.service.binding.set="ports-01" -Dhornetq.data.dir=hornetq-backup1 -Dhornetq.backup1.data.dir=hornetq -c hq2
+
+here you can see we have switched which journals the live and the backup point to.
+
+NB these by default are in the root of the eap directory, you can change this in the hornetq-configuration.xml files if needed.
+
+You now have a symmetrical cluster with backups.
+
+To chain more live backups, simply change what journal each libe backup uses or to add multiple backups simply copy the
+hornetq-backup1 directory and configure accordingly
\ No newline at end of file

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-configuration.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-configuration.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-configuration.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,116 @@
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~  Red Hat licenses this file to you under the Apache License, version
+  ~  2.0 (the "License"); you may not use this file except in compliance
+  ~  with the License.  You may obtain a copy of the License at
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~  Unless required by applicable law or agreed to in writing, software
+  ~  distributed under the License is distributed on an "AS IS" BASIS,
+  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~  implied.  See the License for the specific language governing
+  ~  permissions and limitations under the License.
+  -->
+
+<configuration xmlns="urn:hornetq"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
+
+   <!--  Don't change this name.
+         This is used by the dependency framework on the deployers,
+         to make sure this deployment is done before any other deployment -->
+   <name>HornetQ.main.config</name>
+
+   <clustered>true</clustered>
+
+   <shared-store>true</shared-store>
+   
+   <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
+
+   <bindings-directory>../${hornetq.data.dir:hornetq}/bindings</bindings-directory>
+
+   <journal-directory>../${hornetq.data.dir:hornetq}/journal</journal-directory>
+   
+   <journal-min-files>10</journal-min-files>
+
+   <large-messages-directory>../${hornetq.data.dir:hornetq}/largemessages</large-messages-directory>
+
+   <paging-directory>../${hornetq.data.dir:hornetq}/paging</paging-directory>
+
+   <connectors>
+      <connector name="netty">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
+      </connector>
+
+      <connector name="in-vm">
+         <factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class>
+         <param key="server-id" value="${hornetq.server-id:0}"/>
+      </connector>
+
+   </connectors>
+
+   <acceptors>
+      <acceptor name="netty">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.remoting.netty.port:5445}"/>
+      </acceptor>
+
+      <acceptor name="in-vm">
+        <factory-class>org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory</factory-class>
+        <param key="server-id" value="0"/>
+      </acceptor>
+
+   </acceptors>
+
+   <broadcast-groups>
+      <broadcast-group name="bg-group1">
+         <group-address>231.7.7.7</group-address>
+         <group-port>9876</group-port>
+         <broadcast-period>5000</broadcast-period>
+         <connector-ref>netty</connector-ref>
+      </broadcast-group>
+   </broadcast-groups>
+
+   <discovery-groups>
+      <discovery-group name="dg-group1">
+         <group-address>231.7.7.7</group-address>
+         <group-port>9876</group-port>
+         <refresh-timeout>10000</refresh-timeout>
+      </discovery-group>
+   </discovery-groups>
+   
+   <cluster-connections>
+      <cluster-connection name="my-cluster">
+         <address>jms</address>	 
+         <connector-ref>netty</connector-ref>
+	      <discovery-group-ref discovery-group-name="dg-group1"/>
+        <!--max hops defines how messages are redistributed, the default is 1 meaning only distribute to directly
+        connected nodes, to disable set to 0-->
+        <!--<max-hops>0</max-hops>-->
+      </cluster-connection>
+   </cluster-connections>
+   
+   <security-settings>
+      <security-setting match="#">
+         <permission type="createNonDurableQueue" roles="guest"/>
+         <permission type="deleteNonDurableQueue" roles="guest"/>
+         <permission type="consume" roles="guest"/>
+         <permission type="send" roles="guest"/>
+      </security-setting>
+   </security-settings>
+
+   <address-settings>
+      <!--default for catch all-->
+      <address-setting match="#">
+         <dead-letter-address>jms.queue.DLQ</dead-letter-address>
+         <expiry-address>jms.queue.ExpiryQueue</expiry-address>
+         <redelivery-delay>0</redelivery-delay>
+         <max-size-bytes>10485760</max-size-bytes>       
+         <message-counter-history-day-limit>10</message-counter-history-day-limit>
+         <address-full-policy>BLOCK</address-full-policy>
+      </address-setting>
+   </address-settings>
+
+</configuration>

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jboss-beans.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jboss-beans.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jboss-beans.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- MBean server -->
+   <bean name="MBeanServer" class="javax.management.MBeanServer">
+      <constructor factoryClass="org.jboss.mx.util.MBeanServerLocator"
+                   factoryMethod="locateJBoss"/>
+   </bean>
+
+   <!-- The core configuration -->
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
+      <property name="configurationUrl">${jboss.server.home.url}/deploy/hornetq/hornetq-configuration.xml</property>
+   </bean>
+
+	<!-- The security manager -->
+   <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
+      <start ignored="true"/>
+      <stop ignored="true"/>
+      <depends>JBossSecurityJNDIContextEstablishment</depends>
+      <property name="allowClientLogin">false</property>
+      <property name="authoriseOnClientLogin">false</property>
+   </bean>
+
+	<!-- The core server -->
+   <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
+      <constructor>
+         <parameter>
+            <inject bean="Configuration"/>
+         </parameter>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>
+            <inject bean="HornetQSecurityManager"/>
+         </parameter>        
+      </constructor>
+      <start ignored="true"/>
+      <stop ignored="true"/>   
+   </bean>
+   
+   <!-- The JMS server -->
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
+      <constructor>         
+         <parameter>
+            <inject bean="HornetQServer"/>
+         </parameter>         
+      </constructor>
+   </bean>
+
+   <!-- POJO which ensures HornetQ Resource Adapter is stopped before HornetQServer -->
+   <bean name="HornetQRAService" class="org.hornetq.ra.HornetQRAService">
+      <constructor>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>jboss.jca:name='jms-ra.rar',service=RARDeployment</parameter>
+      </constructor>
+      <depends>HornetQServer</depends>
+   </bean>
+
+</deployment>

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jms.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jms.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/hornetq-jms.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,48 @@
+<configuration xmlns="urn:hornetq"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+            xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
+
+   <connection-factory name="NettyConnectionFactory">
+      <xa>true</xa>
+      <connectors>
+         <connector-ref connector-name="netty"/>
+      </connectors>
+      <entries>
+         <entry name="/ConnectionFactory"/>
+         <entry name="/XAConnectionFactory"/>
+      </entries>
+
+      <ha>true</ha>
+      <!-- Pause 1 second between connect attempts -->
+      <retry-interval>1000</retry-interval>
+
+      <!-- Multiply subsequent reconnect pauses by this multiplier. This can be used to
+      implement an exponential back-off. For our purposes we just set to 1.0 so each reconnect
+      pause is the same length -->
+      <retry-interval-multiplier>1.0</retry-interval-multiplier>
+
+      <!-- Try reconnecting an unlimited number of times (-1 means "unlimited") -->
+      <reconnect-attempts>-1</reconnect-attempts>
+   </connection-factory>
+   
+   <connection-factory name="InVMConnectionFactory">
+      <xa>true</xa>
+      <connectors>
+         <connector-ref connector-name="in-vm"/>
+      </connectors>
+      <entries>
+         <entry name="java:/ConnectionFactory"/>
+         <entry name="java:/XAConnectionFactory"/>
+      </entries>
+   </connection-factory>
+
+   <queue name="DLQ">
+      <entry name="/queue/DLQ"/>
+   </queue>
+   
+   <queue name="ExpiryQueue">
+      <entry name="/queue/ExpiryQueue"/>
+   </queue>
+
+</configuration>
+

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/jms-ds.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/jms-ds.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq/jms-ds.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,26 @@
+<connection-factories>
+   <!--
+    JMS Stuff
+   -->
+
+   <mbean code="org.jboss.jms.jndi.JMSProviderLoader" name="hornetq:service=JMSProviderLoader,name=JMSProvider">
+      <attribute name="ProviderName">DefaultJMSProvider</attribute>
+      <attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
+      <attribute name="FactoryRef">java:/XAConnectionFactory</attribute>
+      <attribute name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
+      <attribute name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
+   </mbean>
+   <!--
+    JMS XA Resource adapter, use this to get transacted JMS in beans
+   -->
+   <tx-connection-factory>
+      <jndi-name>JmsXA</jndi-name>
+      <xa-transaction/>
+      <rar-name>jms-ra.rar</rar-name>
+      <connection-definition>org.hornetq.ra.HornetQRAConnectionFactory</connection-definition>
+      <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
+      <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
+      <max-pool-size>20</max-pool-size>
+      <security-domain-and-application>JmsXARealm</security-domain-and-application>
+   </tx-connection-factory>
+</connection-factories>
\ No newline at end of file

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-configuration.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-configuration.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-configuration.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,109 @@
+<!--
+  ~ Copyright 2009 Red Hat, Inc.
+  ~  Red Hat licenses this file to you under the Apache License, version
+  ~  2.0 (the "License"); you may not use this file except in compliance
+  ~  with the License.  You may obtain a copy of the License at
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~  Unless required by applicable law or agreed to in writing, software
+  ~  distributed under the License is distributed on an "AS IS" BASIS,
+  ~  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+  ~  implied.  See the License for the specific language governing
+  ~  permissions and limitations under the License.
+  -->
+
+<configuration xmlns="urn:hornetq"
+               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+               xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
+
+   <jmx-domain>org.hornetq.backup1</jmx-domain>
+
+   <clustered>true</clustered>
+
+   <backup>true</backup>
+
+   <shared-store>true</shared-store>
+
+   <allow-failback>true</allow-failback>
+
+   <log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>
+   
+   <bindings-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/bindings</bindings-directory>
+
+   <journal-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/journal</journal-directory>
+   
+   <journal-min-files>10</journal-min-files>
+
+   <large-messages-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/largemessages</large-messages-directory>
+
+   <paging-directory>../${hornetq.backup1.data.dir:hornetq-backup1}/paging</paging-directory>
+
+   <connectors>
+      <connector name="netty-connector">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.backup1.remoting.netty.port:5446}"/>
+      </connector>
+
+      <!--invm connector added by the live server on this node, used by the bridges-->
+      <connector name="in-vm">
+         <factory-class>org.hornetq.core.remoting.impl.invm.InVMConnectorFactory</factory-class>
+         <param key="server-id" value="${hornetq.backup1.server-id:0}"/>
+      </connector>
+
+   </connectors>
+
+   <acceptors>   
+      <acceptor name="netty">
+         <factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
+         <param key="host"  value="${jboss.bind.address:localhost}"/>
+         <param key="port"  value="${hornetq.backup1.remoting.netty.port:5446}"/>
+      </acceptor>
+   </acceptors>
+
+    <broadcast-groups>
+        <broadcast-group name="bg-group1">
+            <group-address>231.7.7.7</group-address>
+            <group-port>9876</group-port>
+            <broadcast-period>1000</broadcast-period>
+            <connector-ref>netty-connector</connector-ref>
+        </broadcast-group>
+    </broadcast-groups>
+
+    <discovery-groups>
+        <discovery-group name="dg-group1">
+            <group-address>231.7.7.7</group-address>
+            <group-port>9876</group-port>
+            <refresh-timeout>60000</refresh-timeout>
+        </discovery-group>
+    </discovery-groups>
+
+    <cluster-connections>
+        <cluster-connection name="my-cluster">
+            <address>jms</address>
+            <connector-ref>netty-connector</connector-ref>
+            <discovery-group-ref discovery-group-name="dg-group1"/>
+        </cluster-connection>
+    </cluster-connections>
+
+   <security-settings>
+      <security-setting match="#">
+         <permission type="createNonDurableQueue" roles="guest"/>
+         <permission type="deleteNonDurableQueue" roles="guest"/>
+         <permission type="consume" roles="guest"/>
+         <permission type="send" roles="guest"/>
+      </security-setting>
+   </security-settings>
+
+   <address-settings>
+      <!--default for catch all-->
+      <address-setting match="#">
+         <dead-letter-address>jms.queue.DLQ</dead-letter-address>
+         <expiry-address>jms.queue.ExpiryQueue</expiry-address>
+         <redelivery-delay>0</redelivery-delay>
+         <max-size-bytes>10485760</max-size-bytes>       
+         <message-counter-history-day-limit>10</message-counter-history-day-limit>
+         <address-full-policy>BLOCK</address-full-policy>
+      </address-setting>
+   </address-settings>
+
+</configuration>

Added: trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-jboss-beans.xml
===================================================================
--- trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-jboss-beans.xml	                        (rev 0)
+++ trunk/hornetq-int/src/resources/examples/symmetric-cluster-with-backups-colocated/hornetq-backup1/hornetq-jboss-beans.xml	2011-04-07 07:06:39 UTC (rev 111114)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- The core configuration -->
+   <bean name="BackupConfiguration" class="org.hornetq.core.config.impl.FileConfiguration">
+      <property name="configurationUrl">${jboss.server.home.url}/deploy/hornetq-backup1/hornetq-configuration.xml</property>
+   </bean>
+
+
+	<!-- The core server -->
+   <bean name="BackupHornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
+      <constructor>
+         <parameter>
+            <inject bean="BackupConfiguration"/>
+         </parameter>
+         <parameter>
+            <inject bean="MBeanServer"/>
+         </parameter>
+         <parameter>
+            <inject bean="HornetQSecurityManager"/>
+         </parameter>        
+      </constructor>
+      <start ignored="true"/>
+      <stop ignored="true"/>          
+   </bean>
+   
+   <!-- The JMS server -->
+   <bean name="BackupJMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
+      <constructor>         
+         <parameter>
+            <inject bean="BackupHornetQServer"/>
+         </parameter>         
+      </constructor>
+   </bean>
+
+
+
+</deployment>



More information about the jboss-cvs-commits mailing list