[jboss-cvs] JBossAS SVN: r58222 - in trunk/server/src/main/org/jboss: deployment metadata

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 8 18:12:22 EST 2006


Author: alex.loubyansky at jboss.com
Date: 2006-11-08 18:12:20 -0500 (Wed, 08 Nov 2006)
New Revision: 58222

Modified:
   trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
   trunk/server/src/main/org/jboss/metadata/MessageDrivenMetaData.java
Log:
complete message-driven

Modified: trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java	2006-11-08 22:34:58 UTC (rev 58221)
+++ trunk/server/src/main/org/jboss/deployment/EjbJarObjectFactory.java	2006-11-08 23:12:20 UTC (rev 58222)
@@ -36,10 +36,12 @@
 import org.jboss.metadata.SecurityRoleMetaData;
 import org.jboss.metadata.SessionMetaData;
 import org.jboss.metadata.BeanMetaData;
+import org.jboss.metadata.ActivationConfigPropertyMetaData;
 import org.jboss.xb.binding.ObjectModelFactory;
 import org.jboss.xb.binding.UnmarshallingContext;
 import org.xml.sax.Attributes;
 
+
 /**
  * An ObjectModelFactory implementation for parsing ejb-jar.xml descriptors.
  * 
@@ -177,6 +179,12 @@
          return child;
       else if (localName.equals("security-identity"))
          child = new SecurityIdentityMetaData();
+      else if(localName.equals("message-driven-destination"))
+         child = mdb;
+      else if(localName.equals("activation-config"))
+         child = mdb;
+      else if(localName.equals("activation-config-property"))
+         child = new ActivationConfigPropertyMetaData();
       else if(log.isTraceEnabled())
       {
          log.trace("Ignoring child of message-driven: " + localName);
@@ -367,6 +375,12 @@
       }
    }
 
+   public void addChild(MessageDrivenMetaData mdb, ActivationConfigPropertyMetaData child,
+                        UnmarshallingContext ctx, String namespaceURI, String localName)
+   {
+      mdb.getActivationConfigProperties().put(child.getName(), child);
+   }
+
    /**
     * Set text values of ejb-jar/* children
     * @param dd
@@ -520,6 +534,63 @@
       }
    }
 
+   public void setValue(MessageDrivenMetaData mdb,
+         UnmarshallingContext navigator, String namespaceURI, String localName,
+         String value)
+   {
+      if( localName.equals("display-name") )
+         mdb.setDisplayName(value);
+      else if( localName.equals("description") )
+         mdb.setDescription(value);
+      else if( localName.equals("ejb-name") )
+         mdb.setEjbName(value);
+      else if(localName.equals("ejb-class"))
+         mdb.setEjbClass(value);
+      else if(localName.equals("transaction-type"))
+      {
+         if("Bean".equals(value))
+         {
+            mdb.setContainerManagedTx(false);
+         }
+         else if("Container".equals(value))
+         {
+            mdb.setContainerManagedTx(true);
+         }
+         else
+         {
+            throw new IllegalStateException("Unexpected value for transaction-type: " + value);
+         }
+      }
+      else if(localName.equals("message-selector"))
+      {
+         mdb.setMessageSelector(value);
+      }
+      else if(localName.equals("messaging-type"))
+      {
+         mdb.setMessagingType(value);
+      }
+      else if(localName.equals("message-destination-type") || localName.equals("destination-type"))
+      {
+         mdb.setDestinationType(value);
+      }
+      else if(localName.equals("message-destination-type"))
+      {
+         mdb.setDestinationType(value);
+      }
+      else if(localName.equals("message-destination-link"))
+      {
+         mdb.setDestinationLink(value);
+      }
+      else if(localName.equals("acknowledge-mode"))
+      {
+         mdb.setAcknowledgeMode(value);
+      }
+      else if(localName.equals("subscription-durability"))
+      {
+         mdb.setSubscriptionDurability(value);
+      }
+   }
+
    public void setValue(IconMetaData icon,
          UnmarshallingContext navigator, String namespaceURI, String localName,
          String value)
@@ -652,6 +723,20 @@
       }
    }
 
+   public void setValue(ActivationConfigPropertyMetaData prop,
+         UnmarshallingContext navigator, String namespaceURI, String localName,
+         String value)
+   {
+      if(localName.equals("activation-config-property-name"))
+      {
+         prop.setName(value);
+      }
+      else if(localName.equals("activation-config-property-value"))
+      {
+         prop.setValue(value);
+      }
+   }
+
    // inner
 
    public static class CMPFieldMetaData

Modified: trunk/server/src/main/org/jboss/metadata/MessageDrivenMetaData.java
===================================================================
--- trunk/server/src/main/org/jboss/metadata/MessageDrivenMetaData.java	2006-11-08 22:34:58 UTC (rev 58221)
+++ trunk/server/src/main/org/jboss/metadata/MessageDrivenMetaData.java	2006-11-08 23:12:20 UTC (rev 58222)
@@ -21,7 +21,6 @@
 */
 package org.jboss.metadata;
 
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 
@@ -29,7 +28,6 @@
 import javax.jms.Session;
 
 import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
 
 import org.jboss.invocation.InvocationType;
 import org.jboss.deployment.DeploymentException;
