summaryrefslogtreecommitdiff
path: root/qpid/java/jca/example/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/jca/example/README.txt')
-rw-r--r--qpid/java/jca/example/README.txt277
1 files changed, 277 insertions, 0 deletions
diff --git a/qpid/java/jca/example/README.txt b/qpid/java/jca/example/README.txt
new file mode 100644
index 0000000000..d94bbfa7e5
--- /dev/null
+++ b/qpid/java/jca/example/README.txt
@@ -0,0 +1,277 @@
+Qpid JCA Example
+
+Overview
+=======
+The Qpid JCA example provides a sample JEE application that demonstrates how to
+configure, install and run applications using the Qpid JCA adapter for EE
+connectivity and the Apache Qpid C++ Broker. This example code can be used as a
+convenient starting point for your own development and deployment
+efforts. Currently the example is supported on JBoss EAP 5.x, JBoss 6.x and
+Apache Geronimo 2.x.
+
+Example Components
+===================
+Currently the example application consists of the following components:
+
+Destinations and ConnectionFactories
+
+Any messaging application relies on destinations (queues or topics )
+in order to produce or consume messages.The Qpid JCA example provides
+five destinations by default:
+
+ HelloTopic
+ GoodByeTopic
+ HelloGoodByeTopic
+ HelloQueue
+ GoodByeQueue
+ QpidResponderQueue
+
+
+Similar to destinations, ConnectionFactories are a core component of both JMS
+and JCA. ConnectionFactories provide the necessary starting point to make a connection,
+establish a session and produce or consume (or both) messages from your JMS provider.
+
+The Qpid JCA example provides three connection factories by default:
+
+ QpidJMSXA
+ QpidJMS
+ QpidConnectionFactory
+
+Each of these ConnectionFactories varies in their capabilities and the context in which
+they should be used. These concepts will be explained later in this document.
+
+The deployment configuration for destinations, and ConnectionFactories varies by platform.
+In JBossEAP, the configuration mechanism is a *-ds.xml file. Geronimo 2.2.x has the notion
+of a deployment plan in the form of a geronimo-ra.xml file.
+
+The Qpid JCA Example provides both a qpid-jca-ds.xml file as well as a geronimo-ra.xml deployment
+plan. Both mechanisms provide a reasonable set of defaults to allow you to deploy the Qpid JCA
+adapter in either environment and get up and running quickly.
+
+EJB 3.x
+
+There are a six EJB 3.x components provided as part of the example.
+
+ QpidHelloSubscriberBean - MessageDrivenBean (MDB)
+ QpidGoodByeSubscriberBean - (MDB)
+ QpidHelloListenerBean - (MDB)
+ QpidGoodByeListenerBean - (MDB)
+ QpidJMSResponderBean - (MDB)
+ QpidTestBean - Stateless Session Bean (SLSB)
+
+Servlet 2.5
+
+ QpidTestServlet
+
+A sample EE 2.5 servlet is provided allowing testing from a browser versus a JNDI
+client
+
+EE EAR archive
+ An EAR wrapper for the ejb and web components.
+
+
+ An RMI client used to excercise the EJB 3.x component.
+
+Sample *-ds.xml file
+ A sample *-ds.xml file is provided to create destinations and ManagedConnectionFactories
+ in the JBoss environment.
+
+Sample geronimo-ra.xml
+ A sample geronimo-ra.xml file is provided to create destinations and ManagedConnectionFactories
+ in the Geronimo environment. This file is semantically equivalent to the JBoss *-ds.xml artifact.
+
+A build.xml file
+ An ant build.xml file to configure, install and deploy the aforementioned components.
+
+
+Requirements
+============
+
+Depending upon your target platform (eg. JBoss EAP or Geronimo) you will need to set either
+the JBOSS_HOME or GERONIMO_HOME property. By default, these properties are assumed to be
+set from your environment. This can be modified in the build.xml file.
+
+JBoss EAP 5.x, JBoss 6.x
+ To use the sample application you will need to have JBoss EAP 5.x or JBoss 6.x running.
+
+Geronimo 2.x
+ To use the sample application you will need to have Geronimo 2.x running.
+
+Apache Qpid Broker
+ To run the sample it is assumed you have an Apache Qpid C++ broker configured and running.
+ The example code assumes that the broker will run at localhost on port 5672. This can be
+ modified within the build.xml file if this does not suit your particular environment.
+
+
+Quickstart
+==========
+After satifsying the above requirements you are ready to deploy and run the example application.
+The steps to deploy and run in the supported application servers are largely the same, however,
+if you are targeting JBoss you will either need to modify the property in the example build.xml file
+
+
+ <property name="target.platform" value="geronimo"/>
+
+to be jboss
+
+ <property name="target.platform" value="jboss"/>
+
+or set this property via the command line.
+
+Example:
+
+ ant -Dtarget.platform=jboss <target>
+
+**Note**
+Any time you wish to change platforms, this property needs to be modified and a complete clean
+and rebuild needs to be performed.
+
+Step 1 -- Package, Deploy and configure the Qpid JCA adapter
+
+The core component of the example is the Qpid JCA adapter. The following lists the steps
+for the respective platforms
+
+**Note**
+
+Regardless of platform, if you are building the Qpid JCA adapter from source code
+you will need to use to package the RAR file via the Ant build system. To do this, from
+the example directory execute
+
+ ant deploy-rar
+
+This task packages the adapter and includes the necessary dependent jar files.
+
+
+JBoss
+ There are no additional steps to package the adapter for JBoss deployment. Simply copy
+ the qpid-ra-<qpid.version>rar to your JBoss deploy directory.
+
+ To configure the Qpid JCA Adapter in JBoss the *-ds.xml file mechanism is used. A sample
+ file is provided in the conf directory.
+
+ If the defaults are suitable, you can simply execute
+
+ ant deploy-ds
+
+ While any property can be modified in the qpid-jca-ds.xml file, typically you will want to
+ change the URL of the broker to which you are trying to connect. Rather than modifying
+ the qpid-jca-ds.xml file directly you can modify the
+
+ <property name="broker.url" value="amqp://anonymous:@client/test?brokerlist='tcp://localhost:5672?sasl_mechs='ANONYMOUS''"/>
+
+ line in the build.xml file. This will dynamically insert the broker.url value into the qpid-jca-ds.xml file.
+
+ Once this file is copied to your JBoss deploy directory and you received no exceptions, the adapter is now deployed, configured
+ and ready for use.
+
+Geronimo
+ By default, the Qpid JCA adapter ships with the geronimo-ra.xml deployment plan embedded
+ in the RAR file. This file is located in the META-INF directory alongside the ra.xml file.
+ By default the adapter is configured to access a broker located at localhost with the
+ default port of 5672. The ANONYMOUS security mechanism is also in use. If this is not
+ desirable, you have two approaches to configure the adapter.
+
+
+ 1) Extract the META-INF/ra.xml file from the RAR file, modify and recompress the RAR archive
+ with the updated contents.
+
+ 2) Use the example build system to package the adapter. The example build.xml file includes
+ a target
+
+ package-rar
+
+ that can be used to package the RAR file as well as allowing changes to the geronimo-ra.xml
+ file without having to extract the RAR file by hand. The conf/geronimo-ra.xml file is used
+ when you use the example build system.
+
+ While any property can be modified in the geronimo-ra.xml file, typically you will want to
+ change the URL of the broker to which you are trying to connect. Rather than modifying
+ the geronimo-ra.xml file directly you can modify the
+
+
+ <property name="broker.url" value="amqp://anonymous:@client/test?brokerlist='tcp://10.0.1.44:5672?sasl_mechs='ANONYMOUS''"/>
+
+ line in the build.xml file. This will dynamically insert the broker.url value into the geronimo-ra.xml file.
+
+ Once you have made your modifications you can execute
+
+
+ ant clean package-rar deploy-rar
+
+ Note, your Geronimo server must be running and your GERONIMO_HOME environment variable must be set. Barring any exceptions, the
+ adapter is now deployed and ready for use in Geronimo.
+
+
+Step 2 -- Deploy the application component(s).
+
+As previously mentioned, the adapter comes with a variety of EE components for use in your respective application server. You can choose to deploy
+these components individually, or as a single EAR archive. This document assumes that you will use the EAR to deploy and run the example.
+
+The command to package and deploy the EAR archive is the same across application servers. Executing the following command
+
+ant deploy-ear
+
+will, depending upon platform, package the EAR and deploy the archive in your respective environment. Once this step is executed, the example
+is ready for use.
+
+
+Step 3 -- Test the Example
+
+The Qpid JCA example provides an EJB application, as well as a Web application. Both can be used to test/run the example:
+
+EJB
+If you want to use the EJB application to test the example you can execute
+
+ ant run-client
+
+Running this command will perform a JNDI lookup of the SLSB in either JBoss or Geronimo and send a simple string to the SLSB. The SLSB will receive
+this string, construct a JMS message and place this message on a configured queue. The MDB will in turn receive this message and print the contents
+to the console.
+
+The main properties involved in this task are
+
+server.host
+jndi.context
+
+These vary depending upon which application server you are runnning. These can be modified to suit your environment. Looking at the run-client task you
+will see the following:
+
+
+ <sysproperty key="qpid.ejb.name" value="qpid-jcaex/QpidTestBean/remote"/>
+
+This is the JNDI name of the SLSB component and it varies by application server. Typically you do not have to change this. Also, the task supports another property
+
+
+ <sysproperty key="qpid.message" value="insert-value-here"/>
+
+You can set this property if you want to modify the message contents being routed through the system.
+
+Web
+The Qpid JCA Example comes with a web application. To access the web component, simply use a browser of your choice and navigate to
+
+http://<server-host-name>:<server-port>/qpid-jca-web/qpid
+
+where server-host and server-port are the host and port where you are running your application server. By default this is localhost:8080. Similar to the EJB component,
+the web application supports a few options:
+
+
+http://<server-host-name>:<server-port>/qpid-jca-web/qpid?messsage=<yourmessage>
+
+will allow you to customize the message contents that are routed through the system. By default, the Web application posts to a configured queue in the system. If you want to
+test XA functionality, or use an alternate approach, you can specify
+
+
+http://<server-host-name>:<server-port>/qpid-jca-web/qpid?useEJB=true
+
+instead of posting to a queue, the web application will use the local interface of the EJB component to send the message. This is functionally equivalent to running the
+RMI client.
+
+
+Summary
+=======
+While conceptually simple, the Qpid JCA example provides a majority of the component types and messaging patterns you are most likely to use your development efforts.
+With the Web and EJB components, you can experiment with various aspects of JCA as well as EE development in general using the Qpid Broker as your messaging provider.
+While this documentation highlights the major components and steps needed to take to get the example running, the possiblities for modifcation are numerous. You are
+encouraged to experiment with the example as you develop your own messaging applications.
+
+