[jboss-svn-commits] JBL Code SVN: r26408 - in labs/jbosstm/workspace/resttx: webservice and 16 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 6 17:00:24 EDT 2009


Author: mmusgrov
Date: 2009-05-06 17:00:23 -0400 (Wed, 06 May 2009)
New Revision: 26408

Added:
   labs/jbosstm/workspace/resttx/webservice/
   labs/jbosstm/workspace/resttx/webservice/ObjectStore/
   labs/jbosstm/workspace/resttx/webservice/ObjectStore/HashedActionStore/
   labs/jbosstm/workspace/resttx/webservice/ObjectStore/HashedActionStore/defaultStore/
   labs/jbosstm/workspace/resttx/webservice/ObjectStore/HashedActionStore/defaultStore/Recovery/
   labs/jbosstm/workspace/resttx/webservice/ObjectStore/HashedActionStore/defaultStore/Recovery/TransactionStatusManager/
   labs/jbosstm/workspace/resttx/webservice/build.xml
   labs/jbosstm/workspace/resttx/webservice/go
   labs/jbosstm/workspace/resttx/webservice/pom.xml
   labs/jbosstm/workspace/resttx/webservice/src/
   labs/jbosstm/workspace/resttx/webservice/src/main/
   labs/jbosstm/workspace/resttx/webservice/src/main/webapp/
   labs/jbosstm/workspace/resttx/webservice/src/main/webapp/WEB-INF/
   labs/jbosstm/workspace/resttx/webservice/src/main/webapp/WEB-INF/web.xml
   labs/jbosstm/workspace/resttx/webservice/src/test/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/org/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/rts/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/rts/test/
   labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/rts/test/AppTest.java
   labs/jbosstm/workspace/resttx/webservice/src/test/resources/
   labs/jbosstm/workspace/resttx/webservice/src/test/resources/log4j.xml
Log:
Add a demo


Added: labs/jbosstm/workspace/resttx/webservice/build.xml
===================================================================
--- labs/jbosstm/workspace/resttx/webservice/build.xml	                        (rev 0)
+++ labs/jbosstm/workspace/resttx/webservice/build.xml	2009-05-06 21:00:23 UTC (rev 26408)
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+
+<project name="REST" default="run" basedir=".">
+
+  <property name="build.classes.dir" value="target/classes/"/>
+  <property name="xsrc.dir" value="src"/>
+  <property name="src.dir" value="src/main/java/org/jboss/jbossts/rts/client/"/>
+
+  <property name="resteasy.dir" value="${basedir}/target/rest-tx/WEB-INF/lib"/>
+
+  <path id="classpath">
+    <pathelement location="${build.classes.dir}"/>
+    <pathelement location="target/rest-tx/WEB-INF/lib/junit-4.5.jar"/>
+    <pathelement location="${basedir}/target/rest-tx/WEB-INF/lib/log4j-1.2.12.jar"/>
+    <pathelement location="${basedir}/target/rest-tx/WEB-INF/lib/commons-logging-1.1.jar"/>
+    <pathelement location="${basedir}/target/test-classes"/>
+    <fileset dir="${resteasy.dir}" >
+        <include name="jaxrs-api-1.0-RC1.jar"/>
+        <include name="resteasy-jaxrs-1.0-RC1.jar"/>
+        <include name="commons-httpclient-3.1.jar"/>
+        <include name="commons-logging-1.0.4.jar"/>
+        <include name="commons-codec-1.2.jar"/>
+    </fileset>
+   </path>
+   
+    <target name="compile">
+        <javac srcdir="${src.dir}"
+               destdir="${build.classes.dir}"
+               debug="on"
+               deprecation="on"
+               optimize="off"
+               includes="**">
+            <classpath refid="classpath"/>
+        </javac>
+    </target>
+    <target name="classes" depends="compile" />
+
+  <target name="run" depends="compile">
+      <java classname="org.jboss.jbossts.rts.client.TxTest" fork="yes" dir=".">
+          <classpath refid="classpath"/>
+          <sysproperty key="PORT" value="9099"/>
+          <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006" />
+          <jvmarg value="-Xms128m" />
+          <jvmarg value="-Xmx512M" />
+      </java>
+  </target>
+</project>

