[jboss-cvs] JBossAS SVN: r70019 - projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Feb 21 22:30:09 EST 2008


Author: ALRubinger
Date: 2008-02-21 22:30:09 -0500 (Thu, 21 Feb 2008)
New Revision: 70019

Modified:
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/LocalProducerFactory.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerFactory.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerManagerImpl.java
   projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/RemoteProducerFactory.java
Log:
Resolved API leak for Consumer Tests

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/LocalProducerFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/LocalProducerFactory.java	2008-02-21 22:01:36 UTC (rev 70018)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/LocalProducerFactory.java	2008-02-22 03:30:09 UTC (rev 70019)
@@ -61,7 +61,8 @@
 
       ProducerManagerImpl mImpl = null;
 
-      mImpl = new ProducerManagerImpl(pImpl, dest, factoryName, props.delivery(), props.timeToLive(), props.priority(), methodMap, initialContextProperties);
+      mImpl = new ProducerManagerImpl(dest, factoryName, props.delivery(), props.timeToLive(), props.priority(),
+            methodMap, initialContextProperties, pImpl.transacted(), pImpl.acknowledgeMode());
 
       Interceptor[] interceptors = {mImpl};
       ProducerProxy ih = new ProducerProxy(mImpl, interceptors);

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerFactory.java	2008-02-21 22:01:36 UTC (rev 70018)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerFactory.java	2008-02-22 03:30:09 UTC (rev 70019)
@@ -77,22 +77,22 @@
 
 
       methodMap = new HashMap();
-      Method[] methods = producer.getMethods();
-      for (int i = 0 ; i < methods.length ; ++i)
-      {
-         MessageProperties mProps = (MessageProperties)methods[i].getAnnotation(MessageProperties.class);
-         if (mProps != null)
-         {
-            try
-            {
-               methodMap.put(new Long(MethodHashing.methodHash(methods[i])), new MessagePropertiesImpl(mProps));
-            }
-            catch (Exception e)
-            {
-               throw new RuntimeException(e);
-            }
-         }
-      }
+//      Method[] methods = producer.getMethods();
+//      for (int i = 0 ; i < methods.length ; ++i)
+//      {
+//         MessageProperties mProps = (MessageProperties)methods[i].getAnnotation(MessageProperties.class);
+//         if (mProps != null)
+//         {
+//            try
+//            {
+//               methodMap.put(new Long(MethodHashing.methodHash(methods[i])), new MessagePropertiesImpl(mProps));
+//            }
+//            catch (Exception e)
+//            {
+//               throw new RuntimeException(e);
+//            }
+//         }
+//      }
   
       Producer p = (Producer) producer.getAnnotation(Producer.class);
       if (p == null)

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerManagerImpl.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerManagerImpl.java	2008-02-21 22:01:36 UTC (rev 70018)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/ProducerManagerImpl.java	2008-02-22 03:30:09 UTC (rev 70019)
@@ -45,7 +45,6 @@
 import org.jboss.ejb3.InitialContextFactory;
 import org.jboss.ejb3.annotation.DeliveryMode;
 import org.jboss.ejb3.annotation.MessageProperties;
