[jboss-cvs] JBoss Messaging SVN: r4132 - in projects/jms-perf: build and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 29 10:10:38 EDT 2008


Author: jmesnil
Date: 2008-04-29 10:10:38 -0400 (Tue, 29 Apr 2008)
New Revision: 4132

Added:
   projects/jms-perf/.classpath
   projects/jms-perf/.project
   projects/jms-perf/README.txt
   projects/jms-perf/build.properties
   projects/jms-perf/build.xml
   projects/jms-perf/build/
   projects/jms-perf/build/jms/
   projects/jms-perf/build/jms/ActiveMQCheckTest.class
   projects/jms-perf/build/jms/JBMessagingCheckTest.class
   projects/jms-perf/build/jms/JMSTestBase$1.class
   projects/jms-perf/build/jms/JMSTestBase.class
   projects/jms-perf/build/jms/QpidCheckTest.class
   projects/jms-perf/etc/
   projects/jms-perf/etc/log4j.xml
   projects/jms-perf/lib/
   projects/jms-perf/lib/jboss-javaee.jar
   projects/jms-perf/lib/junit.jar
   projects/jms-perf/src/
   projects/jms-perf/src/java/
   projects/jms-perf/src/java/jms/
   projects/jms-perf/src/java/jms/ActiveMQCheckTest.java
   projects/jms-perf/src/java/jms/JBMessagingCheckTest.java
   projects/jms-perf/src/java/jms/JMSTestBase.java
   projects/jms-perf/src/java/jms/QpidCheckTest.java
Log:
Initial import.

Added: projects/jms-perf/.classpath
===================================================================
--- projects/jms-perf/.classpath	                        (rev 0)
+++ projects/jms-perf/.classpath	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/java"/>
+	<classpathentry kind="src" path="etc"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="lib/junit.jar"/>
+	<classpathentry kind="lib" path="lib/jboss-javaee.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: projects/jms-perf/.project
===================================================================
--- projects/jms-perf/.project	                        (rev 0)
+++ projects/jms-perf/.project	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jms-perf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: projects/jms-perf/README.txt
===================================================================
--- projects/jms-perf/README.txt	                        (rev 0)
+++ projects/jms-perf/README.txt	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,83 @@
+JBoss Messaging 2.0.0 alpha1
+============================
+
+# Checkout the SVN trunk: 
+
+    svn co https://svn.jboss.org/repos/messaging/trunk/
+
+# Build the distribution: 
+
+    ant distro
+
+# add the queue to $JBMESSAGING_HOME/config/jbm-jndi.xml:
+
+    ...
+    <queue name="MyQueue">
+        <entry name="MyQueue"/>
+    </queue>
+    ...
+
+# I've an issue with JNDI when using localhost. I've changed $JBMESSAGING_HOME/config/jbm-standalone-beans.xml, replacing "localhost" by my server hostname:
+
+   ...
+   <bean name="Main" class="org.jnp.server.Main">
+      <property name="namingInfo"><inject bean="Naming"/> </property>
+      <property name="port">1099</property>
+      <property name="bindAddress">192.168.0.4</property>
+      <property name="rmiPort">1098</property>
+      <property name="rmiBindAddress">192.168.0.4</property>
+   </bean>
+   ...
+
+# Start JBM Server: 
+
+    cd $JBMESSAGING_HOME/bin && ./run.sh
+
+# if the server does not start because of the error:
+
+    14:50:57,949 DEBUG @main [JBMBootstrapServer] Deployed file:/Users/jmesnil/Documents/RedHat/Workspace/jboss-messaging/build/messaging-2.0.0.alpha1/config/jbm-standalone-beans.xml
+    Exception in thread "main" java.lang.IllegalStateException: Incompletely deployed:
+    
+    *** DEPLOYMENTS IN ERROR: Name -> Error
+    MessagingServer -> MessagingException[errorCode=106 message=Cannot route to address queuejms.ExpiryQueue]
+    
+In that case, delete ~/jbm-test
+
+ActiveMQ 5.0.0
+==============
+
+# Download ActiveMQ: 
+
+http://www.apache.org/dyn/closer.cgi/activemq/apache-activemq/5.0.0/apache-activemq-5.0.0.tar.gz
+
+# Make activemq script executable:
+
+    chmod 755 bin/activemq
+
+# Start ActiveMQ: 
+
+    cd $ACTIVEMQ_HOME && ./bin/activemq
+
+Qpid/Java 1.0 M2
+================
+
+# Download Qpid/Java:
+    http://archive.apache.org/dist/incubator/qpid/M2-incubating/Java/qpid-1.0-incubating-M2-java-bin.zip
+# Export QPID_HOME
+# Start Qpid: 
+
+   cd $QPID_HOME/bin && ./qpid-server
+
+Test Configuration in build.properties
+======================================
+
+# In build.properties:
+     - set the location of the JMS providers' HOME dirs
+     - specify the hostname of the JMS servers
+
+Check test
+==========
+
+# Check that all JMS providers are working by sending/receiving a message on a queue:
+
+    ant all-check

