You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ac...@apache.org on 2006/01/14 03:10:27 UTC
svn commit: r368957 - in
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq:
ActiveMQConnectionFactory.java command/ActiveMQDestination.java
Author: aco
Date: Fri Jan 13 18:10:14 2006
New Revision: 368957
URL: http://svn.apache.org/viewcvs?rev=368957&view=rev
Log:
Added initial implementation to make ActiveMQConnectionFactory and ActiveMQDestination referenceable.
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java?rev=368957&r1=368956&r2=368957&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/ActiveMQConnectionFactory.java Fri Jan 13 18:10:14 2006
@@ -20,6 +20,7 @@
import java.net.URISyntaxException;
import java.util.Map;
import java.util.Properties;
+import java.util.Enumeration;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
@@ -29,6 +30,9 @@
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.naming.Context;
+import javax.naming.Referenceable;
+import javax.naming.Reference;
+import javax.naming.NamingException;
import org.apache.activemq.management.JMSStatsImpl;
import org.apache.activemq.management.StatsCapable;
@@ -53,7 +57,7 @@
* @version $Revision: 1.9 $
* @see javax.jms.ConnectionFactory
*/
-public class ActiveMQConnectionFactory implements ConnectionFactory, QueueConnectionFactory, TopicConnectionFactory, StatsCapable {
+public class ActiveMQConnectionFactory implements ConnectionFactory, QueueConnectionFactory, TopicConnectionFactory, StatsCapable, Referenceable {
public static final String DEFAULT_BROKER_URL = "tcp://localhost:61616";
public static final String DEFAULT_USER = null;
@@ -377,6 +381,25 @@
}
}
+ public Properties getProperties() {
+ Properties props = new Properties();
+ props.setProperty("asyncDispatch", Boolean.toString(isAsyncDispatch()));
+ props.setProperty("brokerURL", getBrokerURL());
+ props.setProperty("clientID", getClientID());
+ props.setProperty("copyMessageOnSend", Boolean.toString(isCopyMessageOnSend()));
+ props.setProperty("disableTimeStampsByDefault", Boolean.toString(isDisableTimeStampsByDefault()));
+ props.setProperty("objectMessageSerializationDefered", Boolean.toString(isObjectMessageSerializationDefered()));
+ props.setProperty("onSendPrepareMessageBody", Boolean.toString(isOnSendPrepareMessageBody()));
+ props.setProperty("optimizedMessageDispatch", Boolean.toString(isOptimizedMessageDispatch()));
+ props.setProperty("password", getPassword());
+ props.setProperty("useAsyncSend", Boolean.toString(isUseAsyncSend()));
+ props.setProperty("useCompression", Boolean.toString(isUseCompression()));
+ props.setProperty("useRetroactiveConsumer", Boolean.toString(isUseRetroactiveConsumer()));
+ props.setProperty("username", getUserName());
+
+ return props;
+ }
+
public boolean isOnSendPrepareMessageBody() {
return onSendPrepareMessageBody;
}
@@ -407,6 +430,29 @@
public void setAsyncDispatch(boolean asyncDispatch) {
this.asyncDispatch = asyncDispatch;
+ }
+
+ /**
+ * Retrieve a Reference for this instance to store in JNDI
+ *
+ * @return the built Reference
+ * @throws NamingException if error on building Reference
+ */
+ public Reference getReference() throws NamingException {
+ Reference ref = new Reference(this.getClass().getName());
+
+ try {
+ Properties props = getProperties();
+ for (Enumeration iter = props.propertyNames(); iter.hasMoreElements();) {
+ String key = (String) iter.nextElement();
+ String value = props.getProperty(key);
+ javax.naming.StringRefAddr addr = new javax.naming.StringRefAddr(key, value);
+ ref.add(addr);
+ }
+ } catch (Exception e) {
+ throw new NamingException(e.getMessage());
+ }
+ return ref;
}
}
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java?rev=368957&r1=368956&r2=368957&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQDestination.java Fri Jan 13 18:10:14 2006
@@ -25,6 +25,8 @@
import java.util.Iterator;
import java.util.Map;
import java.util.StringTokenizer;
+import java.util.Properties;
+import java.util.Enumeration;
import javax.jms.Destination;
import javax.jms.JMSException;
@@ -32,6 +34,9 @@
import javax.jms.TemporaryQueue;
import javax.jms.TemporaryTopic;
import javax.jms.Topic;
+import javax.naming.Reference;
+import javax.naming.NamingException;
+import javax.naming.Referenceable;
import org.apache.activemq.util.URISupport;
@@ -39,7 +44,7 @@
* @openwire:marshaller
* @version $Revision: 1.10 $
*/
-abstract public class ActiveMQDestination implements DataStructure, Destination, Externalizable, Comparable {
+abstract public class ActiveMQDestination implements DataStructure, Destination, Externalizable, Comparable, Referenceable {
private static final long serialVersionUID = -3885260014960795889L;
@@ -330,4 +335,43 @@
return false;
}
+ public Properties getProperties() {
+ Properties props = new Properties();
+
+ props.setProperty("composite", Boolean.toString(isComposite()));
+ props.setProperty("destinationType", Byte.toString(getDestinationType()));
+ props.setProperty("destinationTypeAsString", getDestinationTypeAsString());
+ props.setProperty("marshallAware", Boolean.toString(isMarshallAware()));
+ props.setProperty("physicalName", getPhysicalName());
+ props.setProperty("qualifiedName", getQualifiedName());
+ props.setProperty("qualifiedPrefix", getQualifiedPrefix());
+ props.setProperty("queue", Boolean.toString(isQueue()));
+ props.setProperty("temporary", Boolean.toString(isTemporary()));
+ props.setProperty("topic", Boolean.toString(isTopic()));
+
+ return props;
+ }
+
+ /**
+ * Retrieve a Reference for this instance to store in JNDI
+ *
+ * @return the built Reference
+ * @throws javax.naming.NamingException if error on building Reference
+ */
+ public Reference getReference() throws NamingException {
+ Reference ref = new Reference(this.getClass().getName());
+
+ try {
+ Properties props = getProperties();
+ for (Enumeration iter = props.propertyNames(); iter.hasMoreElements();) {
+ String key = (String) iter.nextElement();
+ String value = props.getProperty(key);
+ javax.naming.StringRefAddr addr = new javax.naming.StringRefAddr(key, value);
+ ref.add(addr);
+ }
+ } catch (Exception e) {
+ throw new NamingException(e.getMessage());
+ }
+ return ref;
+ }
}