[jboss-cvs] JBossAS SVN: r100894 - in branches/Branch_Hornet_Temporary_2/hornetq-int/src: resources and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Feb 11 15:24:47 EST 2010
Author: clebert.suconic at jboss.com
Date: 2010-02-11 15:24:47 -0500 (Thu, 11 Feb 2010)
New Revision: 100894
Added:
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQConfigParserDeployer.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreDeployment.java
Modified:
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DestinationFactoryDeployerPlugin.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQJMSDeployment.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml
Log:
deployers change
Modified: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DestinationFactoryDeployerPlugin.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DestinationFactoryDeployerPlugin.java 2010-02-11 20:14:58 UTC (rev 100893)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/DestinationFactoryDeployerPlugin.java 2010-02-11 20:24:47 UTC (rev 100894)
@@ -3,11 +3,10 @@
import javax.jms.Queue;
import javax.jms.Topic;
-import org.hornetq.core.server.cluster.QueueConfiguration;
import org.hornetq.jms.server.JMSServerManager;
import org.hornetq.jms.server.config.JMSConfiguration;
import org.hornetq.jms.server.config.impl.JMSConfigurationImpl;
-import org.hornetq.jms.server.config.impl.QueueConfigurationImpl;
+import org.hornetq.jms.server.config.impl.JMSQueueConfigurationImpl;
import org.hornetq.jms.server.config.impl.TopicConfigurationImpl;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.structure.spi.DeploymentUnit;
@@ -72,7 +71,7 @@
return false;
} else if (destinationType.equals(Queue.class.getName())) {
config.getQueueConfigurations().add(
- new QueueConfigurationImpl(destinationName, null, true,
+ new JMSQueueConfigurationImpl(destinationName, null, true,
"queue/" + destinationName));
} else if (destinationType.equals(Topic.class.getName())) {
config.getTopicConfigurations().add(new TopicConfigurationImpl(destinationName, "topic/" + destinationName));
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQConfigParserDeployer.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQConfigParserDeployer.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQConfigParserDeployer.java 2010-02-11 20:24:47 UTC (rev 100894)
@@ -0,0 +1,64 @@
+package org.jboss.as.integration.hornetq.deployers;
+
+import java.io.InputStream;
+
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.deployers.impl.FileConfigurationParser;
+import org.jboss.deployers.vfs.spi.deployer.AbstractVFSParsingDeployer;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.virtual.VirtualFile;
+
+/**
+ * This Deployer will take a hornetq-configuration.xml parse the Configuration
+ * and attach the Configuration output into the deployment unit. Another
+ * deployer that takes Configuration as an input will then take over and install
+ * the queues at the proper places.
+ *
+ * @see HornetQJMSRealDeployer
+ *
+ * @author <mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ *
+ */
+public class HornetQConfigParserDeployer extends AbstractVFSParsingDeployer<Configuration>
+{
+
+ private static final Logger log = Logger.getLogger(HornetQConfigParserDeployer.class);
+
+ public static final String FILENAME = "hornetq-jms.xml";
+
+ private final FileConfigurationParser parser;
+
+ public HornetQConfigParserDeployer(final String name)
+ {
+ super(Configuration.class);
+
+ this.parser = new FileConfigurationParser();
+
+ this.setName(name);
+ }
+
+ @Override
+ protected Configuration parse(VFSDeploymentUnit unit, VirtualFile file, Configuration root) throws Exception
+ {
+
+ InputStream deploymentStream = null;
+
+ try
+ {
+ deploymentStream = file.openStream();
+ Configuration config = parser.parseMainConfig(deploymentStream);
+ log.info("Main Config = " + config);
+
+ return config;
+ } finally
+ {
+ try
+ {
+ deploymentStream.close();
+ } catch (Exception ignored)
+ {
+ }
+ }
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreConfigRealDeployer.java 2010-02-11 20:24:47 UTC (rev 100894)
@@ -0,0 +1,54 @@
+package org.jboss.as.integration.hornetq.deployers;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.hornetq.core.config.Configuration;
+import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.vfs.spi.deployer.AbstractSimpleVFSRealDeployer;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+
+/**
+ * In a regular flow HornetQCoreParserDeployer will parer hornetq-configuration.xml or hornetq-queues.xml and it
+ * will jump-start the deployment for Configuration.class. This deployer will
+ * then be called directly by the VFS Deployment Framework, as the Input object
+ * for this is a Configuration class.
+ *
+ * In an alternate flow, other deployers (e.g. TorqueBox) may install a Configuration object
+ * directly and this deployer will take over without the need of a real XML file
+ *
+ * @author <mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ *
+ */
+public class HornetQCoreConfigRealDeployer extends AbstractSimpleVFSRealDeployer<Configuration>
+{
+
+ private final AtomicInteger idGenerator = new AtomicInteger(1);
+
+ public HornetQCoreConfigRealDeployer()
+ {
+ super(Configuration.class);
+ addOutput(BeanMetaData.class);
+ }
+
+ @Override
+ public void deploy(VFSDeploymentUnit unit, Configuration config) throws DeploymentException
+ {
+ String name = "HornetQCoreDeployment::" + idGenerator.incrementAndGet();
+
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(name, HornetQCoreDeployment.class.getName());
+
+ builder.addPropertyMetaData("name", name);
+
+ builder.addPropertyMetaData("server", builder.createInject("HornetQServer"));
+
+ builder.addPropertyMetaData("config", config);
+
+ BeanMetaData bean = builder.getBeanMetaData();
+
+ unit.addAttachment(name, bean);
+ }
+
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreDeployment.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreDeployment.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQCoreDeployment.java 2010-02-11 20:24:47 UTC (rev 100894)
@@ -0,0 +1,112 @@
+package org.jboss.as.integration.hornetq.deployers;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.hornetq.api.core.SimpleString;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.CoreQueueConfiguration;
+import org.hornetq.core.security.Role;
+import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.settings.impl.AddressSettings;
+import org.jboss.beans.metadata.api.annotations.Start;
+import org.jboss.beans.metadata.api.annotations.Stop;
+import org.jboss.logging.Logger;
+
+/**
+ *
+ * Objects of this class are created by the MicroContainer through
+ * BeanMetadataClass at {@link HornetQCoreRealDeployer}
+ *
+ * @see HornetQJMSRealDeployer
+ * */
+public class HornetQCoreDeployment
+{
+
+ private static final Logger log = Logger.getLogger(HornetQCoreDeployment.class);
+
+ private HornetQServer server;
+
+ private String name;
+
+ private Configuration config;
+
+ public Configuration getJmsConfig()
+ {
+ return config;
+ }
+
+ public void setConfig(Configuration config)
+ {
+ this.config = config;
+ }
+
+ public HornetQServer getServer()
+ {
+ return server;
+ }
+
+ public void setServer(HornetQServer server)
+ {
+ this.server = server;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ @Start
+ public void start()
+ {
+ log.info("Being started!");
+
+ for (Map.Entry<String, AddressSettings> entry : config.getAddressesSettings().entrySet())
+ {
+ server.getAddressSettingsRepository().addMatch(entry.getKey(), entry.getValue());
+ }
+
+ for (Map.Entry<String, Set<Role>> entry : config.getSecurityRoles().entrySet())
+ {
+ server.getSecurityRepository().addMatch(entry.getKey(), entry.getValue());
+ }
+
+ for (CoreQueueConfiguration coreQueue : config.getQueueConfigurations())
+ {
+ try
+ {
+ server.createQueue(new SimpleString(coreQueue.getAddress()), new SimpleString(coreQueue.getName()), new SimpleString(
+ coreQueue.getFilterString()), coreQueue.isDurable(), false);
+ }
+ catch (Exception e)
+ {
+ log.warn("Error on creating queue " + coreQueue.getName() + " address = " + coreQueue.getAddress(), e);
+ }
+ }
+ }
+
+ @Stop
+ public void stop()
+ {
+ log.info("Being stopped");
+
+ for (String entry : config.getAddressesSettings().keySet())
+ {
+ server.getAddressSettingsRepository().removeMatch(entry);
+ }
+
+ for (String entry : config.getSecurityRoles().keySet())
+ {
+ server.getSecurityRepository().removeMatch(entry);
+ }
+
+
+ // Undeploy core queues means nothing on core queues, so no need to do anything here
+ }
+
+}
Modified: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQJMSDeployment.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQJMSDeployment.java 2010-02-11 20:14:58 UTC (rev 100893)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/deployers/HornetQJMSDeployment.java 2010-02-11 20:24:47 UTC (rev 100894)
@@ -3,7 +3,7 @@
import org.hornetq.jms.server.JMSServerManager;
import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
import org.hornetq.jms.server.config.JMSConfiguration;
-import org.hornetq.jms.server.config.QueueConfiguration;
+import org.hornetq.jms.server.config.JMSQueueConfiguration;
import org.hornetq.jms.server.config.TopicConfiguration;
import org.jboss.beans.metadata.api.annotations.Start;
import org.jboss.beans.metadata.api.annotations.Stop;
@@ -73,7 +73,7 @@
}
}
- for (QueueConfiguration queueConfig : jmsConfig.getQueueConfigurations())
+ for (JMSQueueConfiguration queueConfig : jmsConfig.getQueueConfigurations())
{
for (String jndiBinding : queueConfig.getBindings())
{
@@ -121,12 +121,12 @@
}
}
- for (QueueConfiguration queueConfig : jmsConfig.getQueueConfigurations())
+ for (JMSQueueConfiguration queueConfig : jmsConfig.getQueueConfigurations())
{
log.info("Destroying Queue " + queueConfig.getName());
try
{
- jmsServer.destroyQueue(queueConfig.getName());
+ jmsServer.undeployDestination(queueConfig.getName());
} catch (Exception e)
{
log.warn("Error deploying Queue: " + queueConfig.getName(), e);
@@ -138,7 +138,7 @@
log.info("Destroying Topic " + topicConfig.getName());
try
{
- jmsServer.destroyTopic(topicConfig.getName());
+ jmsServer.undeployDestination(topicConfig.getName());
} catch (Exception e)
{
log.warn("Error destroying Topic: " + topicConfig.getName(), e);
Modified: branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml 2010-02-11 20:14:58 UTC (rev 100893)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml 2010-02-11 20:24:47 UTC (rev 100894)
@@ -1,6 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="urn:jboss:bean-deployer:2.0">
+ <bean name="HornetQConfigParserDeployerFile1" class="org.jboss.as.integration.hornetq.deployers.HornetQConfigParserDeployer">
+ <constructor>
+ <parameter>hornetq-configuration.xml</parameter>
+ </constructor>
+ </bean>
+
+ <bean name="HornetQConfigParserDeployerFile2" class="org.jboss.as.integration.hornetq.deployers.HornetQConfigParserDeployer">
+ <constructor>
+ <parameter>hornetq-queues.xml</parameter>
+ </constructor>
+ </bean>
+
+ <bean name="HornetQCoreConfigRealDeployer" class="org.jboss.as.integration.hornetq.deployers.HornetQCoreConfigRealDeployer"/>
+
<bean name="HornetQJMSParserDeployer" class="org.jboss.as.integration.hornetq.deployers.HornetQJMSParserDeployer"/>
<bean name="HornetQJMSRealDeployer" class="org.jboss.as.integration.hornetq.deployers.HornetQJMSRealDeployer"/>
More information about the jboss-cvs-commits
mailing list