package org.jboss.ejb.plugins.inflow;
import javax.jms.Session;
import org.jboss.deployment.DeploymentException;
import org.jboss.metadata.ActivationConfigPropertyMetaData;
import org.jboss.metadata.MessageDrivenMetaData;
import org.jboss.metadata.MetaData;
import org.w3c.dom.Element;
public class JBossJMSMessageEndpointFactory
extends JBossMessageEndpointFactory
{
protected static String jmsra = "jms-ra.rar";
protected String resolveResourceAdapterName() throws DeploymentException
{
String result = super.resolveResourceAdapterName();
if (result == null)
result = jmsra;
return result;
}
protected void augmentActivationConfigProperties() throws DeploymentException
{
super.augmentActivationConfigProperties();
if (metaData.isJMSMessagingType())
{
checkActivationConfig("destination", metaData.getDestinationJndiName());
checkActivationConfig("destinationType", metaData.getDestinationType());
checkActivationConfig("messageSelector", metaData.getMessageSelector());
if (Session.DUPS_OK_ACKNOWLEDGE == metaData.getAcknowledgeMode())
checkActivationConfig("acknowledgeMode", "DUPS_OK_ACKNOWLEDGE");
else
checkActivationConfig("acknowledgeMode", "AUTO_ACKNOWLEDGE");
if (MessageDrivenMetaData.DURABLE_SUBSCRIPTION == metaData.getSubscriptionDurability())
checkActivationConfig("subscriptionDurability", "Durable");
else
checkActivationConfig("subscriptionDurability", "NonDurable");
checkActivationConfig("clientID", metaData.getClientId());
checkActivationConfig("subscriptionName", metaData.getSubscriptionId());
if (jmsra.equals(resourceAdapterName))
{
checkActivationConfig("user", metaData.getUser());
checkActivationConfig("password", metaData.getPasswd());
Element proxyConfig = invokerMetaData.getProxyFactoryConfig();
checkActivationConfig("maxMessages", MetaData.getOptionalChildContent(proxyConfig, "MaxMessages"));
checkActivationConfig("minSession", MetaData.getOptionalChildContent(proxyConfig, "MinimumSize"));
checkActivationConfig("maxSession", MetaData.getOptionalChildContent(proxyConfig, "MaximumSize"));
checkActivationConfig("keepAlive", MetaData.getOptionalChildContent(proxyConfig, "KeepAliveMillis"));
Element mdbConfig = MetaData.getOptionalChild(proxyConfig, "MDBConfig");
if (mdbConfig != null)
{
checkActivationConfig("reconnectInterval", MetaData.getOptionalChildContent(proxyConfig, "ReconnectIntervalSec"));
checkActivationConfig("deliveryActive", MetaData.getOptionalChildContent(proxyConfig, "DeliveryActive"));
checkActivationConfig("providerAdapterJNDI", MetaData.getOptionalChildContent(proxyConfig, "JMSProviderAdapterJNDI"));
}
}
}
}
void checkActivationConfig(String name, String value)
{
if (value != null && properties.containsKey(name) == false)
{
ActivationConfigPropertyMetaData md = new ActivationConfigPropertyMetaData(name, value);
properties.put(name, md);
}
}
}