Added: labs/jbosstm/workspace/resttx/webservice/go
===================================================================
--- labs/jbosstm/workspace/resttx/webservice/go	                        (rev 0)
+++ labs/jbosstm/workspace/resttx/webservice/go	2009-05-06 21:00:23 UTC (rev 26408)
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+mvn jetty6:run-exploded -Dmaven.test.skip
+
+# run an external recovery manager
+#export CLASSPATH=/home/mmusgrov/.m2/repository/jboss/jbossts/jbossjta/4.4.0.GA/jbossjta-4.4.0.GA.jar:/home/mmusgrov/.m2/repository/jboss/jbossts/jbossts-common/4.4.0.GA/jbossts-common-4.4.0.GA.jar:/home/mmusgrov/source/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/install/lib/ext/log4j-1.2.8.jar:/home/mmusgrov/source/jbosstm/branches/JBOSSTS_4_2_3_GA_SP/install/lib/ext/commons-logging.jar:src/test/resources/:target/classes
+
+#java com.arjuna.ats.arjuna.recovery.RecoveryManager -test


Property changes on: labs/jbosstm/workspace/resttx/webservice/go
___________________________________________________________________
Name: svn:executable
   + *

Added: labs/jbosstm/workspace/resttx/webservice/pom.xml
===================================================================
--- labs/jbosstm/workspace/resttx/webservice/pom.xml	                        (rev 0)
+++ labs/jbosstm/workspace/resttx/webservice/pom.xml	2009-05-06 21:00:23 UTC (rev 26408)
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    JBoss, Home of Professional Open Source Copyright 2009, Red Hat
+    Middleware LLC, and others contributors as indicated by the @authors
+    tag. All rights reserved. See the copyright.txt in the distribution
+    for a full listing of individual contributors. This copyrighted
+    material is made available to anyone wishing to use, modify, copy, or
+    redistribute it subject to the terms and conditions of the GNU Lesser
+    General Public License, v. 2.1. This program is distributed in the
+    hope that it will be useful, but WITHOUT A 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, v.2.1 along with this distribution; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+    02110-1301, USA.
+-->
+
+<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>
+   <groupId>org.jboss.jbossts.rts</groupId>
+   <artifactId>rest-tx-web</artifactId>
+   <version>1.0-M1-SNAPSHOT</version>
+   <packaging>war</packaging>
+   <name/>
+   <description/>
+
+   <repositories>
+      <repository>
+         <id>java.net</id>
+         <url>http://download.java.net/maven/1</url>
+         <layout>legacy</layout>
+      </repository>
+      <repository>
+         <id>maven repo</id>
+         <name>maven repo</name>
+         <url>http://repo1.maven.org/maven2/</url>
+      </repository>
+      <repository>
+         <id>jboss</id>
+         <name>jboss repo</name>
+         <url>http://repository.jboss.org/maven2</url>
+      </repository>
+      <repository>
+         <id>scannotation</id>
+         <url>http://scannotation.sf.net/maven2</url>
+      </repository>
+   </repositories>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.jbossts.rts</groupId>
+      <artifactId>rest-tx-api</artifactId>
+      <version>1.0-M1-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>jboss.jbossts</groupId>
+      <artifactId>jbossjts</artifactId>
+      <version>4.4.0.GA</version>
+    </dependency>
+    <dependency>
+      <groupId>jboss.jbossts</groupId>
+      <artifactId>jbossts-common</artifactId>
+      <version>4.4.0.GA</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>1.1</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-httpclient</groupId>
+      <artifactId>commons-httpclient</artifactId>
+      <version>3.1</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.5</version>
+    </dependency>
+
+      <dependency>
+         <groupId>org.jboss.resteasy</groupId>
+         <artifactId>resteasy-jaxrs</artifactId>
+         <version>1.0-RC1</version>
+
+         <!-- filter out unwanted jars -->
+         <exclusions>
+            <exclusion>
+               <groupId>commons-httpclient</groupId>
+               <artifactId>commons-httpclient</artifactId>
+            </exclusion>
+<!--
+            <exclusion>
+               <groupId>tjws</groupId>
+               <artifactId>webserver</artifactId>
+            </exclusion>
+-->
+            <exclusion>
+               <groupId>javax.servlet</groupId>
+               <artifactId>servlet-api</artifactId>
+            </exclusion>
+         </exclusions>
+      </dependency>
+      <dependency>
+          <groupId>org.jboss.resteasy</groupId>
+          <artifactId>resteasy-jaxb-provider</artifactId>
+          <version>1.0-RC1</version>
+      </dependency>
+   </dependencies>
+
+   <build>
+      <plugins>
+         <plugin>
+            <groupId>org.mortbay.jetty</groupId>
+            <artifactId>maven-jetty6-plugin</artifactId>
+            <version>6.0.0beta17</version>
+            <configuration>
+               <!-- By default the artifactId is taken, override it with something simple -->
+               <contextPath>/</contextPath>
+               <scanIntervalSeconds>2</scanIntervalSeconds>
+               <connectors>
+                  <connector
+                          implementation="org.mortbay.jetty.nio.SelectChannelConnector">
+                     <port>9099</port>
+                     <host>localhost</host>
+                     <maxIdleTime>60000</maxIdleTime>
+                  </connector>
+               </connectors>
+               <systemProperties>
+                  <systemProperty>
+                     <name>PORT</name>
+                     <value>9099</value>
+                  </systemProperty>
+                  <systemProperty>
+                     <name>log4j.configuration</name>
+                     <value>file:./src/test/resources/log4j.xml</value>
+                  </systemProperty>
+                  <systemProperty>
+                     <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
+                     <value>file:./src/test/resources/jbossjta-properties.xml</value>
+                  </systemProperty>
+               </systemProperties>
+            </configuration>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <configuration>
+               <source>1.5</source>
+               <target>1.5</target>
+            </configuration>
+         </plugin>
+      </plugins>
+   </build>
+</project>

