http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/server/standalone/configuration/standalone-example2.xml
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/server/standalone/configuration/standalone-example2.xml
 
b/examples/javaee/jca-config/server/standalone/configuration/standalone-example2.xml
new file mode 100644
index 0000000..faf3f3f
--- /dev/null
+++ 
b/examples/javaee/jca-config/server/standalone/configuration/standalone-example2.xml
@@ -0,0 +1,496 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<server xmlns="urn:jboss:domain:2.0">
+    <extensions>
+        <extension module="org.jboss.as.clustering.infinispan"/>
+        <extension module="org.jboss.as.connector"/>
+        <extension module="org.jboss.as.deployment-scanner"/>
+        <extension module="org.jboss.as.ee"/>
+        <extension module="org.jboss.as.ejb3"/>
+        <extension module="org.jboss.as.jacorb"/>
+        <extension module="org.jboss.as.jaxrs"/>
+        <extension module="org.jboss.as.jdr"/>
+        <extension module="org.jboss.as.jmx"/>
+        <extension module="org.jboss.as.jpa"/>
+        <extension module="org.jboss.as.jsf"/>
+        <extension module="org.jboss.as.jsr77"/>
+        <extension module="org.jboss.as.logging"/>
+        <extension module="org.jboss.as.mail"/>
+        <extension module="org.jboss.as.messaging"/>
+        <extension module="org.jboss.as.naming"/>
+        <extension module="org.jboss.as.pojo"/>
+        <extension module="org.jboss.as.remoting"/>
+        <extension module="org.jboss.as.sar"/>
+        <extension module="org.jboss.as.security"/>
+        <extension module="org.jboss.as.threads"/>
+        <extension module="org.jboss.as.transactions"/>
+        <extension module="org.jboss.as.webservices"/>
+        <extension module="org.jboss.as.weld"/>
+        <extension module="org.wildfly.extension.batch"/>
+        <extension module="org.wildfly.extension.io"/>
+        <extension module="org.wildfly.extension.undertow"/>
+    </extensions>
+    <management>
+        <security-realms>
+            <security-realm name="ManagementRealm">
+                <authentication>
+                    <local default-user="$local"/>
+                    <properties path="mgmt-users.properties" 
relative-to="jboss.server.config.dir"/>
+                </authentication>
+                <authorization map-groups-to-roles="false">
+                    <properties path="mgmt-groups.properties" 
relative-to="jboss.server.config.dir"/>
+                </authorization>
+            </security-realm>
+            <security-realm name="ApplicationRealm">
+                <authentication>
+                    <local default-user="$local" allowed-users="*"/>
+                    <properties path="application-users.properties" 
relative-to="jboss.server.config.dir"/>
+                </authentication>
+                <authorization>
+                    <properties path="application-roles.properties" 
relative-to="jboss.server.config.dir"/>
+                </authorization>
+            </security-realm>
+        </security-realms>
+        <audit-log>
+            <formatters>
+                <json-formatter name="json-formatter"/>
+            </formatters>
+            <handlers>
+                <file-handler name="file" formatter="json-formatter" 
relative-to="jboss.server.data.dir" path="audit-log.log"/>
+            </handlers>
+            <logger log-boot="true" log-read-only="false" enabled="false">
+                <handlers>
+                    <handler name="file"/>
+                </handlers>
+            </logger>
+        </audit-log>
+        <management-interfaces>
+            <http-interface security-realm="ManagementRealm" 
http-upgrade-enabled="true">
+                <socket-binding http="management-http"/>
+            </http-interface>
+        </management-interfaces>
+        <access-control provider="simple">
+            <role-mapping>
+                <role name="SuperUser">
+                    <include>
+                        <user name="$local"/>
+                    </include>
+                </role>
+            </role-mapping>
+        </access-control>
+    </management>
+    <profile>
+        <subsystem xmlns="urn:jboss:domain:logging:2.0">
+            <console-handler name="CONSOLE">
+                <level name="INFO"/>
+                <formatter>
+                    <named-formatter name="COLOR-PATTERN"/>
+                </formatter>
+            </console-handler>
+            <periodic-rotating-file-handler name="FILE" autoflush="true">
+                <formatter>
+                    <named-formatter name="PATTERN"/>
+                </formatter>
+                <file relative-to="jboss.server.log.dir" path="server.log"/>
+                <suffix value=".yyyy-MM-dd"/>
+                <append value="true"/>
+            </periodic-rotating-file-handler>
+            <logger category="com.arjuna">
+                <level name="WARN"/>
+            </logger>
+            <logger category="org.apache.tomcat.util.modeler">
+                <level name="WARN"/>
+            </logger>
+            <logger category="org.jboss.as.config">
+                <level name="DEBUG"/>
+            </logger>
+            <logger category="sun.rmi">
+                <level name="WARN"/>
+            </logger>
+            <logger category="jacorb">
+                <level name="WARN"/>
+            </logger>
+            <logger category="jacorb.config">
+                <level name="ERROR"/>
+            </logger>
+            <root-logger>
+                <level name="INFO"/>
+                <handlers>
+                    <handler name="CONSOLE"/>
+                    <handler name="FILE"/>
+                </handlers>
+            </root-logger>
+            <formatter name="PATTERN">
+                <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p 
[%c] (%t) %s%E%n"/>
+            </formatter>
+            <formatter name="COLOR-PATTERN">
+                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p 
[%c] (%t) %s%E%n"/>
+            </formatter>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:batch:1.0">
+            <job-repository>
+                <in-memory/>
+            </job-repository>
+            <thread-pool>
+                <max-threads count="10"/>
+                <keepalive-time time="100" unit="milliseconds"/>
+            </thread-pool>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:datasources:2.0">
+            <datasources>
+                <datasource jndi-name="java:jboss/datasources/ExampleDS" 
pool-name="ExampleDS" enabled="true" use-java-context="true">
+                    
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
+                    <driver>h2</driver>
+                    <security>
+                        <user-name>sa</user-name>
+                        <password>sa</password>
+                    </security>
+                </datasource>
+                <drivers>
+                    <driver name="h2" module="com.h2database.h2">
+                        
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
+                    </driver>
+                </drivers>
+            </datasources>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
+            <deployment-scanner path="deployments" 
relative-to="jboss.server.base.dir" scan-interval="5000" 
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:ee:2.0">
+            
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
+            
<jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
+            
<annotation-property-replacement>false</annotation-property-replacement>
+            <concurrent>
+                <context-services>
+                    <context-service name="default" 
jndi-name="java:jboss/ee/concurrency/context/default" 
use-transaction-setup-provider="true"/>
+                </context-services>
+                <managed-executor-services>
+                    <managed-executor-service name="default" 
jndi-name="java:jboss/ee/concurrency/executor/default" 
context-service="default" hung-task-threshold="60000" core-threads="5" 
max-threads="25" keepalive-time="5000"/>
+                </managed-executor-services>
+                <managed-scheduled-executor-services>
+                    <managed-scheduled-executor-service name="default" 
jndi-name="java:jboss/ee/concurrency/scheduler/default" 
context-service="default" hung-task-threshold="60000" core-threads="2" 
keepalive-time="3000"/>
+                </managed-scheduled-executor-services>
+                <managed-thread-factories>
+                    <managed-thread-factory name="default" 
jndi-name="java:jboss/ee/concurrency/factory/default" 
context-service="default"/>
+                </managed-thread-factories>
+            </concurrent>
+            <default-bindings 
context-service="java:jboss/ee/concurrency/context/default" 
datasource="java:jboss/datasources/ExampleDS" 
jms-connection-factory="java:jboss/DefaultJMSConnectionFactory" 
managed-executor-service="java:jboss/ee/concurrency/executor/default" 
managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default"
 managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:ejb3:2.0">