Added: projects/jms-perf/build/jms/ActiveMQCheckTest.class
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/build/jms/ActiveMQCheckTest.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/build/jms/JBMessagingCheckTest.class
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/build/jms/JBMessagingCheckTest.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/build/jms/JMSTestBase$1.class
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/build/jms/JMSTestBase$1.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/build/jms/JMSTestBase.class
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/build/jms/JMSTestBase.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/build/jms/QpidCheckTest.class
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/build/jms/QpidCheckTest.class
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/build.properties
===================================================================
--- projects/jms-perf/build.properties	                        (rev 0)
+++ projects/jms-perf/build.properties	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,11 @@
+# JMS Server location
+jms.server.host=192.168.0.4
+
+# JBoss Messaging (built from SVN trunk using 'ant distro')
+jbmessaging.home=${user.home}/Desktop/tmp/jboss-messaging/trunk/build/messaging-2.0.0.alpha1
+
+# ActiveMQ 
+activemq.home=${user.home}/Desktop/tmp/apache-activemq-5.0.0
+
+# Qpid
+qpid.home=${user.home}/Desktop/tmp/qpid-1.0-incubating-M2

Added: projects/jms-perf/build.xml
===================================================================
--- projects/jms-perf/build.xml	                        (rev 0)
+++ projects/jms-perf/build.xml	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="jms-perf" default="all-check">
+	
+	<property file="build.properties" />
+	
+	<description>
+    	Run performance tests on several JMS providers
+    </description>
+
+	<path id="common.classpath">
+	       <pathelement path="etc"/>
+	       <pathelement path="build"/>
+	       <pathelement location="lib/junit.jar"/>
+		   <!-- contains JMS API -->
+	       <pathelement location="lib/jboss-javaee.jar"/>
+    </path>
+	
+    <!-- ================================= 
+          target: help              
+         ================================= -->
+    <target name="help" description="--> display help">
+        <echo>Configure build.properties to set the location of the JMS providers.</echo>
+        <echo>Current configuration in build.properties:</echo>
+        <echoproperties srcfile="build.properties" />
+    </target>
+	
+	<!-- ================================= 
+          target: clean              
+         ================================= -->
+    <target name="clean" description="--> clean">
+        <delete dir="build" />
+    </target>
+
+	<!-- - - - - - - - - - - - - - - - - - 
+          target: compile                      
+         - - - - - - - - - - - - - - - - - -->
+    <target name="compile">
+       	<mkdir dir="build"/>
+       	<javac srcdir="src" destdir="build"
+       		classpathref="common.classpath"
+       	    debug="true"
+       	/>
+    </target>
+
+	<!-- - - - - - - - - - - - - - - - - - 
+          target: jms-provider-test     
+          
+          mandatory parameters:
+          - jms.provider.classpath -> the provider classpath id              
+          - jms.provider.test -> the JUnit test classname             
+         - - - - - - - - - - - - - - - - - -->
+    <target name="jms-provider-test">
+		<junit fork="true">
+			<jvmarg value="-server"/>
+			<jvmarg value="-Djms.server.host=${jms.server.host}"/>
+			<!--
+			<jvmarg value="-agentlib:yjpagent"/>
+			-->
+    		<classpath refid="${jms.provider.classpath}" />
+	   		<test name="${jms.provider.test}">
+				<formatter type="brief" usefile="false"/>	   			
+   			</test>
+		</junit>
+    </target>
+
+	<!-- ================================= 
+          target: all-check 
+          
+          Check that the configuration is ok for all providers
+          by sending/receiving a message on a queue             
+         ================================= -->
+    <target name="all-check" description="--> Check all providers by sending/receiving a single message on a queue"
+    	depends="jbmessaging-check, activemq-check, qpid-check" />
+
+    <!-- ================================= 
+	      JBoss Messaging 2.0 alpha 
+         ================================= -->
+
+	<path id="jbmessaging.classpath">
+		<path refid="common.classpath" />
+    	<fileset dir="${jbmessaging.home}/lib">
+	    	<include name="**/*.jar"/>
+        </fileset>
+		<pathelement path="${jbmessaging.home}/config" />
+    </path>
+
+	<target name="jbmessaging-check" depends="compile" description="--> check JBoss Messaging">
+    	<echo>JBMESSAGING_HOME=${jbmessaging.home}</echo>
+		<antcall target="jms-provider-test">
+			<param name="jms.provider.classpath" value="jbmessaging.classpath" />
+			<param name="jms.provider.test" value="jms.JBMessagingCheckTest" />
+		</antcall>
+    </target>
+
+    <!-- ================================= 
+	      ActiveMQ 
+         ================================= -->
+
+	<path id="activemq.classpath">
+		<path refid="common.classpath" />
+		<pathelement location="${activemq.home}/activemq-all-5.0.0.jar"/>
+		<pathelement location="${activemq.home}/lib/commons-logging-1.1.jar"/>
+    </path>
+
+	<target name="activemq-check" depends="compile" description="--> check ActiveMQ">
+    	<echo>ACTIVEMQ_HOME=${activemq.home}</echo>
+		<antcall target="jms-provider-test">
+			<param name="jms.provider.classpath" value="activemq.classpath" />
+			<param name="jms.provider.test" value="jms.ActiveMQCheckTest" />
+		</antcall>
+    </target>
+	
+    <!-- ================================= 
+	      Qpid 
+         ================================= -->
+
+	<path id="qpid.classpath">
+		<path refid="common.classpath" />
+		<fileset dir="${qpid.home}/lib">
+			<include name="**/*.jar"/>
+		</fileset>
+    </path>
+
+	<target name="qpid-check" depends="compile" description="--> check Qpid">
+    	<echo>QPID_HOME=${qpid.home}</echo>
+		<antcall target="jms-provider-test">
+			<param name="jms.provider.classpath" value="qpid.classpath" />
+			<param name="jms.provider.test" value="jms.QpidCheckTest" />
+		</antcall>
+    </target>
+
+</project>

