Author: jstrachan
Date: Fri Jan  6 03:29:28 2006
New Revision: 366477

URL: http://svn.apache.org/viewcvs?rev=366477&view=rev
Log:
added an example of running an embedded broker in Java code

Added:
    
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java   
(with props)
Modified:
    incubator/activemq/trunk/assembly/src/release/example/build.xml

Modified: incubator/activemq/trunk/assembly/src/release/example/build.xml
URL: 
http://svn.apache.org/viewcvs/incubator/activemq/trunk/assembly/src/release/example/build.xml?rev=366477&r1=366476&r2=366477&view=diff
==============================================================================
--- incubator/activemq/trunk/assembly/src/release/example/build.xml (original)
+++ incubator/activemq/trunk/assembly/src/release/example/build.xml Fri Jan  6 
03:29:28 2006
@@ -16,154 +16,163 @@
 -->
 <project name="Inbox" default="help" basedir=".">
 
-  <property name="class.dir" value="target/classes"/>
+       <property name="class.dir" value="target/classes" />
 
-  <!-- example program defaults -->
-  <property name="url" value="tcp://localhost:61616"/>
-  <property name="topic" value="false"/>
-  <property name="subject" value="TEST.FOO"/>
-  <property name="durable" value="false"/>
-  <property name="max" value="10"/>
-  <property name="messageSize" value="1000"/>
-  <property name="clientId" value="consumer1"/>
-  <property name="producerClientId" value="null"/>
-  <property name="timeToLive" value="0"/>
-  <property name="sleepTime" value="0"/>
-  <property name="transacted" value="false"/>
-
-  <!-- for WAR -->
-  <property name="app.name" value="activemq-web"/>
-  <property name="app.base.dir" location="target/${app.name}"/>
-  <property name="app.webinf.dir" value="${app.base.dir}/WEB-INF"/>
-  <property name="app.classes.dir" value="${app.webinf.dir}/classes"/>
-  <property name="app.lib.dir" value="${app.webinf.dir}/lib"/>
-  <property name="app.src.dir" value="src"/>
-  <property name="app.conf.dir" value="conf"/>
-  <property name="app.dist.dir" value="target"/>
+       <!-- example program defaults -->
+       <property name="url" value="tcp://localhost:61616" />
+       <property name="topic" value="false" />
+       <property name="subject" value="TEST.FOO" />
+       <property name="durable" value="false" />
+       <property name="max" value="10" />
+       <property name="messageSize" value="1000" />
+       <property name="clientId" value="consumer1" />
+       <property name="producerClientId" value="null" />
+       <property name="timeToLive" value="0" />
+       <property name="sleepTime" value="0" />
+       <property name="transacted" value="false" />
+
+       <!-- for WAR -->
+       <property name="app.name" value="activemq-web" />
+       <property name="app.base.dir" location="target/${app.name}" />
+       <property name="app.webinf.dir" value="${app.base.dir}/WEB-INF" />
+       <property name="app.classes.dir" value="${app.webinf.dir}/classes" />
+       <property name="app.lib.dir" value="${app.webinf.dir}/lib" />
+       <property name="app.src.dir" value="src" />
+       <property name="app.conf.dir" value="conf" />
+       <property name="app.dist.dir" value="target" />
 
 
-  <target name="help">
-    <echo>
+       <target name="help">
+               <echo>
                This script requires Ant 1.6 or higher
 
                usage:
-                  ant -help            display ant help screen
-                  ant help                     display this message
-                  ant clean            delete the built directory
+                  ant -help                            display ant help screen
+                  ant help                                             display 
this message
+                  ant clean                            delete the built 
directory
+
+                  ant consumer        creates a consumer which waits until a 
specific number of messages have been received
+                  ant producer        creates a producer publishing a number 
of messages
+                  ant embedBroker     runs an embedded broker inside Java code
 
-                  ant consumer creates a consumer which waits until a specific 
number of messages have been received
-                  ant producer creates a producer publishing a number of 
messages
-
-       ant war      creates a WAR deployment unit of the ActiveMQ Broker
+       ant war                                 creates a WAR deployment unit 
of the ActiveMQ Broker
     </echo>
-  </target>
+       </target>
 
