[hornetq-commits] JBoss hornetq SVN: r7992 - in trunk: src/main/org/hornetq/jms/client and 3 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Sep 24 19:06:30 EDT 2009
Author: plugtree
Date: 2009-09-24 19:06:29 -0400 (Thu, 24 Sep 2009)
New Revision: 7992
Modified:
trunk/src/main/org/hornetq/jms/HornetQDestination.java
trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java
trunk/src/main/org/hornetq/jms/referenceable/ConnectionFactoryObjectFactory.java
trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactory.java
trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactoryImpl.java
trunk/src/main/org/hornetq/ra/HornetQResourceAdapter.java
trunk/tests/jms-tests/src/org/hornetq/jms/tests/ReferenceableTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-24 Added Referenceable support for Destinations and ConnectionFactories.
Modified: trunk/src/main/org/hornetq/jms/HornetQDestination.java
===================================================================
--- trunk/src/main/org/hornetq/jms/HornetQDestination.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/src/main/org/hornetq/jms/HornetQDestination.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -19,6 +19,7 @@
import javax.jms.Destination;
import javax.naming.NamingException;
import javax.naming.Reference;
+import javax.naming.Referenceable;
import org.hornetq.jms.referenceable.DestinationObjectFactory;
import org.hornetq.jms.referenceable.SerializableObjectRefAddr;
@@ -32,7 +33,7 @@
*
* $Id$
*/
-public abstract class HornetQDestination implements Destination, Serializable/*, Referenceable http://jira.jboss.org/jira/browse/JBMESSAGING-395*/
+public abstract class HornetQDestination implements Destination, Serializable, Referenceable
{
// Constants -----------------------------------------------------
Modified: trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/src/main/org/hornetq/jms/client/HornetQConnectionFactory.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -32,6 +32,7 @@
import javax.jms.XATopicConnectionFactory;
import javax.naming.NamingException;
import javax.naming.Reference;
+import javax.naming.Referenceable;
import org.hornetq.core.client.ClientSessionFactory;
import org.hornetq.core.client.impl.ClientSessionFactoryImpl;
@@ -47,10 +48,7 @@
* @version <tt>$Revision$</tt> $Id$
*/
public class HornetQConnectionFactory implements ConnectionFactory, QueueConnectionFactory, TopicConnectionFactory,
- XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory, Serializable/*
- * , Referenceable
- * http://jira.jboss.org/jira/browse/JBMESSAGING-395
- */
+ XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory, Serializable, Referenceable
{
// Constants ------------------------------------------------------------------------------------
Modified: trunk/src/main/org/hornetq/jms/referenceable/ConnectionFactoryObjectFactory.java
===================================================================
--- trunk/src/main/org/hornetq/jms/referenceable/ConnectionFactoryObjectFactory.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/src/main/org/hornetq/jms/referenceable/ConnectionFactoryObjectFactory.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -15,13 +15,12 @@
import java.util.Hashtable;
+import javax.jms.ConnectionFactory;
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.Reference;
import javax.naming.spi.ObjectFactory;
-import org.hornetq.jms.client.HornetQConnectionFactory;
-
/**
*
* A ConnectionFactoryObjectFactory.
@@ -43,7 +42,7 @@
byte[] bytes = (byte[])r.get("HornetQ-CF").getContent();
// Deserialize
- return (HornetQConnectionFactory)SerializableObjectRefAddr.deserialize(bytes);
+ return (ConnectionFactory)SerializableObjectRefAddr.deserialize(bytes);
}
}
Modified: trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactory.java
===================================================================
--- trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactory.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactory.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -21,6 +21,7 @@
import javax.jms.XAConnectionFactory;
import javax.jms.XAQueueConnectionFactory;
import javax.jms.XATopicConnectionFactory;
+import javax.naming.Referenceable;
/**
* An aggregate interface for the JMS connection factories
@@ -30,7 +31,7 @@
* @version $Revision: $
*/
public interface HornetQRAConnectionFactory extends ConnectionFactory, TopicConnectionFactory, QueueConnectionFactory,
- XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory, Serializable
+ XAConnectionFactory, XAQueueConnectionFactory, XATopicConnectionFactory, Serializable, Referenceable
{
/** Connection factory capable of handling connections */
public static final int CONNECTION = 0;
Modified: trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactoryImpl.java
===================================================================
--- trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactoryImpl.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/src/main/org/hornetq/ra/HornetQRAConnectionFactoryImpl.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -20,11 +20,13 @@
import javax.jms.XAConnection;
import javax.jms.XAQueueConnection;
import javax.jms.XATopicConnection;
+import javax.naming.NamingException;
import javax.naming.Reference;
-import javax.resource.Referenceable;
import javax.resource.spi.ConnectionManager;
import org.hornetq.core.logging.Logger;
+import org.hornetq.jms.referenceable.ConnectionFactoryObjectFactory;
+import org.hornetq.jms.referenceable.SerializableObjectRefAddr;
/**
* The connection factory
@@ -33,7 +35,7 @@
* @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
* @version $Revision: $
*/
-public class HornetQRAConnectionFactoryImpl implements HornetQRAConnectionFactory, Referenceable
+public class HornetQRAConnectionFactoryImpl implements HornetQRAConnectionFactory
{
/** Serial version UID */
static final long serialVersionUID = 7981708919479859360L;
@@ -111,8 +113,24 @@
{
log.trace("getReference()");
}
-
- return reference;
+ if(reference == null)
+ {
+ try
+ {
+ reference = new Reference(this.getClass().getCanonicalName(),
+ new SerializableObjectRefAddr("HornetQ-CF", this),
+ ConnectionFactoryObjectFactory.class.getCanonicalName(),
+ null);
+ }
+ catch (NamingException e)
+ {
+ log.error("Error while giving object Reference.", e);
+ }
+ }
+
+ return reference;
+
+
}
/**
Modified: trunk/src/main/org/hornetq/ra/HornetQResourceAdapter.java
===================================================================
--- trunk/src/main/org/hornetq/ra/HornetQResourceAdapter.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/src/main/org/hornetq/ra/HornetQResourceAdapter.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -12,6 +12,7 @@
*/
package org.hornetq.ra;
+import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -43,7 +44,7 @@
* @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
* @version $Revision: $
*/
-public class HornetQResourceAdapter implements ResourceAdapter
+public class HornetQResourceAdapter implements ResourceAdapter, Serializable
{
/**
* The logger
Modified: trunk/tests/jms-tests/src/org/hornetq/jms/tests/ReferenceableTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/hornetq/jms/tests/ReferenceableTest.java 2009-09-24 22:02:11 UTC (rev 7991)
+++ trunk/tests/jms-tests/src/org/hornetq/jms/tests/ReferenceableTest.java 2009-09-24 23:06:29 UTC (rev 7992)
@@ -22,7 +22,18 @@
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
+import javax.naming.Reference;
+import javax.naming.Referenceable;
+import org.hornetq.jms.HornetQQueue;
+import org.hornetq.jms.HornetQTopic;
+import org.hornetq.jms.client.HornetQConnectionFactory;
+import org.hornetq.jms.referenceable.ConnectionFactoryObjectFactory;
+import org.hornetq.jms.referenceable.DestinationObjectFactory;
+import org.hornetq.ra.HornetQRAConnectionFactory;
+import org.hornetq.ra.HornetQRAManagedConnectionFactory;
+import org.hornetq.ra.HornetQResourceAdapter;
+
/**
*
* A ReferenceableTest.
@@ -55,15 +66,14 @@
assertTrue(topic1 instanceof Serializable);
}
- /* http://jira.jboss.org/jira/browse/JBMESSAGING-395
public void testReferenceable() throws Exception
{
assertTrue(cf instanceof Referenceable);
- assertTrue(queue instanceof Referenceable);
+ assertTrue(queue1 instanceof Referenceable);
- assertTrue(topic instanceof Referenceable);
+ assertTrue(topic1 instanceof Referenceable);
}
public void testReferenceCF() throws Exception
@@ -78,16 +88,16 @@
Object instance = factory.getObjectInstance(cfRef, null, null, null);
- assertTrue(instance instanceof HornetQRAConnectionFactory);
+ assertTrue(instance instanceof HornetQConnectionFactory);
- HornetQRAConnectionFactory cf2 = (HornetQRAConnectionFactory)instance;
+ HornetQConnectionFactory cf2 = (HornetQConnectionFactory)instance;
- simpleSendReceive(cf2, queue);
+ simpleSendReceive(cf2, queue1);
}
public void testReferenceQueue() throws Exception
{
- Reference queueRef = ((Referenceable)queue).getReference();
+ Reference queueRef = ((Referenceable)queue1).getReference();
String factoryName = queueRef.getFactoryClassName();
@@ -101,7 +111,7 @@
HornetQQueue queue2 = (HornetQQueue)instance;
- assertEquals(queue.getQueueName(), queue2.getQueueName());
+ assertEquals(queue1.getQueueName(), queue2.getQueueName());
simpleSendReceive(cf, queue2);
@@ -109,7 +119,7 @@
public void testReferenceTopic() throws Exception
{
- Reference topicRef = ((Referenceable)topic).getReference();
+ Reference topicRef = ((Referenceable)topic1).getReference();
String factoryName = topicRef.getFactoryClassName();
@@ -123,14 +133,40 @@
HornetQTopic topic2 = (HornetQTopic)instance;
- assertEquals(topic.getTopicName(), topic2.getTopicName());
+ assertEquals(topic1.getTopicName(), topic2.getTopicName());
simpleSendReceive(cf, topic2);
}
- */
+ public void testReferenceRAManagedCF() throws Exception
+ {
+ HornetQResourceAdapter ra = new HornetQResourceAdapter();
+
+ HornetQRAManagedConnectionFactory mcf = new HornetQRAManagedConnectionFactory();
+
+ mcf.setResourceAdapter(ra);
+
+ ConnectionFactory racf = (ConnectionFactory)mcf.createConnectionFactory();
+
+ Reference cfRef = ((Referenceable)racf).getReference();
+
+ String factoryName = cfRef.getFactoryClassName();
+
+ Class factoryClass = Class.forName(factoryName);
+
+ ConnectionFactoryObjectFactory factory = (ConnectionFactoryObjectFactory)factoryClass.newInstance();
+
+ Object instance = factory.getObjectInstance(cfRef, null, null, null);
+
+ assertTrue(instance instanceof HornetQRAConnectionFactory);
+
+ HornetQRAConnectionFactory racf2 = (HornetQRAConnectionFactory)instance;
+
+ //TODO implement simpleSendReceive with test inside the container or wait until https://jira.jboss.org/jira/browse/HORNETQ-140 is done.
+ }
+
protected void simpleSendReceive(ConnectionFactory cf, Destination dest) throws Exception
{
Connection conn = null;
More information about the hornetq-commits
mailing list