+            <session-bean>
+                <stateful default-access-timeout="5000" cache-ref="simple" 
passivation-disabled-cache-ref="simple"/>
+                <singleton default-access-timeout="5000"/>
+            </session-bean>
+            <mdb>
+                <resource-adapter-ref 
resource-adapter-name="${ejb.resource-adapter-name:hornetq-ra.rar}"/>
+                <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
+            </mdb>
+            <pools>
+                <bean-instance-pools>
+                    <!-- A sample strict max pool configuration -->
+                    <strict-max-pool name="slsb-strict-max-pool" 
max-pool-size="20" instance-acquisition-timeout="5" 
instance-acquisition-timeout-unit="MINUTES"/>
+                    <strict-max-pool name="mdb-strict-max-pool" 
max-pool-size="20" instance-acquisition-timeout="5" 
instance-acquisition-timeout-unit="MINUTES"/>
+                </bean-instance-pools>
+            </pools>
+            <caches>
+                <cache name="simple"/>
+                <cache name="distributable" aliases="passivating clustered" 
passivation-store-ref="infinispan"/>
+            </caches>
+            <passivation-stores>
+                <passivation-store name="infinispan" cache-container="ejb" 
max-size="10000"/>
+            </passivation-stores>
+            <async thread-pool-name="default"/>
+            <timer-service thread-pool-name="default" 
default-data-store="default-file-store">
+                <data-stores>
+                    <file-data-store name="default-file-store" 
path="timer-service-data" relative-to="jboss.server.data.dir"/>
+                </data-stores>
+            </timer-service>
+            <remote connector-ref="http-remoting-connector" 
thread-pool-name="default"/>
+            <thread-pools>
+                <thread-pool name="default">
+                    <max-threads count="10"/>
+                    <keepalive-time time="100" unit="milliseconds"/>
+                </thread-pool>
+            </thread-pools>
+            <iiop enable-by-default="false" use-qualified-name="false"/>
+            <default-security-domain value="other"/>
+            <default-missing-method-permissions-deny-access value="true"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:io:1.0">
+            <worker name="default" io-threads="3"/>
+            <buffer-pool name="default" buffer-size="16384" 
buffers-per-slice="128"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:infinispan:2.0">
+            <cache-container name="web" default-cache="passivation" 
module="org.wildfly.clustering.web.infinispan">
+                <local-cache name="passivation" batching="true">
+                    <file-store passivation="true" purge="false"/>
+                </local-cache>
+                <local-cache name="persistent" batching="true">
+                    <file-store passivation="false" purge="false"/>
+                </local-cache>
+            </cache-container>
+            <cache-container name="ejb" aliases="sfsb" 
default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">
+                <local-cache name="passivation" batching="true">
+                    <file-store passivation="true" purge="false"/>
+                </local-cache>
+                <local-cache name="persistent" batching="true">
+                    <file-store passivation="false" purge="false"/>
+                </local-cache>
+            </cache-container>
+            <cache-container name="hibernate" default-cache="local-query" 
module="org.hibernate">
+                <local-cache name="entity">
+                    <transaction mode="NON_XA"/>
+                    <eviction strategy="LRU" max-entries="10000"/>
+                    <expiration max-idle="100000"/>
+                </local-cache>
+                <local-cache name="local-query">
+                    <transaction mode="NONE"/>
+                    <eviction strategy="LRU" max-entries="10000"/>
+                    <expiration max-idle="100000"/>
+                </local-cache>
+                <local-cache name="timestamps">
+                    <transaction mode="NONE"/>
+                    <eviction strategy="NONE"/>
+                </local-cache>
+            </cache-container>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:jacorb:1.3">
+            <orb socket-binding="jacorb" ssl-socket-binding="jacorb-ssl">
+                <initializers transactions="spec" security="identity"/>
+            </orb>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
+        <subsystem xmlns="urn:jboss:domain:jca:2.0">
+            <archive-validation enabled="true" fail-on-error="true" 
fail-on-warn="false"/>
+            <bean-validation enabled="true"/>
+            <default-workmanager>
+                <short-running-threads>
+                    <core-threads count="50"/>
+                    <queue-length count="50"/>
+                    <max-threads count="50"/>
+                    <keepalive-time time="10" unit="seconds"/>
+                </short-running-threads>
+                <long-running-threads>
+                    <core-threads count="50"/>
+                    <queue-length count="50"/>
+                    <max-threads count="50"/>
+                    <keepalive-time time="10" unit="seconds"/>
+                </long-running-threads>
+            </default-workmanager>
+            <cached-connection-manager/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:jdr:1.0"/>
+        <subsystem xmlns="urn:jboss:domain:jmx:1.3">
+            <expose-resolved-model/>
+            <expose-expression-model/>
+            <remoting-connector/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:jpa:1.1">
+            <jpa default-datasource="" 
default-extended-persistence-inheritance="DEEP"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:jsf:1.0"/>
+        <subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>
+        <subsystem xmlns="urn:jboss:domain:mail:2.0">
+            <mail-session name="default" jndi-name="java:jboss/mail/Default">
+                <smtp-server outbound-socket-binding-ref="mail-smtp"/>
+            </mail-session>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:messaging:2.0">
+            <hornetq-server>
+                <persistence-enabled>true</persistence-enabled>
+                <journal-file-size>102400</journal-file-size>
+                <journal-min-files>2</journal-min-files>
+                <connectors>
+                    <http-connector name="http-connector" 
socket-binding="http">
+                        <param key="http-upgrade-endpoint" 
value="http-acceptor"/>
+                    </http-connector>
+                    <http-connector name="http-connector-throughput" 
socket-binding="http">
+                        <param key="http-upgrade-endpoint" 
value="http-acceptor-throughput"/>
+                        <param key="batch-delay" value="50"/>
+                    </http-connector>
+                    <in-vm-connector name="in-vm" server-id="0"/>
+                    <http-connector name="remote-http-connector" 
socket-binding="remote-messaging"/>
+                </connectors>
+                <acceptors>
+                    <http-acceptor name="http-acceptor" 
http-listener="default"/>
+                    <http-acceptor name="http-acceptor-throughput" 
http-listener="default">
+                        <param key="batch-delay" value="50"/>
+                        <param key="direct-deliver" value="false"/>
+                    </http-acceptor>
+                    <in-vm-acceptor name="in-vm" server-id="0"/>
+                </acceptors>
+                <security-settings>
+                    <security-setting match="#">
+                        <permission type="send" roles="guest"/>
+                        <permission type="consume" roles="guest"/>
+                        <permission type="createNonDurableQueue" 
roles="guest"/>
+                        <permission type="deleteNonDurableQueue" 
roles="guest"/>
+                    </security-setting>
+                </security-settings>
+                <address-settings>
+                    <!--default for catch all-->
+                    <address-setting match="#">
+                        
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
+                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
+                        <redelivery-delay>0</redelivery-delay>
+                        <max-size-bytes>10485760</max-size-bytes>
+                        <address-full-policy>PAGE</address-full-policy>
+                        <page-size-bytes>2097152</page-size-bytes>
+                        
<message-counter-history-day-limit>10</message-counter-history-day-limit>
+                    </address-setting>
+                </address-settings>
+                <jms-connection-factories>
+                    <connection-factory name="InVmConnectionFactory">
+                        <connectors>
+                            <connector-ref connector-name="in-vm"/>
+                        </connectors>
+                        <entries>
+                            <entry name="java:/ConnectionFactory"/>
+                        </entries>
+                    </connection-factory>
+                    <connection-factory name="RemoteConnectionFactory">
+                        <connectors>
+                            <connector-ref connector-name="http-connector"/>
+                        </connectors>
+                        <entries>
+                            <entry 
name="java:jboss/exported/jms/RemoteConnectionFactory"/>
+                        </entries>
+                    </connection-factory>
+                    <pooled-connection-factory name="hornetq-ra">
+                        <transaction mode="xa"/>
+                        <connectors>
+                            <connector-ref connector-name="in-vm"/>
+                        </connectors>
+                        <entries>
+                            <entry name="java:/JmsXA"/>
+                            <!-- Global JNDI entry used to provide a default 
JMS Connection factory to EE application -->
+                            <entry 
name="java:jboss/DefaultJMSConnectionFactory"/>
+                        </entries>
+                    </pooled-connection-factory>
+                    <pooled-connection-factory name="hornetq-ra-remote">
+                        <transaction mode="xa"/>
+                        <user>guest</user>
+                        <password>password</password>
+                        <connectors>
+                            <connector-ref 
connector-name="remote-http-connector"/>
+                        </connectors>
+                        <entries>
+                            <entry name="java:/RemoteJmsXA"/>
+                        </entries>
+                    </pooled-connection-factory>
+                </jms-connection-factories>
+            </hornetq-server>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:naming:2.0">
+            <remote-naming/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
+        <subsystem xmlns="urn:jboss:domain:remoting:2.0">
+            <endpoint worker="default"/>
+            <http-connector name="http-remoting-connector" 
connector-ref="default" security-realm="ApplicationRealm"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:resource-adapters:2.0"/>
+        <subsystem xmlns="urn:jboss:domain:sar:1.0"/>
+        <subsystem xmlns="urn:jboss:domain:security:1.2">
+            <security-domains>
+                <security-domain name="other" cache-type="default">
+                    <authentication>
+                        <login-module code="Remoting" flag="optional">
+                            <module-option name="password-stacking" 
value="useFirstPass"/>
+                        </login-module>
+                        <login-module code="RealmDirect" flag="required">
+                            <module-option name="password-stacking" 
value="useFirstPass"/>
+                        </login-module>
+                    </authentication>
+                </security-domain>
+                <security-domain name="jboss-web-policy" cache-type="default">
+                    <authorization>
+                        <policy-module code="Delegating" flag="required"/>
+                    </authorization>
+                </security-domain>
+                <security-domain name="jboss-ejb-policy" cache-type="default">
+                    <authorization>
+                        <policy-module code="Delegating" flag="required"/>
+                    </authorization>
+                </security-domain>
+            </security-domains>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:threads:1.1"/>
+        <subsystem xmlns="urn:jboss:domain:transactions:2.0">
+            <core-environment>
+                <process-id>
+                    <uuid/>
+                </process-id>
+            </core-environment>
+            <recovery-environment socket-binding="txn-recovery-environment" 
status-socket-binding="txn-status-manager"/>
+            <coordinator-environment default-timeout="300"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:undertow:1.0">
+            <buffer-caches>
+                <buffer-cache name="default" buffer-size="1024" 
buffers-per-region="1024" max-regions="10"/>
+            </buffer-caches>
+            <server name="default-server">
+                <http-listener name="default" socket-binding="http"/>
+                <host name="default-host" alias="localhost">
+                    <location name="/" handler="welcome-content"/>
+                    <filter-ref name="server-header"/>
+                    <filter-ref name="x-powered-by-header"/>
+                </host>
+            </server>
+            <servlet-container name="default" default-buffer-cache="default" 
stack-trace-on-error="local-only">
+                <jsp-config/>
+            </servlet-container>
+            <handlers>
+                <file name="welcome-content" 
path="${jboss.home.dir}/welcome-content" directory-listing="true"/>
+            </handlers>
+            <filters>
+                <response-header name="server-header" header-name="Server" 
header-value="Wildfly 8"/>
+                <response-header name="x-powered-by-header" 
header-name="X-Powered-By" header-value="Undertow 1"/>
+            </filters>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:webservices:1.2">
+            <modify-wsdl-address>true</modify-wsdl-address>
+            <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
+            <endpoint-config name="Standard-Endpoint-Config"/>
+            <endpoint-config name="Recording-Endpoint-Config">
+                <pre-handler-chain name="recording-handlers" 
protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP 
##SOAP12_HTTP_MTOM">
+                    <handler name="RecordingHandler" 
class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
+                </pre-handler-chain>
+            </endpoint-config>
+            <client-config name="Standard-Client-Config"/>
+        </subsystem>
+        <subsystem xmlns="urn:jboss:domain:weld:2.0"/>
+    </profile>
+    <interfaces>
+        <interface name="management">
+            <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
+        </interface>
+        <interface name="public">
+            <inet-address value="${jboss.bind.address:127.0.0.1}"/>
+        </interface>
+        <!-- TODO - only show this if the jacorb subsystem is added  -->
+        <interface name="unsecure">
+            <!--
+              ~  Used for IIOP sockets in the standard configuration.
+              ~                  To secure JacORB you need to setup SSL
+              -->
+            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
+        </interface>
+    </interfaces>
+    <socket-binding-group name="standard-sockets" default-interface="public" 
port-offset="${jboss.socket.binding.port-offset:0}">
+        <socket-binding name="management-http" interface="management" 
port="${jboss.management.http.port:9990}"/>
+        <socket-binding name="management-https" interface="management" 
port="${jboss.management.https.port:9993}"/>
+        <socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
+        <socket-binding name="http" port="${jboss.http.port:8080}"/>
+        <socket-binding name="https" port="${jboss.https.port:8443}"/>
+        <socket-binding name="jacorb" interface="unsecure" port="3528"/>
+        <socket-binding name="jacorb-ssl" interface="unsecure" port="3529"/>
+        <socket-binding name="messaging-group" port="0" 
multicast-address="${jboss.messaging.group.address:231.7.7.7}" 
multicast-port="${jboss.messaging.group.port:9876}"/>
+        <socket-binding name="remote-messaging" port="8080" fixed-port="true"/>
+        <socket-binding name="txn-recovery-environment" port="4712"/>
+        <socket-binding name="txn-status-manager" port="4713"/>
+        <outbound-socket-binding name="mail-smtp">
+            <remote-destination host="localhost" port="25"/>
+        </outbound-socket-binding>
+    </socket-binding-group>
+</server>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/MDBRemoteClientExample.java
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/MDBRemoteClientExample.java
 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/MDBRemoteClientExample.java