@@ -65,7 +63,7 @@
    private int acknowledgeMode = AUTO_ACKNOWLEDGE_MODE;
    private byte subscriptionDurability = NON_DURABLE_SUBSCRIPTION;
    private byte methodTransactionType = TX_UNSET;
-   private String messagingType;
+   private String messagingType = DEFAULT_MESSAGING_TYPE;
    private String destinationType;
    private String destinationLink;
    private String messageSelector;
@@ -128,11 +126,34 @@
       }
    }
 
+   public void setAcknowledgeMode(String ack)
+   {
+      if( ack == null || ack.equalsIgnoreCase("Auto-acknowledge") ||
+         ack.equalsIgnoreCase("AUTO_ACKNOWLEDGE"))
+      {
+         acknowledgeMode = AUTO_ACKNOWLEDGE_MODE;
+      }
+      else if (ack.equalsIgnoreCase("Dups-ok-acknowledge") ||
+         ack.equalsIgnoreCase("DUPS_OK_ACKNOWLEDGE"))
+      {
+         acknowledgeMode = DUPS_OK_ACKNOWLEDGE_MODE;
+      }
+      else
+      {
+         throw new IllegalStateException("invalid acknowledge-mode: " + ack);
+      }
+   }
+
    public String getMessagingType()
    {
       return messagingType;
    }
 
+   public void setMessagingType(String messagingType)
+   {
+      this.messagingType = messagingType;
+   }
+
    public boolean isJMSMessagingType()
    {
       return DEFAULT_MESSAGING_TYPE.equals(messagingType);
@@ -143,16 +164,67 @@
       return destinationType;
    }
 
+   public void setDestinationType(String destinationType)
+   {
+      this.destinationType = destinationType;
+   }
+
    public String getDestinationLink()
    {
       return destinationLink;
    }
-   
+
+   public void setDestinationLink(String destinationLink)
+   {
+      this.destinationLink = destinationLink;
+   }
+
    public String getMessageSelector()
    {
       return messageSelector;
    }
