[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