[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