new file mode 100644
index 0000000..67b77ca
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/MDBRemoteClientExample.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2005-2014 Red Hat, Inc.
+ * Red Hat licenses this file to you 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.
+ */
+package org.hornetq.javaee.example;
+
+import org.hornetq.javaee.example.server2.StatelessSenderService;
+
+import javax.jms.Connection;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import java.util.Properties;
+
+/**
+ *
+ * MDB Remote & JCA Configuration Example.
+ *
+ * @author <a href="mailto:clebert.suco...@jboss.org";>Clebert Suconic</a>
+ */
+public class MDBRemoteClientExample
+{
+   public static void main(String[] args) throws Exception
+   {
+      Connection connection = null;
+      InitialContext initialContext = null;
+      try
+      {
+         // Step 1. Create an initial context to perform the EJB lookup.
+         Properties env = new Properties();
+         env.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
+         initialContext = new InitialContext(env);
+
+         // Step 2. Lookup the EJB
+         StatelessSenderService sender = 
(StatelessSenderService)initialContext.lookup("ejb:/test//StatelessSender!org.hornetq.javaee.example.server2.StatelessSenderService");
+
+         //Step 3. Calling a Stateless Session Bean. You will have more steps 
on the SessionBean
+         sender.sendHello("Hello there MDB!");
+
+         System.out.println("Step 3: Invoking the Stateless Bean");
+
+         initialContext.close();
+      }
+      finally
+      {
+         //Step 11. Be sure to close our JMS resources!
+         if (initialContext != null)
+         {
+            initialContext.close();
+         }
+         if(connection != null)
+         {
+            connection.close();
+         }
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server/MDBQueueA.java
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server/MDBQueueA.java
 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server/MDBQueueA.java
new file mode 100644
index 0000000..1ea3e74
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server/MDBQueueA.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2005-2014 Red Hat, Inc.
+ * Red Hat licenses this file to you 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.
+ */
+package org.hornetq.javaee.example.server;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.TextMessage;
+
+/**
+ * MDB that is connected to the remote queue.
+ * @author <a href="mailto:clebert.suco...@jboss.org";>Clebert Suconic</a>
+ */
+
+//Step 9. The message is received on the MDB, using a local queue.
+@MessageDriven(name = "MDB_QueueA",
+               activationConfig =
+                  {
+                     @ActivationConfigProperty(propertyName = 
"destinationType", propertyValue = "javax.jms.Queue"),
+                     @ActivationConfigProperty(propertyName = "destination", 
propertyValue = "queue/A")
+                  })
+public class MDBQueueA implements MessageListener
+{
+   public void onMessage(Message message)
+   {
+      try
+      {
+         TextMessage tm = (TextMessage)message;
+
+         String text = tm.getText();
+
+         System.out.println("Step 10: (MDBQueueA.java) Message received using 
the default adapter. Message = \"" + text + "\"" );
+
+      }
+      catch (Exception e)
+      {
+         e.printStackTrace();
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/MDBQueueB.java
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/MDBQueueB.java
 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/MDBQueueB.java
new file mode 100644
index 0000000..7635419
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/MDBQueueB.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2005-2014 Red Hat, Inc.
+ * Red Hat licenses this file to you 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.
+ */
+package org.hornetq.javaee.example.server2;
+
+import org.jboss.ejb3.annotation.ResourceAdapter;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import javax.jms.TextMessage;
+
+/**
+ * MDB that is connected to the remote queue.
+ * @author <a href="mailto:clebert.suco...@jboss.org";>Clebert Suconic</a>
+ */
+
+//Step 10. The message is received on the MDB, using a remote queue.
+@MessageDriven(name = "MDB_QueueB",
+               activationConfig =
+                  {
+                     @ActivationConfigProperty(propertyName = 
"destinationType", propertyValue = "javax.jms.Queue"),
+                     @ActivationConfigProperty(propertyName = "destination", 
propertyValue = "B"),
+                     @ActivationConfigProperty(propertyName = "useJNDI", 
propertyValue = "false")
+                  })
+@ResourceAdapter("hornetq-ra-remote.rar")
+public class MDBQueueB implements MessageListener
+{
+   public void onMessage(Message message)
+   {
+      try
+      {
+         TextMessage tm = (TextMessage)message;
+
+         String text = tm.getText();
+
+         System.out.println("Step 11: (MDBQueueB.java) Message received using 
the remote adapter. Message = \"" + text + "\"" );
+
+      }
+      catch (Exception e)
+      {
+         e.printStackTrace();
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSender.java
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSender.java
 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSender.java
new file mode 100644
index 0000000..f2409c0
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSender.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2005-2014 Red Hat, Inc.
+ * Red Hat licenses this file to you 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.
+ */
+package org.hornetq.javaee.example.server2;
+
+import org.hornetq.api.jms.HornetQJMSClient;
+import org.hornetq.ra.HornetQRAConnectionFactoryImpl;
+
+import javax.annotation.Resource;
+import javax.ejb.Remote;
+import javax.ejb.Stateless;
+import javax.jms.*;
+
+/**
+ * A Stateless Bean that will connect to a remote JBM.
+ *
+ * @author <a href="mailto:clebert.suco...@jboss.org";>Clebert Suconic</a>
+ */
+@Remote(StatelessSenderService.class)
+@Stateless
+public class StatelessSender implements StatelessSenderService
+{
+   @Resource(mappedName="java:/RemoteJmsXA")
+   private ConnectionFactory connectionFactory;
+
+   public void sendHello(String message) throws Exception
+   {
+      // Step 4. Define the destinations that will receive the message 
(instead of using JNDI to the remote server)
+      Queue destQueueA = HornetQJMSClient.createQueue("A");
+      Queue destQueueB = HornetQJMSClient.createQueue("B");
+      // Step 5. Create a connection to a remote server using a 
connection-factory (look at the deployed file jms-remote-ds.xml)
+      Connection conn = connectionFactory.createConnection("guest", 
"password");
+
+      // Step 6. Send a message to a QueueA on the remote server, which will 
be received by MDBQueueA
+      Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      MessageProducer prodA = sess.createProducer(destQueueA);
+      prodA.send(sess.createTextMessage(message));
+
+      // Step 7. Send a message to a QueueB on the remote server, which will 
be received by MDBQueueA
+      MessageProducer prodB = sess.createProducer(destQueueB);
+      prodB.send(sess.createTextMessage(message));
+
+      // Step 8. Close the connection. (Since this is a JCA connection, this 
will just place the connection back to a connection pool)
+      conn.close();
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSenderService.java
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSenderService.java
 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSenderService.java
new file mode 100644
index 0000000..6222474
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/main/java/org/hornetq/javaee/example/server2/StatelessSenderService.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2005-2014 Red Hat, Inc.
+ * Red Hat licenses this file to you 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.
+ */
+
+package org.hornetq.javaee.example.server2;
+
+/**
+ * A StatelessSenderService
+ *
+ * @author <a href="mailto:clebert.suco...@jboss.org";>Clebert Suconic</a>
+ *
+ *
+ */
+public interface StatelessSenderService
+{
+
+   public void sendHello(String message) throws Exception;
+
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/main/resources/jboss-ejb-client.properties
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/main/resources/jboss-ejb-client.properties 
b/examples/javaee/jca-config/src/main/resources/jboss-ejb-client.properties
new file mode 100644
index 0000000..f31d441
--- /dev/null
+++ b/examples/javaee/jca-config/src/main/resources/jboss-ejb-client.properties
@@ -0,0 +1,7 @@
+remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
+
+remote.connections=default
+
+remote.connection.default.host=localhost
+remote.connection.default.port = 8180
+remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/test/java/org/hornetq/javaee/example/server/ExampleRunner2Test.java
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/test/java/org/hornetq/javaee/example/server/ExampleRunner2Test.java
 
b/examples/javaee/jca-config/src/test/java/org/hornetq/javaee/example/server/ExampleRunner2Test.java
new file mode 100644
index 0000000..72fd4aa
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/test/java/org/hornetq/javaee/example/server/ExampleRunner2Test.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2005-2014 Red Hat, Inc.
+ * Red Hat licenses this file to you 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.
+ */
+package org.hornetq.javaee.example.server;
+
+import org.hornetq.javaee.example.MDBRemoteClientExample;
+import org.hornetq.javaee.example.server2.MDBQueueB;
+import org.hornetq.javaee.example.server2.StatelessSender;
+import org.hornetq.javaee.example.server2.StatelessSenderService;
+import org.jboss.arquillian.container.test.api.ContainerController;
+import org.jboss.arquillian.container.test.api.Deployer;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.RunAsClient;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.junit.InSequence;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * @author <a href="mailto:andy.tay...@jboss.org";>Andy Taylor</a>
+ * @author Justin Bertram
+ */
+@RunAsClient
+@RunWith(Arquillian.class)
+public class ExampleRunner2Test
+{
+   @ArquillianResource
+   private ContainerController controller;
+   @ArquillianResource
+   private Deployer deployer;
+
+   @Deployment(name = "deploy-0", managed = false)
+   @TargetsContainer("node-0")
+   public static Archive getDeployment()
+   {
+      final JavaArchive ejbJar = ShrinkWrap.create(JavaArchive.class, 
"mdb.jar");
+      ejbJar.addClass(MDBQueueA.class);
+      System.out.println(ejbJar.toString(true));
+      return ejbJar;
+   }
+
+   @Deployment(name = "deploy-1", managed = false)
+   @TargetsContainer("node-1")
+   public static Archive getDeployment2()
+   {
+      final JavaArchive ejbJar = ShrinkWrap.create(JavaArchive.class, 
"mdb2.jar");
+      ejbJar.addClass(MDBQueueB.class);
+      ejbJar.addClass(StatelessSenderService.class);
+      ejbJar.addClass(StatelessSender.class);
+
+      final WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war");
+      war.addAsManifestResource("jboss-deployment-structure.xml", 
"jboss-deployment-structure.xml");
+      war.addAsLibrary(ejbJar);
+      System.out.println(war.toString(true));
+      return war;
+   }
+
+   @Test
+   public void runExample() throws Exception
+   {
+      MDBRemoteClientExample.main(null);
+   }
+
+   @Test
+   @InSequence(-1)
+   public void startServer()
+   {
+      
System.out.println("*****************************************************************************************************************************************************************");
+      controller.start("node-0");
+      
System.out.println("*****************************************************************************************************************************************************************");
+      deployer.deploy("deploy-0");
+      
System.out.println("*****************************************************************************************************************************************************************");
+      controller.start("node-1");
+      
System.out.println("*****************************************************************************************************************************************************************");
+      deployer.deploy("deploy-1");
+      
System.out.println("*****************************************************************************************************************************************************************");
+   }
+
+   @Test
+   @InSequence(1)
+   public void stopServer()
+   {
+      deployer.undeploy("deploy-1");
+      controller.stop("node-1");
+      deployer.undeploy("deploy-0");
+      controller.stop("node-0");
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/test/resources/arquillian.xml
----------------------------------------------------------------------
diff --git a/examples/javaee/jca-config/src/test/resources/arquillian.xml 
b/examples/javaee/jca-config/src/test/resources/arquillian.xml
new file mode 100644
index 0000000..33b56aa
--- /dev/null
+++ b/examples/javaee/jca-config/src/test/resources/arquillian.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<arquillian xmlns="http://jboss.org/schema/arquillian";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://jboss.org/schema/arquillian 
http://jboss.org/schema/arquillian/arquillian_1_0.xsd";>
+
+    <!-- Uncomment to have test archives exported to the file system for 
inspection.
+This feature can also be controlled using the system property 
arquillian.deploymentExportPath -->
+    <!--
+<engine>
+<property name="deploymentExportPath">target</property>
+</engine>
+-->
+
+   <defaultProtocol type="Servlet 3.0"/>
+
+   <group qualifier="clustering-all">
+
+      <container qualifier="node-0" mode="manual" default="true" 
managed="false">
+         <configuration>
+            <property 
name="jbossHome">${basedir}/target/jbossas-node0</property>
+            <property 
name="javaVmArguments">-Djboss.node.name=node-0</property>
+            <property name="serverConfig">standalone-example.xml</property>
+            <property name="allowConnectingToRunningServer">true</property>
+            <property name="managementAddress">${node0:127.0.0.1}</property>
+         </configuration>
+      </container>
+      <container qualifier="node-1" mode="manual" managed="false">
+         <configuration>
+            <property 
name="jbossHome">${basedir}/target/jbossas-node1</property>
+            <property name="javaVmArguments">-Djboss.node.name=node-1 
-Djboss.socket.binding.port-offset=100</property>
+            <property name="serverConfig">standalone-example2.xml</property>
+            <property name="allowConnectingToRunningServer">true</property>
+            <property name="managementAddress">${node0:127.0.0.1}</property>
+            <property 
name="managementPort">${as.managementPort:10090}</property>
+         </configuration>
+      </container>
+   </group>
+
+    <!-- logThreshold proposed -->
+    <!--
+<container qualifier="jbossas-managed">
+<configuration>
+<property name="logThreshold">ERROR</property>
+</configuration>
+</container>
+-->
+
+</arquillian>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-config/src/test/resources/jboss-deployment-structure.xml
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-config/src/test/resources/jboss-deployment-structure.xml 
b/examples/javaee/jca-config/src/test/resources/jboss-deployment-structure.xml
new file mode 100644
index 0000000..5bd26f8
--- /dev/null
+++ 
b/examples/javaee/jca-config/src/test/resources/jboss-deployment-structure.xml
@@ -0,0 +1,7 @@
+<jboss-deployment-structure>
+   <deployment>
+      <dependencies>
+         <module name="org.hornetq"/>
+      </dependencies>
+   </deployment>
+</jboss-deployment-structure>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-remote/pom.xml
----------------------------------------------------------------------
diff --git a/examples/javaee/jca-remote/pom.xml 
b/examples/javaee/jca-remote/pom.xml
new file mode 100644
index 0000000..95d079a
--- /dev/null
+++ b/examples/javaee/jca-remote/pom.xml
@@ -0,0 +1,64 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+   <modelVersion>4.0.0</modelVersion>
+
+   <parent>
+      <groupId>org.hornetq.example.javaee</groupId>
+      <artifactId>javaee-examples</artifactId>
+      <version>2.5.0-SNAPSHOT</version>
+   </parent>
+
+   <artifactId>hornetq-javaee-jca-remote-example</artifactId>
+   <packaging>jar</packaging>
+   <name>HornetQ Java EE JCA Remote Example</name>
+
+
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <executions>
+               <!-- Copy the AS for the second node into 
current_submodule/target/as-node1.-->
+               <execution>
+                  <id>as-node1</id>
+                  <inherited>true</inherited>
+                  <phase>generate-test-resources</phase>
+                  <goals>
+                     <goal>copy-resources</goal>
+                  </goals>
+                  <configuration>
+                     
<outputDirectory>${basedir}/target/jbossas-node1</outputDirectory>
+                     <overwrite>true</overwrite>
+                     <resources>
+                        <resource>
+                           <directory>${jboss.home}</directory>
+                           <excludes>
+                              <exclude>standalone/data</exclude>
+                              <exclude>standalone/log</exclude>
+                              <exclude>standalone/tmp</exclude>
+                           </excludes>
+                        </resource>
+                        <resource>
+                           <directory>${basedir}/server</directory>
+                        </resource>
+                     </resources>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <version>2.12</version>
+            <configuration>
+               
<argLine>-Dlogging.configuration=file:///${user.dir}/test/config/logging.properties</argLine>
+               <!-- Parameters to test cases. -->
+               <systemPropertyVariables>
+                  <arquillian.launch>clustering-all</arquillian.launch>
+               </systemPropertyVariables>
+            </configuration>
+         </plugin>
+      </plugins>
+   </build>
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-remote/readme.html
----------------------------------------------------------------------
diff --git a/examples/javaee/jca-remote/readme.html 
b/examples/javaee/jca-remote/readme.html
new file mode 100644
index 0000000..80518a6
--- /dev/null
+++ b/examples/javaee/jca-remote/readme.html
@@ -0,0 +1,160 @@
+<html>
+  <head>
+    <title>HornetQ Java EE JCA Remote Server Configuration Example</title>
+    <link rel="stylesheet" type="text/css" href="../../common/common.css" />
+    <link rel="stylesheet" type="text/css" href="../../common/prettify.css" />
+    <script type="text/javascript" src="../../common/prettify.js"></script>
+  </head>
+  <body onload="prettyPrint()">
+     <h1>Java EE JCA Resource Adapter Remote Server Configuration Example</h1>
+     <p>This example demonstrates how to configure the Resource adapter to 
connect to a remote HornetQ server</p>
+     <p>This example is composed of a message driven bean and a client<p>
+     <p>MDBRemoteServerClientExample will send a message to the MDB via a 
queue and wait for the MDB to send a response via
+     a reply queue</p>
+
+     <h2>WildFly configuration</h2>
+
+     <p>The example leverages the Arquillian framework to run a WildFly 
instance and deploy the MDB.</p>
+
+     <h2>Configuring the incoming JCA resource adapter</h2>
+
+     <p>The MDB will consume messages via the inflow JCA resource adapter. 
This can be configured in 2 ways:</p>
+     <ol>
+         <li>via a pooled-connection-factory in the "messaging" subsystem</li>
+         <li>via the activation configuration properties on the MDB set either 
via annotations or ejb-jar.xml</li>
+     </ol>
+     <p>In this example the MDB is annotated with 
<code>@ResourceAdapter("hornetq-ra-remote.rar")</code> which refers to
+      this pooled-connection-factory:</p>
+        <pre class="prettyprint">
+                    &lt;pooled-connection-factory name="hornetq-ra-remote">
+                        &lt;transaction mode="xa"/>
+                        &lt;user>guest&lt;/user>
+                        &lt;password>password&lt;/password>
+                        &lt;connectors>
+                            &lt;connector-ref 
connector-name="remote-http-connector"/>
+                        &lt;/connectors>
+                        &lt;entries>
+                            &lt;entry name="java:/RemoteJmsXA"/>
+                        &lt;/entries>
+                    &lt;/pooled-connection-factory>
+        </pre>
+     <p>This configuration ensures the MDB will consume from the remote 
queue.</p>
+
+     <h2>Configuring the outgoing JCA resource adapter</h2>
+
+     <p>The same pooled-connection-factory used for JCA inflow also configures 
an outgoing JCA connection factory which Java EE components can use to send 
messages to the same remote HornetQ Server.</p>
+     <pre class="prettyprint">
+                    &lt;pooled-connection-factory name="hornetq-ra-remote">
+                        &lt;transaction mode="xa"/>
+                        &lt;user>guest&lt;/user>
+                        &lt;password>password&lt;/password>
+                        &lt;connectors>
+                            &lt;connector-ref 
connector-name="remote-http-connector"/>
+                        &lt;/connectors>
+                        &lt;entries>
+                            &lt;entry name="java:/RemoteJmsXA"/>
+                        &lt;/entries>
+                    &lt;/pooled-connection-factory>
+     </pre>
+
+     <h2>Example step-by-step</h2>
+
+     <p><i>download WildFly 8.0.0.Final from <a 
href="http://wildfly.org/downloads/";>here</a> and install.</i></p>
+     <p><i>set the JBOSS_HOME property to point to the WildFly install 
directory</i></p>
+     <p><i>type <code>mvn verify</code> from the example directory to 
run</i></p>
+
+     <ol>
+         <li>First we need to get an initial context so we can send a JMS 
message to the second server.</li>
+         <pre class="prettyprint">
+            final Properties env = new Properties();
+
+            env.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
+
+            env.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.jboss.naming.remote.client.InitialContextFactory");
+
+            env.put(Context.PROVIDER_URL, "http-remoting://localhost:8180");
+
+            initialContext = new InitialContext(env);
+         </pre>
+         <li>Look up the MDB's queue</li>
+         <pre class="prettyprint">
+            Queue queue = (Queue) initialContext.lookup("queues/mdbQueue");
+         </pre>
+         <li>look up the connection factory</li>
+         <pre class="prettyprint">
+            ConnectionFactory cf = (ConnectionFactory) 
initialContext.lookup("jms/RemoteConnectionFactory");
+         </pre>
+         <li>We then create a connection</li>
+         <pre class="prettyprint">
+            connection = cf.createConnection("guest", "password");
+         </pre>
+         <li>we then create a session</li>
+         <pre class="prettyprint">
+            Session session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
+         </pre>
+         <li>we now create a message producer to send the message</li>
+         <pre class="prettyprint">
+            MessageProducer producer = session.createProducer(queue);
+         </pre>
+         <li>create a text message and send it</li>
+         <pre class="prettyprint">
+            producer.send(session.createTextMessage("a message"));
+         </pre>
+         <li>The MDB receives the text message</li>
+         <pre class="prettyprint">
+            TextMessage tm = (TextMessage)message;
+         </pre>
+         <li>The MDB looks up the reply queue</li>
+         <pre class="prettyprint">
+            Queue destQueue = HornetQJMSClient.createQueue("mdbReplyQueue");
+         </pre>
+         <li>The MDB creates a connection</li>
+         <pre class="prettyprint">
+            Connection connection = connectionFactory.createConnection();
+         </pre>
+         <li>The MDB creates a session</li>
+         <pre class="prettyprint">
+            Session session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
+         </pre>
+         <li>The MDB creates a message producer to send the message</li>
+         <pre class="prettyprint">
+            MessageProducer producer = session.createProducer(destQueue);
+         </pre>
+         <li>The MDB creates and sends a text message</li>
+         <pre class="prettyprint">
+            producer.send(session.createTextMessage("A reply message"));
+         </pre>
+         <li>The MDB closes the connection which returns it to the pool</li>
+         <pre class="prettyprint">
+            connection.close();
+         </pre>
+         <li>The client now looks up the reply queue</li>
+         <pre class="prettyprint">
+            Queue replyQueue = (Queue) 
initialContext.lookup("queues/mdbReplyQueue");
+         </pre>
+         <li>and creates a message consumer to receive the message</li>
+         <pre class="prettyprint">
+            MessageConsumer consumer = session.createConsumer(replyQueue);
+         </pre>
+         <li>starting the connection starts delivery</li>
+         <pre class="prettyprint">
+            connection.start();
+         </pre>
+         <li>The message consumer receives the text message</li>
+         <pre class="prettyprint">
+            TextMessage textMessage = (TextMessage) consumer.receive(5000);
+         </pre>
+         <li>and we always clear up out JMS resources</li>
+         <pre class="prettyprint">
+            if (initialContext != null)
+            {
+               initialContext.close();
+            }
+            if (connection != null)
+            {
+               connection.close();
+             }
+         </pre>
+      </ol>
+  </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-remote/server/standalone/configuration/application-roles.properties
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-remote/server/standalone/configuration/application-roles.properties
 
b/examples/javaee/jca-remote/server/standalone/configuration/application-roles.properties
new file mode 100644
index 0000000..0ade8fb
--- /dev/null
+++ 
b/examples/javaee/jca-remote/server/standalone/configuration/application-roles.properties
@@ -0,0 +1,22 @@
+#
+# Properties declaration of users roles for the realm 'ApplicationRealm'.
+#
+# This includes the following protocols: remote ejb, remote jndi, web, remote 
jms
+#
+# Users can be added to this properties file at any time, updates after the 
server has started
+# will be automatically detected.
+#
+# The format of this file is as follows: -
+# username=role1,role2,role3
+#
+# A utility script is provided which can be executed from the bin folder to 
add the users: -
+# - Linux
+#  bin/add-user.sh
+#
+# - Windows
+#  bin\add-user.bat
+#
+# The following illustrates how an admin user could be defined.
+#
+#admin=PowerUser,BillingAdmin,
+guest=guest

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-remote/server/standalone/configuration/application-users.properties
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-remote/server/standalone/configuration/application-users.properties
 
b/examples/javaee/jca-remote/server/standalone/configuration/application-users.properties
new file mode 100644
index 0000000..c52e923
--- /dev/null
+++ 
b/examples/javaee/jca-remote/server/standalone/configuration/application-users.properties
@@ -0,0 +1,24 @@
+#
+# Properties declaration of users for the realm 'ApplicationRealm' which is 
the default realm
+# for application services on a new AS 7.1 installation.
+#
+# This includes the following protocols: remote ejb, remote jndi, web, remote 
jms
+#
+# Users can be added to this properties file at any time, updates after the 
server has started
+# will be automatically detected.
+#
+# The format of this realm is as follows: -
+# username=HEX( MD5( username ':' realm ':' password))
+#
+# A utility script is provided which can be executed from the bin folder to 
add the users: -
+# - Linux
+#  bin/add-user.sh
+#
+# - Windows
+#  bin\add-user.bat
+#
+# The following illustrates how an admin user could be defined, this
+# is for illustration only and does not correspond to a usable password.
+#
+#admin=2a0923285184943425d1f53ddd58ec7a
+guest=3437456520927d113b17d471d630e0d6

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-remote/server/standalone/configuration/logging.properties
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-remote/server/standalone/configuration/logging.properties 
b/examples/javaee/jca-remote/server/standalone/configuration/logging.properties
new file mode 100644
index 0000000..8a011f0
--- /dev/null
+++ 
b/examples/javaee/jca-remote/server/standalone/configuration/logging.properties
@@ -0,0 +1,52 @@
+#
+# JBoss, Home of Professional Open Source.
+# Copyright 2010, Red Hat, Inc., and individual contributors
+# as indicated by the @author tags. See the copyright.txt file in the
+# distribution for a full listing of individual contributors.
+#
+# This is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of
+# the License, or (at your option) any later version.
+#
+# This software is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this software; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+#
+
+# Additional logger names to configure (root logger is always configured)
+loggers=org.jboss.as.config
+
+# Dump system environment at boot by default
+logger.org.jboss.as.config.level=DEBUG
+
+# Root logger level
+logger.level=${jboss.boot.server.log.level:INFO}
+# Root logger handlers
+logger.handlers=FILE,CONSOLE
+
+# Console handler configuration
+handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
+handler.CONSOLE.properties=autoFlush
+handler.CONSOLE.level=${jboss.boot.server.log.console.level:INFO}
+handler.CONSOLE.autoFlush=true
+handler.CONSOLE.formatter=PATTERN
+
+# File handler configuration
+handler.FILE=org.jboss.logmanager.handlers.FileHandler
+handler.FILE.level=DEBUG
+handler.FILE.properties=autoFlush,fileName
+handler.FILE.autoFlush=true
+handler.FILE.fileName=${org.jboss.boot.log.file:boot.log}
+handler.FILE.formatter=PATTERN
+
+# Formatter pattern configuration
+formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
+formatter.PATTERN.properties=pattern
+formatter.PATTERN.pattern=%d{HH:mm:ss,SSS} %-5p [%c] %s%E%n

http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/jca-remote/server/standalone/configuration/mgmt-users.properties
----------------------------------------------------------------------
diff --git 
a/examples/javaee/jca-remote/server/standalone/configuration/mgmt-users.properties
 
b/examples/javaee/jca-remote/server/standalone/configuration/mgmt-users.properties
new file mode 100644
index 0000000..309305a
--- /dev/null
+++ 
b/examples/javaee/jca-remote/server/standalone/configuration/mgmt-users.properties
@@ -0,0 +1,24 @@
+#
+# Properties declaration of users for the realm 'ManagementRealm' which is the 
default realm
+# for new AS 7.1 installations. Further authentication mechanism can be 
configured
+# as part of the <management /> in standalone.xml.
+#
+# Users can be added to this properties file at any time, updates after the 
server has started
+# will be automatically detected.
+#
+# By default the properties realm expects the entries to be in the format: -
+# username=HEX( MD5( username ':' realm ':' password))
+#
+# A utility script is provided which can be executed from the bin folder to 
add the users: -
+# - Linux
+#  bin/add-user.sh
+#
+# - Windows
+#  bin\add-user.bat
+
+# The following illustrates how an admin user could be defined, this
+# is for illustration only and does not correspond to a usable password.
+#
+#admin=2a0923285184943425d1f53ddd58ec7a
+admin=ffd6e94a09c5a9ea5e216737dd45b99d
+andy=dfb16391f1be1c454b5bce9822bd9df3

Reply via email to