[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