http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-not-supported/server/standalone/configuration/standalone-example.xml ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-not-supported/server/standalone/configuration/standalone-example.xml b/examples/javaee/mdb-cmt-tx-not-supported/server/standalone/configuration/standalone-example.xml new file mode 100644 index 0000000..740cfb6 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-not-supported/server/standalone/configuration/standalone-example.xml @@ -0,0 +1,489 @@ +<?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"/> + </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> + </jms-connection-factories> + <jms-destinations> + <jms-queue name="testQueue"> + <entry name="queue/test"/> + <entry name="java:jboss/exported/jms/queues/testQueue"/> + </jms-queue> + </jms-destinations> + </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="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>
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxNotSupportedClientExample.java ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxNotSupportedClientExample.java b/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxNotSupportedClientExample.java new file mode 100644 index 0000000..1c39ac8 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxNotSupportedClientExample.java @@ -0,0 +1,82 @@ +/* + * 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 javax.jms.Connection; +import javax.jms.ConnectionFactory; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.Properties; + +/** + * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> + */ +public class MDB_CMT_TxNotSupportedClientExample +{ + public static void main(final String[] args) throws Exception + { + Connection connection = null; + InitialContext initialContext = null; + try + { + // Step 1. Create an initial context to perform the JNDI lookup. + final Properties env = new Properties(); + + env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); + + env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); + initialContext = new InitialContext(env); + + // Step 2. Perfom a lookup on the queue + Queue queue = (Queue)initialContext.lookup("jms/queues/testQueue"); + + // Step 3. Perform a lookup on the Connection Factory + ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("jms/RemoteConnectionFactory"); + + // Step 4.Create a JMS Connection + connection = cf.createConnection("guest", "password"); + + // Step 5. Create a JMS Session + Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + // Step 6. Create a JMS Message Producer + MessageProducer producer = session.createProducer(queue); + + // Step 7. Create a Text Message + TextMessage message = session.createTextMessage("This is a text message"); + + System.out.println("Sent message: " + message.getText()); + + // Step 8. Send the Message + producer.send(message); + + // Step 9,10 and 11 in MDB_CMP_TxNotSupported + } + finally + { + // Step 12. Be sure to close our JMS resources! + if (initialContext != null) + { + initialContext.close(); + } + if (connection != null) + { + connection.close(); + } + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxNotSupported.java ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxNotSupported.java b/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxNotSupported.java new file mode 100644 index 0000000..3763a75 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-not-supported/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxNotSupported.java @@ -0,0 +1,75 @@ +/* + * 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.annotation.Resource; +import javax.ejb.ActivationConfigProperty; +import javax.ejb.MessageDriven; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.ejb.TransactionManagement; +import javax.ejb.TransactionManagementType; +import javax.jms.Message; +import javax.jms.MessageListener; +import javax.jms.TextMessage; +import javax.transaction.Transaction; +import javax.transaction.TransactionManager; + +import org.jboss.ejb3.annotation.ResourceAdapter; + +/** + * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> + */ +@MessageDriven(name = "MDB_CMT_TxNotSupported", + activationConfig = + { + @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), + @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/testQueue"), + @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") + }) +@TransactionAttribute(value = TransactionAttributeType.NOT_SUPPORTED) +public class MDB_CMT_TxNotSupported implements MessageListener +{ + @Resource(mappedName = "java:/TransactionManager") + private TransactionManager tm; + + public void onMessage(final Message message) + { + try + { + // Step 9. We know the client is sending a text message so we cast + TextMessage textMessage = (TextMessage)message; + + // Step 10. get the text from the message. + String text = textMessage.getText(); + + System.out.println("message " + text + " received"); + + // Step 11. let's look at the transaction to make sure there isn't one. + Transaction tx = tm.getTransaction(); + + if (tx == null) + { + System.out.println("tx is null, just as expected"); + } + else + { + System.out.println("something is wrong, I wasn't expecting a transaction"); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } +} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-not-supported/src/test/java/org/hornetq/javaee/example/MDBCMTSetTXNotSupportedRunnerTest.java ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-not-supported/src/test/java/org/hornetq/javaee/example/MDBCMTSetTXNotSupportedRunnerTest.java b/examples/javaee/mdb-cmt-tx-not-supported/src/test/java/org/hornetq/javaee/example/MDBCMTSetTXNotSupportedRunnerTest.java new file mode 100644 index 0000000..4e53286 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-not-supported/src/test/java/org/hornetq/javaee/example/MDBCMTSetTXNotSupportedRunnerTest.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; + +import org.hornetq.javaee.example.server.MDB_CMT_TxNotSupported; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.container.test.api.RunAsClient; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.shrinkwrap.api.Archive; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> + * 5/21/12 + */ +@RunAsClient +@RunWith(Arquillian.class) +public class MDBCMTSetTXNotSupportedRunnerTest +{ + @Deployment + public static Archive getDeployment() + { + + final JavaArchive ejbJar = ShrinkWrap.create(JavaArchive.class, "mdb.jar"); + ejbJar.addClass(MDB_CMT_TxNotSupported.class); + System.out.println(ejbJar.toString(true)); + return ejbJar; + } + + @Test + public void runExample() throws Exception + { + MDB_CMT_TxNotSupportedClientExample.main(null); + //give the example time to run + Thread.sleep(1000); + } +} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-not-supported/src/test/resources/arquillian.xml ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-not-supported/src/test/resources/arquillian.xml b/examples/javaee/mdb-cmt-tx-not-supported/src/test/resources/arquillian.xml new file mode 100644 index 0000000..9090137 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-not-supported/src/test/resources/arquillian.xml @@ -0,0 +1,34 @@ +<?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" /> + + <container qualifier="jboss" default="true"> + <configuration> + <property name="jbossHome">${basedir}/target/jbossas-node0</property> + <property name="serverConfig">standalone-example.xml</property> + <property name="allowConnectingToRunningServer">true</property> + <property name="managementAddress">${node0:127.0.0.1}</property> + </configuration> + </container> + + <!-- 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/mdb-cmt-tx-required/pom.xml ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/pom.xml b/examples/javaee/mdb-cmt-tx-required/pom.xml new file mode 100644 index 0000000..739e4d0 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/pom.xml @@ -0,0 +1,14 @@ +<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-mdb-cmt-tx-example</artifactId> + <packaging>jar</packaging> + <name>HornetQ Java EE MDB CMT Transaction Example</name> +</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-required/readme.html ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/readme.html b/examples/javaee/mdb-cmt-tx-required/readme.html new file mode 100644 index 0000000..8ecd05f --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/readme.html @@ -0,0 +1,115 @@ +<html> + <head> + <title>HornetQ Java EE MDB Container Managed Transactions 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 MDB Container Managed Transactions Example</h1> + + <p>This example shows you how to send a message to an MDB that is delivered within a transaction controlled by the container</p> + <p>The example will send deploy a simple MDB and demonstrate sending a message and the MDB consuming it</p> + + <p>The example leverages the JBoss Arquillian framework to run a WildFly instance and deploy the MDB.</p> + + <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 look-up the JMS connection factory and destination objects from JNDI. This initial context will get it's properties from the <code>jndi.properties</code> file in the directory <code>config</code></li> + <pre class="prettyprint"> + final Properties env = new Properties(); + + env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); + + env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); + + initialContext = new InitialContext(env); + </pre> + + <li>We look up the JMS queue object from JNDI</li> + <pre class="prettyprint"> + Queue queue = (Queue)initialContext.lookup("jms/queues/testQueue"); + </pre> + + <li>We look up the JMS connection factory object from JNDI</li> + <pre class="prettyprint"> + ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("/jms/RemoteConnectionFactory"); + </pre> + + <li>We create a JMS connection</li> + <pre class="prettyprint"> + connection = cf.createConnection("guest", "password"); + </pre> + + <li>We create a JMS session. The session is created as non transacted and will auto acknowledge messages.</li> + <pre class="prettyprint"> + <code>Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);</code> + </pre> + + <li>We create a JMS message producer on the session. This will be used to send the messages.</li> + <pre class="prettyprint"> + <code>MessageProducer messageProducer = session.createProducer(queue);</code> + </pre> + + <li>We create a JMS text messages that we are going to send.</li> + <pre class="prettyprint"> + <code> TextMessage message = session.createTextMessage("This is a text message");</code> + </pre> + + <li>We send messages to the queue</li> + <pre class="prettyprint"> + <code>messageProducer.send(message);</code> + </pre> + + <li>The MDB receives the message<br /> + We know the message is a TextMessage so we cast to it. + </li> + <pre class="prettyprint"> + <code>TextMessage tm = (TextMessage)message;</code> + </pre> + + <li>We take alook at the transaction and see that it is running. + </li> + <pre class="prettyprint"> + <code>Transaction tx = tm.getTransaction(); + + if(tx != null) + { + System.out.println("we're in the middle of a transaction: " + tx); + }</code> + </pre> + + <li>The MDB gets the text and prints it + </li> + <pre class="prettyprint"> + <code>String text = tm.getText(); + System.out.println("message " + text + " received"); + </code> + </pre> + + <li>And finally, <b>always</b> remember to close your JMS connections and resources after use, in a <code>finally</code> block. Closing a JMS connection will automatically close all of its sessions, consumers, producer and browser objects</li> + + <pre class="prettyprint"> + <code>finally + { + if (initialContext != null) + { + initialContext.close(); + } + if (connection != null) + { + connection.close(); + } + }</code> + </pre> + + + + </ol> + </body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/application-roles.properties ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/application-roles.properties b/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/application-roles.properties new file mode 100644 index 0000000..0ade8fb --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/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/mdb-cmt-tx-required/server/standalone/configuration/application-users.properties ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/application-users.properties b/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/application-users.properties new file mode 100644 index 0000000..c52e923 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/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/mdb-cmt-tx-required/server/standalone/configuration/logging.properties ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/logging.properties b/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/logging.properties new file mode 100644 index 0000000..8a011f0 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/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/mdb-cmt-tx-required/server/standalone/configuration/mgmt-users.properties ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/mgmt-users.properties b/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/mgmt-users.properties new file mode 100644 index 0000000..349b004 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/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=9d71b431e53d99563aa0dfca628c970b +andy=dfb16391f1be1c454b5bce9822bd9df3 http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/standalone-example.xml ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/standalone-example.xml b/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/standalone-example.xml new file mode 100644 index 0000000..c3203b9 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/server/standalone/configuration/standalone-example.xml @@ -0,0 +1,489 @@ +<?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"/> + </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> + </jms-connection-factories> + <jms-destinations> + <jms-queue name="testQueue"> + <entry name="queue/test"/> + <entry name="java:jboss/exported/jms/queues/testQueue"/> + </jms-queue> + </jms-destinations> + </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="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/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxRequiredClientExample.java ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxRequiredClientExample.java b/examples/javaee/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxRequiredClientExample.java new file mode 100644 index 0000000..1e9dc44 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/MDB_CMT_TxRequiredClientExample.java @@ -0,0 +1,88 @@ +/* + * 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 javax.jms.Connection; +import javax.jms.ConnectionFactory; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; +import javax.naming.Context; +import javax.naming.InitialContext; +import java.util.Properties; + +/** + * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> + */ +public class MDB_CMT_TxRequiredClientExample +{ + public static void main(final String[] args) throws Exception + { + Thread.sleep(5000); + Connection connection = null; + InitialContext initialContext = null; + try + { + // Step 1. Create an initial context to perform the JNDI lookup. + final Properties env = new Properties(); + + env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); + + env.put(Context.PROVIDER_URL, "http-remoting://localhost:8080"); + + initialContext = new InitialContext(env); + + // Step 2. Perfom a lookup on the queue + Queue queue = (Queue)initialContext.lookup("jms/queues/testQueue"); + + // Step 3. Perform a lookup on the Connection Factory + ConnectionFactory cf = (ConnectionFactory)initialContext.lookup("jms/RemoteConnectionFactory"); + + // Step 4.Create a JMS Connection + connection = cf.createConnection("guest", "password"); + + // Step 5. Create a JMS Session + Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + + // Step 6. Create a JMS Message Producer + MessageProducer producer = session.createProducer(queue); + TextMessage message = null; + + for (int i = 0; i < 100; i++) + { + // Step 7. Create a Text Message + message = session.createTextMessage("This is a text message"); + + System.out.println("Sent message: " + message.getText()); + // Step 8. Send the Message + producer.send(message); + } + + + // Step 9,10 and 11 in MDBExample + } + finally + { + // Step 12. 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/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxRequiredExample.java ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxRequiredExample.java b/examples/javaee/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxRequiredExample.java new file mode 100644 index 0000000..0520bd5 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/src/main/java/org/hornetq/javaee/example/server/MDB_CMT_TxRequiredExample.java @@ -0,0 +1,56 @@ +/* + * 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.JMSException; +import javax.jms.Message; +import javax.jms.MessageListener; +import javax.jms.TextMessage; +import java.util.Calendar; + +/** + * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> + */ +@MessageDriven(name = "MDB_CMT_TxRequiredExample", + activationConfig = + { + @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), + @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/testQueue"), + @ActivationConfigProperty(propertyName = "consumerMaxRate", propertyValue = "1") + }) +public class MDB_CMT_TxRequiredExample implements MessageListener +{ + + public void onMessage(final Message message) + { + try + { + // Step 9. We know the client is sending a text message so we cast + TextMessage textMessage = (TextMessage) message; + + // Step 10. get the text from the message. + String text = textMessage.getText(); + + Calendar c = Calendar.getInstance(); + + System.out.println("message " + text + " received at " + c.getTime()); + + } + catch (JMSException e) + { + e.printStackTrace(); + } + } +} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-required/src/test/java/org/hornetq/javaee/examples/MDBCMTSetTXRequiredRunnerTest.java ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/src/test/java/org/hornetq/javaee/examples/MDBCMTSetTXRequiredRunnerTest.java b/examples/javaee/mdb-cmt-tx-required/src/test/java/org/hornetq/javaee/examples/MDBCMTSetTXRequiredRunnerTest.java new file mode 100644 index 0000000..e269618 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/src/test/java/org/hornetq/javaee/examples/MDBCMTSetTXRequiredRunnerTest.java @@ -0,0 +1,54 @@ +/* + * 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.examples; + +import org.hornetq.javaee.example.MDB_CMT_TxRequiredClientExample; +import org.hornetq.javaee.example.server.MDB_CMT_TxRequiredExample; +import org.jboss.arquillian.container.test.api.Deployment; +import org.jboss.arquillian.container.test.api.RunAsClient; +import org.jboss.arquillian.junit.Arquillian; +import org.jboss.shrinkwrap.api.Archive; +import org.jboss.shrinkwrap.api.ShrinkWrap; +import org.jboss.shrinkwrap.api.spec.JavaArchive; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * @author <a href="mailto:andy.tay...@jboss.org">Andy Taylor</a> + * 5/21/12 + */ +@RunAsClient +@RunWith(Arquillian.class) +public class MDBCMTSetTXRequiredRunnerTest +{ + @Deployment + public static Archive getDeployment() + { + + final JavaArchive ejbJar = ShrinkWrap.create(JavaArchive.class, "mdb.jar"); + ejbJar.addClass(MDB_CMT_TxRequiredExample.class); + System.out.println(ejbJar.toString(true)); + return ejbJar; + } + + @Test + public void runExample() throws Exception + { + MDB_CMT_TxRequiredClientExample.main(null); + //give the example time to run + Thread.sleep(10000); + } + + +} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/8ecd255f/examples/javaee/mdb-cmt-tx-required/src/test/resources/arquillian.xml ---------------------------------------------------------------------- diff --git a/examples/javaee/mdb-cmt-tx-required/src/test/resources/arquillian.xml b/examples/javaee/mdb-cmt-tx-required/src/test/resources/arquillian.xml new file mode 100644 index 0000000..9090137 --- /dev/null +++ b/examples/javaee/mdb-cmt-tx-required/src/test/resources/arquillian.xml @@ -0,0 +1,34 @@ +<?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" /> + + <container qualifier="jboss" default="true"> + <configuration> + <property name="jbossHome">${basedir}/target/jbossas-node0</property> + <property name="serverConfig">standalone-example.xml</property> + <property name="allowConnectingToRunningServer">true</property> + <property name="managementAddress">${node0:127.0.0.1}</property> + </configuration> + </container> + + <!-- logThreshold proposed --> + <!-- +<container qualifier="jbossas-managed"> +<configuration> +<property name="logThreshold">ERROR</property> +</configuration> +</container> +--> + +</arquillian> \ No newline at end of file