Added: labs/jbosstm/workspace/resttx/webservice/src/main/webapp/WEB-INF/web.xml
===================================================================
--- labs/jbosstm/workspace/resttx/webservice/src/main/webapp/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbosstm/workspace/resttx/webservice/src/main/webapp/WEB-INF/web.xml	2009-05-06 21:00:23 UTC (rev 26408)
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+        "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+   <display-name>Archetype Created Web Application</display-name>
+
+   <context-param>
+      <param-name>javax.ws.rs.core.Application</param-name>
+      <param-value>org.jboss.jbossts.rts.service.TMApplication</param-value>
+   </context-param>
+
+   <context-param>
+      <param-name>resteasy.servlet.mapping.prefix</param-name>
+      <param-value>/tx</param-value>
+   </context-param>
+
+   <listener>
+      <listener-class>
+         org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
+      </listener-class>
+   </listener>
+
+   <servlet>
+      <servlet-name>Tx</servlet-name>
+      <servlet-class>
+         org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
+      </servlet-class>
+   </servlet>
+
+   <servlet-mapping>
+      <servlet-name>Tx</servlet-name>
+      <url-pattern>/tx/*</url-pattern>
+   </servlet-mapping>
+
+</web-app>
\ No newline at end of file

Added: labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/rts/test/AppTest.java
===================================================================
--- labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/rts/test/AppTest.java	                        (rev 0)
+++ labs/jbosstm/workspace/resttx/webservice/src/test/java/org/jboss/jbossts/rts/test/AppTest.java	2009-05-06 21:00:23 UTC (rev 26408)
@@ -0,0 +1,236 @@
+package org.jboss.jbossts.rts.test;
+
+import junit.framework.TestCase;
+
+import org.jboss.resteasy.plugins.server.tjws.TJWSEmbeddedJaxrsServer;
+import org.jboss.resteasy.util.HttpResponseCodes;
+import org.jboss.jbossts.rts.util.TxUtil;
+import org.jboss.jbossts.rts.service.TMApplication;
+import org.jboss.jbossts.rts.provider.HttpResponseException;
+import org.apache.log4j.Logger;
+
+import java.io.IOException;
+
+/**
+ * Run through some basic tests to validate that the protocol matches the specification
+ */
+public class AppTest extends TestCase
+{
+    protected final static Logger log = Logger.getLogger(AppTest.class);
+    private static int PORT = TxUtil.getIntProperty("PORT", "9096");
+    private static TJWSEmbeddedJaxrsServer tjws;
+
+    private String[] URLS;
+
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+
+        TxUtil.setEndpoint("localhost", PORT, "");
+
+        log.trace("setUp: " + TxUtil.getBaseURI());
+        URLS = new String[] {
+                TxUtil.txURI + ".html", // list txns
+                TxUtil.txURI + "/begin?clientId=12345",   // start a tx on behalf of client id 12345
+                TxUtil.txURI + "/tx/commit",   // commit tx 123
+                TxUtil.txURI + "/0/commit", // commit a non existant tx
+                TxUtil.txURI + "/commit", // commit a non existant tx
+                TxUtil.txURI + "/tx",   // enlist a participant in tx 123
+        };
+
+        tjws = new TJWSEmbeddedJaxrsServer();
+        tjws.setPort(PORT);
+        tjws.setBindAddress("127.0.0.1");
+        TMApplication.initApplication(tjws);
+        tjws.start();
+        System.out.println("web server is running on port " + PORT);
+    }
+
+    protected void tearDown() throws Exception
+    {
+        log.trace("stoppig server");
+        super.tearDown();
+
+        tjws.stop();
+    }
+
+    private String startTx(long timeout, boolean fail) throws IOException
+    {
+        String tx = null;
+
+        try {
+            String query = "clientId=12345" + (timeout == 0 ? "" : "&timeout=" + timeout);
+
+            tx = TxUtil.doPost(new int[] {HttpResponseCodes.SC_CREATED}, TxUtil.txURI + "/begin?" + query);
+            log.trace("Started tx: " + tx);
+            if (fail)
+                assertTrue("start tx should have failed", false);
+        } catch (HttpResponseException e) {
+            if (!fail)
+                assertTrue(e.getMessage(), false);
+        }
+
+        return tx;
+    }
+
+    private String modifyResource(String tx, String pid, String name, String value)
+    {
+        try {
+            return TxUtil.doPost(new int[] {HttpResponseCodes.SC_OK}, TxUtil.getBaseURI() + "participant/work/" + pid,
+                    "name=" + name, "value=" + value, "context=" + tx);
+        } catch (HttpResponseException e) {
+            assertTrue(e.getMessage(), false);
+            return null;
+        }
+    }
+
+    private String getResource(String tx, String pid, String name)
+    {
+        try {
+            return TxUtil.doGet(new int[] {HttpResponseCodes.SC_OK}, TxUtil.getBaseURI() + "participant/work/" + pid,
+                    "name=" + name, "context=" + tx);
+        } catch (HttpResponseException e) {
+            assertTrue(e.getMessage(), false);
+            return null;
+        }
+    }
+
+    private void terminateTx(String tx, String how, boolean fail, String ... args)
+    {
+        try {
+            TxUtil.doPut(new int[] {HttpResponseCodes.SC_OK}, tx + "/" + how, "", args);
+            if (fail)
+                assertTrue("commit should not have succeeded", false);
+        } catch (HttpResponseException e) {
+            if (!fail)
+                assertTrue(e.getMessage(), false);
+	}
+    }
+
+    private void commitTx(String tx, boolean fail, String ... args)
+    {
+        terminateTx(tx, "commit", fail, args);
+    }
+
+    private void rollbackTx(String tx, boolean fail, String ... args)
+    {
+        terminateTx(tx, "rollback", fail, args);
+    }
+
+    // 1PC commit
+    public void test1() throws IOException
+    {
+        String tx = startTx(0L, false);
+        modifyResource(tx, "pid1", "p1", "v1");
+        commitTx(tx, false);
+    }
+    // 2PC commit
+    public void test2() throws IOException
+    {
+        String tx = startTx(0L, false);
+        modifyResource(tx, "pid1", "p1", "v1");
+        modifyResource(tx, "pid2", "p2", "v2");
+        commitTx(tx, false);
+        commitTx(tx, true);	// should not be able to commit a completed transaction
+    }
+    // commit an invalid transaction
+    public void test3() throws IOException
+    {
+        String tx = "http://localhost:9096/transaction-coordinator/dead_7f000001_b9cc_4981ded5_5";
+        commitTx(tx, true);
+    }
+
+    /**
+     * Modify a resource within a transaction and rollback.
+     * Ensure that the resource has not changed.
+     */
+    public void test4() throws IOException
+    {
+        String v1 = modifyResource(null, "pid1", "p1", "v1");
+        String v2 = modifyResource(null, "pid2", "p1", "v1");
+
+        String tx = startTx(0L, false);
+
+        String v3 = modifyResource(tx, "pid1", "p1", "txv1");
+        String v4 = modifyResource(tx, "pid2", "p1", "txv1");
+
+        rollbackTx(tx, false);
+        rollbackTx(tx, true);	// should not be able to rollback a completed transaction
+
+        // make sure the changes were rolled back
+        String v5 = getResource(null, "pid1", "p1");
+        String v6 = getResource(null, "pid2", "p1");
+
+        assertTrue("participant 1's work wasn't rolled back correctly", v1.equals(v5));
+        assertTrue("participant 2's work wasn't rolled back correctly", v2.equals(v6));
+    }
+
+    /**
+     * Test the Recovery URL
+     */
+    public void test5() throws IOException
+    {
+        String tx = startTx(0L, false);	// start a transaction
+
+        String pUrl = TxUtil.getBaseURI() + "particpant/123";	// participant url
+	// Registering a participant with the transaction returns a recovery url
+        String recCoordId = TxUtil.doPut(new int[] {HttpResponseCodes.SC_OK}, tx, pUrl, "URL=" + pUrl);
+
+	// doing a GET on recCoordId should return the original url
+        String origUrl = TxUtil.doGet(new int[] {HttpResponseCodes.SC_OK}, recCoordId);
+	assertEquals("GET on recovery url does not return orignal participant url", pUrl, origUrl);
+
+	// doing a PUT on recCoordId should replace the participant URL (used by
+	// participants to tell the recovery coordinator that they have moved
+	pUrl = TxUtil.getBaseURI() + "particpant/123"; // the new participant URL
+        // replace the url with a new one
+        TxUtil.doPut(new int[] {HttpResponseCodes.SC_OK}, recCoordId, pUrl, "URL=" + pUrl);
+
+        // check that the url was replaced by doing another GET on the recovery URL
+        origUrl = TxUtil.doGet(new int[] {HttpResponseCodes.SC_OK}, recCoordId);
+        assertEquals("GET on recovery url does not return the replaced participant url", pUrl, origUrl);
+
+        // and finally check that POST and DELETE on the recovery URL fail
+        TxUtil.doPost(new int[] {HttpResponseCodes.SC_UNAUTHORIZED}, recCoordId);
+        TxUtil.doDelete(new int[] {HttpResponseCodes.SC_UNAUTHORIZED}, recCoordId);
+
+        rollbackTx(tx, false);
+    }
+
+    /*
+     * Test recovery
+     */
+    public void test6() throws IOException
+    {
+        boolean crashVM = false;
+        String[] txns = {startTx(0L, false), startTx(0L, false)};
+
+        for (int i = 0; i < txns.length; i++) {
+            modifyResource(txns[i], "pid1", "p1", "v1" + i);
+            modifyResource(txns[i], "pid2", "p2", "v2" + i);
+        }
+
+        // list transactions
+        String txlist = TxUtil.doGet(new int[] {HttpResponseCodes.SC_OK}, TxUtil.txURI);
+        // there should be 2
+        assertEquals("List transactions does not match the number of running transactions",
+            txlist.split("ActionStatus").length - 1, 2);
+
+        for (int i = 0; i < txns.length; i++) {
+            if (i == txns.length - 1 && crashVM)
+            	commitTx(txns[i], false, "fault=commit_halt");
+            else
+            	commitTx(txns[i], false);
+        }
+    }
+}

