[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