Added: projects/jms-perf/etc/log4j.xml
===================================================================
--- projects/jms-perf/etc/log4j.xml	                        (rev 0)
+++ projects/jms-perf/etc/log4j.xml	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="wARN"/>
+      <layout class="org.apache.log4j.PatternLayout">
+         <param name="ConversionPattern" value="%t %d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+   </root>
+
+</log4j:configuration>

Added: projects/jms-perf/lib/jboss-javaee.jar
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/lib/jboss-javaee.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/lib/junit.jar
===================================================================
(Binary files differ)


Property changes on: projects/jms-perf/lib/junit.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/jms-perf/src/java/jms/ActiveMQCheckTest.java
===================================================================
--- projects/jms-perf/src/java/jms/ActiveMQCheckTest.java	                        (rev 0)
+++ projects/jms-perf/src/java/jms/ActiveMQCheckTest.java	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package jms;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+
+public class ActiveMQCheckTest extends JMSTestBase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testSingleMessage() throws Exception
+   {
+      Properties props = new Properties();
+      props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
+            "org.apache.activemq.jndi.ActiveMQInitialContextFactory");
+      props.setProperty(Context.PROVIDER_URL, "tcp://" + SERVER_HOST + ":61616");
+      props.setProperty("queue.MyQueue", QUEUE);
+      
+      sendAndReceiveSingleMessage(props);
+      
+      System.out.println("ActiveMQ [OK]");
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Added: projects/jms-perf/src/java/jms/JBMessagingCheckTest.java
===================================================================
--- projects/jms-perf/src/java/jms/JBMessagingCheckTest.java	                        (rev 0)
+++ projects/jms-perf/src/java/jms/JBMessagingCheckTest.java	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package jms;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+
+public class JBMessagingCheckTest extends JMSTestBase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testSingleMessage() throws Exception
+   {
+      Properties props = new Properties();      
+      props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
+            "org.jnp.interfaces.NamingContextFactory");
+      props.setProperty(Context.PROVIDER_URL, "jnp://" + SERVER_HOST + ":1099");
+      props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
+      
+      sendAndReceiveSingleMessage(props);
+      
+      System.out.println("JBoss Messaging [OK]");
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Added: projects/jms-perf/src/java/jms/JMSTestBase.java
===================================================================
--- projects/jms-perf/src/java/jms/JMSTestBase.java	                        (rev 0)
+++ projects/jms-perf/src/java/jms/JMSTestBase.java	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package jms;
+
+import java.util.Properties;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Queue;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.naming.InitialContext;
+
+import junit.framework.TestCase;
+
+public abstract class JMSTestBase extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   private static final String CONNECTION_FACTORY = "ConnectionFactory";
+   protected static final String QUEUE = "MyQueue";
+   private static final String TEXT = "hello, world!";
+   protected static final String SERVER_HOST;
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   static
+   {
+      SERVER_HOST = System.getProperty("jms.server.host", "localhost");
+      System.out.println("Connecting to JMS Server on " + SERVER_HOST);
+   }
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void sendAndReceiveSingleMessage(Properties props) throws Exception
+   {
+      javax.naming.Context ctx = new InitialContext(props);
+
+      Queue queue = (Queue) ctx.lookup(QUEUE);
+
+      ConnectionFactory factory = (ConnectionFactory) ctx
+            .lookup(CONNECTION_FACTORY);
+      Connection conn = factory.createConnection();
+      conn.setExceptionListener(new ExceptionListener()
+      {
+         public void onException(JMSException e)
+         {
+            e.printStackTrace();
+         }
+      });
+      Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      MessageProducer producer = session.createProducer(queue);
+      MessageConsumer consumer = session.createConsumer(queue);
+
+      conn.start();
+
+      producer.send(session.createTextMessage(TEXT));
+
+      Message message = consumer.receive(5000);
+      assertNotNull(message);
+      assertTrue(message instanceof TextMessage);
+      TextMessage msg = (TextMessage) message;
+      assertEquals(TEXT, msg.getText());
+
+      conn.close();
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Added: projects/jms-perf/src/java/jms/QpidCheckTest.java
===================================================================
--- projects/jms-perf/src/java/jms/QpidCheckTest.java	                        (rev 0)
+++ projects/jms-perf/src/java/jms/QpidCheckTest.java	2008-04-29 14:10:38 UTC (rev 4132)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package jms;
+
+import java.util.Properties;
+
+import javax.naming.Context;
+
+public class QpidCheckTest extends JMSTestBase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   public void testSingleMessage() throws Exception
+   {
+      Properties props = new Properties();
+      props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
+      "org.apache.qpid.jndi.PropertiesFileInitialContextFactory");
+      props.setProperty("connectionfactory.ConnectionFactory", "amqp://guest:guest@/test?brokerlist='tcp://" + SERVER_HOST + ":5672'");
+      props.setProperty("queue.MyQueue", "example.MyQueue");
+
+      sendAndReceiveSingleMessage(props);
+      
+      System.out.println("Qpid [OK]");
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}




More information about the jboss-cvs-commits mailing list