Added: labs/jbosstm/workspace/resttx/webservice/src/test/resources/log4j.xml
===================================================================
--- labs/jbosstm/workspace/resttx/webservice/src/test/resources/log4j.xml	                        (rev 0)
+++ labs/jbosstm/workspace/resttx/webservice/src/test/resources/log4j.xml	2009-05-06 21:00:23 UTC (rev 26408)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+
+    <appender name="console" class="org.apache.log4j.ConsoleAppender">
+        <param name="Target" value="System.out"/>
+        <param name="Threshold" value="INFO"/>
+
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d{ABSOLUTE} {%8.8t} (%x) [%-5p,%-10c{1}] %m%n"/>
+        </layout>
+    </appender>
+
+    <appender name="file" class="org.apache.log4j.FileAppender">
+        <param name="File" value="logs/test.log"/>
+        <param name="Append" value="false"/>
+        <param name="Threshold" value="INFO"/>
+
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
+        </layout>
+    </appender>
+
+    <category name="org.jboss.resteasy">
+        <level value="WARN"/>
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </category>
+
+    <category name="org.jboss.jbossts.rts">
+        <level value="INFO"/>
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </category>
+
+    <category name="com.arjuna">
+        <level value="WARN"/>
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </category>
+
+    <category name="org.apache.commons.httpclient">
+        <level value="WARN"/>
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </category>
+
+</log4j:configuration>




More information about the jboss-svn-commits mailing list