-  <target name="clean">
-    <delete dir="target" quiet="true"/>
-    <delete dir="${class.dir}" quiet="true"/>
-  </target>
-
-  <target name="init">
-    <mkdir dir="${class.dir}"/>
-    <mkdir dir="src/ddl"/>
-
-    <path id="javac.classpath">
-      <pathelement path="${class.dir}"/>
-      <pathelement path="../conf"/>
-      <fileset dir="../lib">
-        <include name="**/*.jar"/>
-      </fileset>
-    </path>
-  </target>
-
-
-  <target name="compile" depends="init" description="Compile all Java">
-    <javac srcdir="src" destdir="${class.dir}">
-      <classpath refid="javac.classpath"/>
-    </javac>
-    <copy todir="${class.dir}">
-      <fileset dir="src">
-        <include name="**/*.properties"/>
-        <include name="**/*.xml"/>
-      </fileset>
-    </copy>
-  </target>
-
-  <target name="war" depends="compile" description="Create the activemq broker 
war file.">
-    <!--Copy the required jar files-->
-    <copy todir="${app.lib.dir}">
-      <fileset dir="../lib">
-        <include name="*.jar"/>
-        <exclude name="servlet.jar"/>
-      </fileset>
-
-      <fileset dir="../lib/optional">
-        <include name="activemq-web*.jar"/>
-        <include name="activemq-container*.jar"/>
-        <include name="commons-bean*.jar"/>
-
-        <!-- include Apache Derby for persistence -->
-        <include name="derby*.jar"/>
-
-        <!-- include database pooling just in case -->
-        <include name="commons-pool*.jar"/>
-        <include name="commons-db*.jar"/>
-      </fileset>
-    </copy>
-    <!--Copy the configuration file-->
-    <copy todir="${app.webinf.dir}">
-      <fileset dir="${app.conf.dir}">
-        <!--Web application configuration file-->
-        <include name="web.xml"/>
-        <!--ActiveMQ configuration file-->
-        <include name="activemq.xml"/>
-      </fileset>
-    </copy>
-    <copy todir="${app.classes.dir}">
-      <fileset dir="${app.conf.dir}">
-        <!--Log4j configuration file-->
-        <include name="log4j.properties"/>
-      </fileset>
-    </copy>
-    <!-- Create the war file -->
-    <jar jarfile="${app.dist.dir}/${app.name}.war"
-      basedir="${app.base.dir}"/>
-  </target>
-
-  <target name="consumer" depends="compile" description="Runs a simple 
consumer">
-
-    <echo>Running consumer against server at $$url = ${url} for subject 
$$subject = ${subject}</echo>
-    <java classname="ConsumerTool" fork="yes" maxmemory="100M">
-      <classpath refid="javac.classpath"/>
-      <jvmarg value="-server"/>
-      <arg value="${url}"/>
-      <arg value="${topic}"/>
-      <arg value="${subject}"/>
-      <arg value="${durable}"/>
-      <arg value="${max}"/>
-      <arg value="${clientId}"/>
-      <arg value="${transacted}"/>     
-      <arg value="${sleepTime}"/>              
-    </java>
-  </target>
-
-  <target name="producer" depends="compile" description="Runs a simple 
producer">
-
-    <echo>Running producer against server at $$url = ${url} for subject 
$$subject = ${subject}</echo>
-    <java classname="ProducerTool" fork="yes" maxmemory="100M">
-      <classpath refid="javac.classpath"/>
-      <jvmarg value="-server"/>
-      <arg value="${url}"/>
-      <arg value="${topic}"/>
-      <arg value="${subject}"/>
-      <arg value="${durable}"/>
-      <arg value="${max}"/>
-      <arg value="${messageSize}"/>
-      <arg value="${producerClientId}"/>
-      <arg value="${timeToLive}"/>
-      <arg value="${sleepTime}"/>
-      <arg value="${transacted}"/>     
-    </java>
-  </target>
+       <target name="clean">
+               <delete dir="target" quiet="true" />
+               <delete dir="${class.dir}" quiet="true" />
+       </target>
+
+       <target name="init">
+               <mkdir dir="${class.dir}" />
+               <mkdir dir="src/ddl" />
+
+               <path id="javac.classpath">
+                       <pathelement path="${class.dir}" />
+                       <pathelement path="../conf" />
+                       <fileset dir="../lib">
+                               <include name="**/*.jar" />
+                       </fileset>
+               </path>
+       </target>
+
+
+       <target name="compile" depends="init" description="Compile all Java">
+               <javac srcdir="src" destdir="${class.dir}">
+                       <classpath refid="javac.classpath" />
+               </javac>
+               <copy todir="${class.dir}">
+                       <fileset dir="src">
+                               <include name="**/*.properties" />
+                               <include name="**/*.xml" />
+                       </fileset>
+               </copy>
+       </target>
+
+       <target name="war" depends="compile" description="Create the activemq 
broker war file.">
+               <!--Copy the required jar files-->
+               <copy todir="${app.lib.dir}">
+                       <fileset dir="../lib">
+                               <include name="*.jar" />
+                               <exclude name="servlet.jar" />
+                       </fileset>
+
+                       <fileset dir="../lib/optional">
+                               <include name="activemq-web*.jar" />
+                               <include name="activemq-container*.jar" />
+                               <include name="commons-bean*.jar" />
+
+                               <!-- include Apache Derby for persistence -->
+                               <include name="derby*.jar" />
+
+                               <!-- include database pooling just in case -->
+                               <include name="commons-pool*.jar" />
+                               <include name="commons-db*.jar" />
+                       </fileset>
+               </copy>
+               <!--Copy the configuration file-->
+               <copy todir="${app.webinf.dir}">
+                       <fileset dir="${app.conf.dir}">
+                               <!--Web application configuration file-->
+                               <include name="web.xml" />
+                               <!--ActiveMQ configuration file-->
+                               <include name="activemq.xml" />
+                       </fileset>
+               </copy>
+               <copy todir="${app.classes.dir}">
+                       <fileset dir="${app.conf.dir}">
+                               <!--Log4j configuration file-->
+                               <include name="log4j.properties" />
+                       </fileset>
+               </copy>
+               <!-- Create the war file -->
+               <jar jarfile="${app.dist.dir}/${app.name}.war" 
basedir="${app.base.dir}" />
+       </target>
+
+       <target name="consumer" depends="compile" description="Runs a simple 
consumer">
+
+               <echo>Running consumer against server at $$url = ${url} for 
subject $$subject = ${subject}</echo>
+               <java classname="ConsumerTool" fork="yes" maxmemory="100M">
+                       <classpath refid="javac.classpath" />
+                       <jvmarg value="-server" />
+                       <arg value="${url}" />
+                       <arg value="${topic}" />
+                       <arg value="${subject}" />
+                       <arg value="${durable}" />
+                       <arg value="${max}" />
+                       <arg value="${clientId}" />
+                       <arg value="${transacted}" />
+                       <arg value="${sleepTime}" />
+               </java>
+       </target>
+
+       <target name="producer" depends="compile" description="Runs a simple 
producer">
+
+               <echo>Running producer against server at $$url = ${url} for 
subject $$subject = ${subject}</echo>
+               <java classname="ProducerTool" fork="yes" maxmemory="100M">
+                       <classpath refid="javac.classpath" />
+                       <jvmarg value="-server" />
+                       <arg value="${url}" />
+                       <arg value="${topic}" />
+                       <arg value="${subject}" />
+                       <arg value="${durable}" />
+                       <arg value="${max}" />
+                       <arg value="${messageSize}" />
+                       <arg value="${producerClientId}" />
+                       <arg value="${timeToLive}" />
+                       <arg value="${sleepTime}" />
+                       <arg value="${transacted}" />
+               </java>
+       </target>
+
+       <target name="embedBroker" depends="compile" description="Runs a simple 
producer">
+
+               <echo>Running an embedded broker example</echo>
+               <java classname="EmbeddedBroker" fork="yes" maxmemory="100M">
+                       <classpath refid="javac.classpath" />
+                       <jvmarg value="-server" />
+               </java>
+       </target>
 
 </project>

Added: 
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java
URL: 
http://svn.apache.org/viewcvs/incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java?rev=366477&view=auto
==============================================================================
--- 
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java 
(added)
+++ 
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java 
Fri Jan  6 03:29:28 2006
@@ -0,0 +1,39 @@
+import org.apache.activemq.broker.BrokerService;
+
+/**
+ * 
+ * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * 
+ **/
+
+/**
+ * This example demonstrates how to run an embedded broker inside your Java 
code
+ * 
+ * @version $Revision$
+ */
+public class EmbeddedBroker {
+    public static void main(String[] args) throws Exception {
+        BrokerService broker = new BrokerService();
+        broker.setUseJmx(true);
+        broker.addConnector("tcp://localhost:61616");
+        broker.start();
+
+        // now lets wait forever to avoid the JVM terminating immediately
+        Object lock = new Object();
+        synchronized (lock) {
+            lock.wait();
+        }
+    }
+}

Propchange: 
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: 
incubator/activemq/trunk/assembly/src/release/example/src/EmbeddedBroker.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain


Reply via email to