-import org.jboss.ejb3.annotation.Producer;
 import org.jboss.logging.Logger;
 
 /**
@@ -62,7 +61,6 @@
    private static final int PERSISTENT = javax.jms.DeliveryMode.PERSISTENT;
    private static final int NON_PERSISTENT = javax.jms.DeliveryMode.NON_PERSISTENT;
    
-   protected Producer producer;
    protected Destination destination;
    protected String factoryLookup;
 
@@ -79,10 +77,12 @@
    protected transient String password;
    protected transient InitialContext initialContext;
    protected Hashtable initialContextProperties;
+   
+   protected boolean transacted;
+   protected int acknowledgeMode;
 
    public void writeExternal(ObjectOutput out) throws IOException
    {
-      out.writeObject(producer);
       out.writeObject(destination);
       out.writeObject(factoryLookup);
       out.writeInt(deliveryMode);
@@ -94,13 +94,14 @@
       {
          out.writeObject(factory);
       }
+      out.writeBoolean(this.transacted);
+      out.writeInt(this.acknowledgeMode);
    }
 
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
    {
-      producer = (Producer) in.readObject();
       destination = (Destination) in.readObject();
-      factoryLookup = (String) in.readObject();
+      factoryLookup = (String) in.readObject(); 
       deliveryMode = in.readInt();
       timeToLive = in.readInt();
       priority = in.readInt();
@@ -129,40 +130,31 @@
       {
          factory = (ConnectionFactory) in.readObject();
       }
+      this.transacted = in.readBoolean();
+      this.acknowledgeMode = in.readInt();
    }
 
-   public ProducerManagerImpl(Producer producer, Destination destination, ConnectionFactory factory, DeliveryMode deliveryMode, int timeToLive, int priority, HashMap methodMap, Hashtable initialContextProperties)
+   public ProducerManagerImpl(Destination destination, ConnectionFactory factory, DeliveryMode deliveryMode,
+         int timeToLive, int priority, HashMap methodMap, Hashtable initialContextProperties, boolean transacted,
+         int acknowledgeMode)
    {
-      this.initialContextProperties = initialContextProperties;
-      try
-      {
-         this.initialContext = InitialContextFactory.getInitialContext(initialContextProperties);
-      }
-      catch (NamingException e)
-      {
-         throw new RuntimeException(e);
-      }
-      this.producer = producer;
-      this.destination = destination;
+      this.init(destination, deliveryMode, timeToLive, priority, methodMap, initialContextProperties, transacted,
+            acknowledgeMode);
       this.factory = factory;
-      
-      int mode = deliveryMode.ordinal();
-      switch (mode)
-      {
-         case PERSISTENT:
-            this.deliveryMode = javax.jms.DeliveryMode.PERSISTENT;
-            break;
-         case NON_PERSISTENT:
-            this.deliveryMode = javax.jms.DeliveryMode.NON_PERSISTENT;
-            break;
-      }
-      this.timeToLive = timeToLive;
-      this.priority = priority;
-      this.methodMap = methodMap;
    }
 
-   public ProducerManagerImpl(Producer producer, Destination destination, String factory, DeliveryMode deliveryMode, int timeToLive, int priority, HashMap methodMap, Hashtable initialContextProperties)
+   public ProducerManagerImpl(Destination destination, String factory, DeliveryMode deliveryMode, int timeToLive,
+         int priority, HashMap methodMap, Hashtable initialContextProperties, boolean transacted, int acknowledgeMode)
    {
+      this.init(destination, deliveryMode, timeToLive, priority, methodMap, initialContextProperties, transacted,
+            acknowledgeMode);
+      this.factoryLookup = factory;
+   }
+
+   private void init(Destination destination, DeliveryMode deliveryMode, int timeToLive, int priority,
+         HashMap methodMap, Hashtable initialContextProperties, boolean transacted, int acknowledgeMode)
+   {
+
       this.initialContextProperties = initialContextProperties;
       try
       {
@@ -172,23 +164,23 @@
       {
          throw new RuntimeException(e);
       }
-      this.producer = producer;
       this.destination = destination;
-      this.factoryLookup = factory;
-      
+
       int mode = deliveryMode.ordinal();
       switch (mode)
       {
-         case PERSISTENT:
+         case PERSISTENT :
             this.deliveryMode = javax.jms.DeliveryMode.PERSISTENT;
             break;
-         case NON_PERSISTENT:
+         case NON_PERSISTENT :
             this.deliveryMode = javax.jms.DeliveryMode.NON_PERSISTENT;
             break;
       }
       this.timeToLive = timeToLive;
       this.priority = priority;
       this.methodMap = methodMap;
+      this.transacted = transacted;
+      this.acknowledgeMode = acknowledgeMode;
    }
 
 
@@ -228,7 +220,7 @@
       {
          connection = factory.createConnection();
       }
-      session = connection.createSession(producer.transacted(), producer.acknowledgeMode());
+      session = connection.createSession(this.transacted, this.acknowledgeMode);
       msgProducer = session.createProducer(destination);
       msgProducer.setDeliveryMode(deliveryMode);
       msgProducer.setTimeToLive(timeToLive);
@@ -267,17 +259,17 @@
          throw new RuntimeException("You must call connect() on the producer.  The JMS session has not been set");
       }
       ObjectMessage msg = session.createObjectMessage((Serializable) invocation);
-      MethodInvocation mi = (MethodInvocation) invocation;
-      MessageProperties props = (MessageProperties)methodMap.get(new Long(mi.getMethodHash()));
-      if (props != null)
-      {
-         int del = (props.delivery() == DeliveryMode.PERSISTENT) ? javax.jms.DeliveryMode.PERSISTENT : javax.jms.DeliveryMode.NON_PERSISTENT;
-         msgProducer.send(msg, del, props.priority(), props.timeToLive());
-      }
-      else
-      {
-         msgProducer.send(msg);
-      }
+//      MethodInvocation mi = (MethodInvocation) invocation;
+//      MessageProperties props = (MessageProperties)methodMap.get(new Long(mi.getMethodHash()));
+//      if (props != null)
+//      {
+//         int del = (props.delivery() == DeliveryMode.PERSISTENT) ? javax.jms.DeliveryMode.PERSISTENT : javax.jms.DeliveryMode.NON_PERSISTENT;
+         msgProducer.send(msg, this.deliveryMode, this.priority, this.timeToLive);
+//      }
+//      else
+//      {
+//         msgProducer.send(msg);
+//      }
       return null;
    }
 }

Modified: projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/RemoteProducerFactory.java
===================================================================
--- projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/RemoteProducerFactory.java	2008-02-21 22:01:36 UTC (rev 70018)
+++ projects/ejb3/trunk/core/src/main/java/org/jboss/ejb3/mdb/RemoteProducerFactory.java	2008-02-22 03:30:09 UTC (rev 70019)
@@ -71,7 +71,8 @@
 
       ProducerManagerImpl mImpl = null;
 
-      mImpl = new ProducerManagerImpl(pImpl, dest, factory, props.delivery(), props.timeToLive(), props.priority(), methodMap, initialContextProperties);
+      mImpl = new ProducerManagerImpl(dest, factory, props.delivery(), props.timeToLive(), props.priority(), methodMap,
+            initialContextProperties, pImpl.transacted(), pImpl.acknowledgeMode());
 
       Interceptor[] interceptors = {mImpl};
       ProducerProxy ih = new ProducerProxy(mImpl, interceptors);




More information about the jboss-cvs-commits mailing list