You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jakarta.apache.org by se...@apache.org on 2010/06/21 17:43:34 UTC

svn commit: r956625 - in /jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms: client/OnMessageSubscriber.java sampler/SubscriberSampler.java

Author: sebb
Date: Mon Jun 21 15:43:34 2010
New Revision: 956625

URL: http://svn.apache.org/viewvc?rev=956625&view=rev
Log:
Tidy up OnMessageSubscriber - no point continuing if cannot create the required fields

Modified:
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/OnMessageSubscriber.java
    jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/OnMessageSubscriber.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/OnMessageSubscriber.java?rev=956625&r1=956624&r2=956625&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/OnMessageSubscriber.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/client/OnMessageSubscriber.java Mon Jun 21 15:43:34 2010
@@ -44,13 +44,13 @@ public class OnMessageSubscriber {
 
     private static final Logger log = LoggingManager.getLoggerForClass();
 
-    private TopicConnection CONN = null;
+    private final TopicConnection CONN;
 
-    private TopicSession SESSION = null;
+    private final TopicSession SESSION;
 
-    private Topic TOPIC = null;
+    private final Topic TOPIC;
 
-    private TopicSubscriber SUBSCRIBER = null;
+    private final TopicSubscriber SUBSCRIBER;
 
     /**
      * Constructor takes the necessary JNDI related parameters to create a
@@ -64,29 +64,35 @@ public class OnMessageSubscriber {
      * @param useAuth
      * @param user
      * @param pwd
+     * @throws JMSException if could not create context or other problem occurred.
      */
     public OnMessageSubscriber(boolean useProps, String jndi, String url, String connfactory, String topic,
-            boolean useAuth, String user, String pwd) {
+            boolean useAuth, String user, String pwd) throws JMSException {
         Context ctx = initJNDI(useProps, jndi, url, useAuth, user, pwd);
-        if (ctx != null) {
-            initConnection(ctx, connfactory, topic);
-        } else {
-            log.error("Could not initialize JNDI Initial Context Factory");
+        if (ctx == null){
+            throw new JMSException("Could not initialize JNDI Initial Context Factory");
         }
+        ConnectionFactory.getTopicConnectionFactory(ctx, connfactory);
+        CONN = ConnectionFactory.getTopicConnection();
+        TOPIC = InitialContextFactory.lookupTopic(ctx, topic);
+        SESSION = this.CONN.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
+        SUBSCRIBER = this.SESSION.createSubscriber(this.TOPIC);
+        log.info("created the topic connection successfully");
     }
 
     /**
      * initialize the JNDI intial context
      *
-     * @param useProps
-     * @param jndi
-     * @param url
+     * @param useProps - use jndi.properties file
+     * @param initialContextFactory
+     * @param providerUrl
      * @param useAuth
-     * @param user
-     * @param pwd
+     * @param securityPrincipal
+     * @param securityCredentials
      * @return the context or null
      */
-    private Context initJNDI(boolean useProps, String jndi, String url, boolean useAuth, String user, String pwd) {
+    private Context initJNDI(boolean useProps, 
+            String initialContextFactory, String providerUrl, boolean useAuth, String securityPrincipal, String securityCredentials) {
         if (useProps) {
             try {
                 return new InitialContext();
@@ -95,27 +101,7 @@ public class OnMessageSubscriber {
                 return null;
             }
         } else {
-            return InitialContextFactory.lookupContext(jndi, url, useAuth, user, pwd);
-        }
-    }
-
-    /**
-     * Initialize the connection, session and subscriber
-     *
-     * @param ctx
-     * @param connfactory
-     * @param topic
-     */
-    private void initConnection(Context ctx, String connfactory, String topic) {
-        try {
-            ConnectionFactory.getTopicConnectionFactory(ctx, connfactory);
-            this.CONN = ConnectionFactory.getTopicConnection();
-            this.TOPIC = InitialContextFactory.lookupTopic(ctx, topic);
-            this.SESSION = this.CONN.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
-            this.SUBSCRIBER = this.SESSION.createSubscriber(this.TOPIC);
-            log.info("created the topic connection successfully");
-        } catch (JMSException e) {
-            log.error("Connection error: " + e.getMessage());
+            return InitialContextFactory.lookupContext(initialContextFactory, providerUrl, useAuth, securityPrincipal, securityCredentials);
         }
     }
 
@@ -139,9 +125,6 @@ public class OnMessageSubscriber {
             this.SUBSCRIBER.close();
             this.SESSION.close();
             this.CONN.close();
-            this.SUBSCRIBER = null;
-            this.SESSION = null;
-            this.CONN = null;
         } catch (JMSException e) {
             log.error(e.getMessage());
         }

Modified: jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java?rev=956625&r1=956624&r2=956625&view=diff
==============================================================================
--- jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java (original)
+++ jakarta/jmeter/trunk/src/protocol/jms/org/apache/jmeter/protocol/jms/sampler/SubscriberSampler.java Mon Jun 21 15:43:34 2010
@@ -93,9 +93,10 @@ public class SubscriberSampler extends B
     /**
      * Create the OnMessageSubscriber client and set the sampler as the message
      * listener.
+     * @throws JMSException 
      *
      */
-    private OnMessageSubscriber initListenerClient() {
+    private OnMessageSubscriber initListenerClient() throws JMSException {
         interrupted = false;
         OnMessageSubscriber sub = (OnMessageSubscriber) ClientPool.get(this);
         if (sub == null) {
@@ -152,13 +153,21 @@ public class SubscriberSampler extends B
         StringBuffer buffer = new StringBuffer();
         StringBuffer propBuffer = new StringBuffer();
         int cnt;
-        
-        result.setSampleLabel(getName());
-        initListenerClient();
-
         int loop = this.getIterationCount();
 
+        
+        result.setSampleLabel(getName());
         result.sampleStart();
+        try {
+            initListenerClient();
+        } catch (JMSException ex) {
+            log.warn("",ex);
+            result.sampleEnd();
+            result.setResponseCode("000");
+            result.setResponseMessage(ex.getMessage());
+            return result;
+        }
+
         
         while (queue.size() < loop && interrupted == false) {
             try {



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@jakarta.apache.org
For additional commands, e-mail: notifications-help@jakarta.apache.org