-   
+
+   public void setMessageSelector(String selector)
+   {
+      this.messageSelector = selector;
+      if( messageSelector != null )
+      {
+         //AS Check for Carriage Returns, remove them and trim the selector
+         int i = -1;
+         // Note this only works this way because the search and replace are distinct
+         while( ( i = messageSelector.indexOf( "\r\n" ) ) >= 0 )
+         {
+            // Replace \r\n by a space
+            messageSelector = ( i == 0 ? "" : messageSelector.substring( 0, i ) ) +
+            " " +
+            ( i >= messageSelector.length() - 2 ? "" : messageSelector.substring( i + 2 ) );
+         }
+         i = -1;
+         while( ( i = messageSelector.indexOf( "\r" ) ) >= 0 )
+         {
+            // Replace \r by a space
+            messageSelector = ( i == 0 ? "" : messageSelector.substring( 0, i ) ) +
+            " " +
+            ( i >= messageSelector.length() - 1 ? "" : messageSelector.substring( i + 1 ) );
+         }
+         i = -1;
+         while( ( i = messageSelector.indexOf( "\n" ) ) >= 0 )
+         {
+            // Replace \n by a space
+            messageSelector = ( i == 0 ? "" : messageSelector.substring( 0, i ) ) +
+            " " +
+            ( i >= messageSelector.length() - 1 ? "" : messageSelector.substring( i + 1 ) );
+         }
+         // Finally trim it. This is here because only carriage returns and linefeeds are transformed
+         // to spaces
+         messageSelector = messageSelector.trim();
+         if( "".equals( messageSelector ) )
+         {
+            messageSelector = null;
+         }
+      }
+   }
+
    public String getDestinationJndiName()
    {
       return destinationJndiName;
@@ -230,7 +302,20 @@
    {
       return subscriptionDurability;
    }
-   
+
+   public void setSubscriptionDurability(String subscr)
+   {
+      // Should we do sanity check??
+      if( subscr != null && subscr.equals("Durable") )
+      {
+         subscriptionDurability = DURABLE_SUBSCRIPTION;
+      }
+      else
+      {
+         subscriptionDurability = NON_DURABLE_SUBSCRIPTION;//Default
+      }
+   }
+
    public String getDefaultConfigurationName()
    {
       if (isJMSMessagingType() == false)
@@ -274,43 +359,7 @@
    {
       super.importEjbJarXml(element);
       
-      messageSelector = getOptionalChildContent(element, "message-selector");
-      if( messageSelector != null )
-      {
-         //AS Check for Carriage Returns, remove them and trim the selector
-         int i = -1;
-         // Note this only works this way because the search and replace are distinct
-         while( ( i = messageSelector.indexOf( "\r\n" ) ) >= 0 )
-         {
-            // Replace \r\n by a space
-            messageSelector = ( i == 0 ? "" : messageSelector.substring( 0, i ) ) +
-            " " +
-            ( i >= messageSelector.length() - 2 ? "" : messageSelector.substring( i + 2 ) );
-         }
-         i = -1;
-         while( ( i = messageSelector.indexOf( "\r" ) ) >= 0 )
-         {
-            // Replace \r by a space
-            messageSelector = ( i == 0 ? "" : messageSelector.substring( 0, i ) ) +
-            " " +
-            ( i >= messageSelector.length() - 1 ? "" : messageSelector.substring( i + 1 ) );
-         }
-         i = -1;
-         while( ( i = messageSelector.indexOf( "\n" ) ) >= 0 )
-         {
-            // Replace \n by a space
-            messageSelector = ( i == 0 ? "" : messageSelector.substring( 0, i ) ) +
-            " " +
-            ( i >= messageSelector.length() - 1 ? "" : messageSelector.substring( i + 1 ) );
-         }
-         // Finally trim it. This is here because only carriage returns and linefeeds are transformed
-         // to spaces
-         messageSelector = messageSelector.trim();
-         if( "".equals( messageSelector ) )
-         {
-            messageSelector = null;
-         }
-      }
+      setMessageSelector(getOptionalChildContent(element, "message-selector"));
 
       // messaging-type is new to EJB-2.1
       messagingType = getOptionalChildContent(element, "messaging-type", DEFAULT_MESSAGING_TYPE);
@@ -323,15 +372,7 @@
          if (destinationType.equals("javax.jms.Topic"))
          {
             String subscr = getOptionalChildContent(destination, "subscription-durability");
-            // Should we do sanity check??
-            if( subscr != null && subscr.equals("Durable") )
-            {
-               subscriptionDurability = DURABLE_SUBSCRIPTION;
-            }
-            else
-            {
-               subscriptionDurability = NON_DURABLE_SUBSCRIPTION;//Default
-            }
+            setSubscriptionDurability(subscr);
          }
       }
 
@@ -349,20 +390,7 @@
       {
          containerManagedTx = false;
          String ack = getOptionalChildContent(element, "acknowledge-mode");
-         if( ack == null || ack.equalsIgnoreCase("Auto-acknowledge") ||
-            ack.equalsIgnoreCase("AUTO_ACKNOWLEDGE"))
-         {
-            acknowledgeMode = AUTO_ACKNOWLEDGE_MODE;
-         }
-         else if (ack.equalsIgnoreCase("Dups-ok-acknowledge") ||
-            ack.equalsIgnoreCase("DUPS_OK_ACKNOWLEDGE"))
-         {
-            acknowledgeMode = DUPS_OK_ACKNOWLEDGE_MODE;
-         }
-         else
-         {
-            throw new DeploymentException("invalid acknowledge-mode: " + ack);
-         }
+         setAcknowledgeMode(ack);
       }
       else if (transactionType.equals("Container"))
       {




More information about the jboss-cvs-commits mailing list