You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2014/11/10 17:32:28 UTC
[17/51] [partial] activemq-6 git commit: ACTIVEMQ6-1 - Initial
HornetQ Donation Commit
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.suconic@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.suconic@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.suconic@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.suconic@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.suconic@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.taylor@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">
+ <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>
+ </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">
+ <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>
+ </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