[jboss-svn-commits] JBL Code SVN: r27402 - in labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src: main/java/uk/ac/ncl/sdia/a8905943/aspects and 11 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 1 14:00:14 EDT 2009
Author: whitingjr
Date: 2009-07-01 14:00:14 -0400 (Wed, 01 Jul 2009)
New Revision: 27402
Added:
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningFieldAspect.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/FieldUtils.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/HandleUtils.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/exception/
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/exception/FieldNotFoundException.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionHelper.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/STMTransaction.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningField.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/log4j.xml
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/handle/
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/handle/JUnitTestFieldUtils.java
Removed:
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/resources/log4j.xml
Modified:
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningAspectImpl.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/factory/TransactionFactory.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionImpl.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/model/Car.java
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml
labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/TestVersioningAspectImpl.java
Log:
updated
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningAspectImpl.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningAspectImpl.java 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningAspectImpl.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -10,6 +10,7 @@
import org.jboss.aop.joinpoint.FieldWriteInvocation;
import org.jboss.aop.joinpoint.MethodInvocation;
+import uk.ac.ncl.sdia.a8905943.factory.TransactionFactory;
import uk.ac.ncl.sdia.a8905943.spec.VersioningAspect;
/**
@@ -18,6 +19,7 @@
*
* @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
* @version $Revision: 1.1 $
+ * @deprecated do not use this, instead use the field annotation
*/
public class VersioningAspectImpl implements VersioningAspect
{
@@ -33,31 +35,47 @@
logger.info("Versioning aspect called for field write invocation");
}
// TODO: jrw do something
-
return null;
}
public Object read(MethodInvocation methodInvocation)
+ throws Throwable
{
-
- // TODO:jrw complete implementation of this method
+ // TODO:jrw complete implementation of this method
if (logger.isInfoEnabled())
{
logger.info("Versioning aspect called for field read invocation");
}
// TODO: jrw do something
- return null;
+ // check whether a transaction is running
+ final Object readable = TransactionFactory.getCurrentTransaction().readField();
+
+ // set the field with the value
+ if (null == readable)
+ {
+
+ }
+ else
+ {
+
+ }
+
+ // delegate following operations
+ // notify the scheduler a read operation is being attempted.
+ // depending on the transaction status and level (top/...) get either the shared visible value or, the isolated value associated with this transaction.
+ // if no transaction exists, do I start one or expect there one to exist already ?
+ return methodInvocation.invokeNext();
}
public Object write(MethodInvocation methodInvocation)
+ throws Throwable
{
-
// TODO:jrw complete implementation of this method
if (logger.isInfoEnabled())
{
logger.info("Versioning aspect called for field write invocation");
}
// TODO: jrw do something
- return null;
+ return methodInvocation.invokeNext();
}
}
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningFieldAspect.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningFieldAspect.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningFieldAspect.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.aspects;
+
+import java.lang.reflect.Field;
+
+import org.apache.log4j.Logger;
+import org.jboss.aop.joinpoint.FieldReadInvocation;
+
+import uk.ac.ncl.sdia.a8905943.factory.TransactionFactory;
+import uk.ac.ncl.sdia.a8905943.handle.FieldUtils;
+import uk.ac.ncl.sdia.a8905943.handle.HandleUtils;
+
+public final class VersioningFieldAspect
+{
+ private static final Logger logger = Logger.getLogger(VersioningFieldAspect.class);
+
+ public Object readField( FieldReadInvocation readInvocation)
+ throws Throwable
+ {
+ Object returnValue = null;
+ // TODO:jrw complete implementation of this method
+ if (logger.isInfoEnabled())
+ {
+ logger.info("Versioning aspect called for field read invocation");
+ }
+ // TODO: jrw do something
+ FieldUtils fieldUtils = new FieldUtils();
+ HandleUtils handleUtils = new HandleUtils();
+ Field idField = fieldUtils.findIdField(readInvocation.getTargetObject().getClass());
+ Long id = fieldUtils.getValue(idField, readInvocation.getTargetObject() );
+ long handle = handleUtils.getHandle(readInvocation.getTargetObject().getClass(), id, idField.getName());
+ // check whether a transaction is running, if not start one
+
+ final Object readable = TransactionFactory.getCurrentTransaction().readField();
+
+ if (null == readable)
+ {
+ returnValue = readInvocation.invokeNext();
+ }
+ else
+ {
+ returnValue = readable;
+ }
+
+ // delegate following operations
+ // notify the scheduler a read operation is being attempted.
+ // depending on the transaction status and level (top/...) get either the shared visible value or, the isolated value associated with this transaction.
+ // if no transaction exists, do I start one or expect there one to exist already ?
+
+ return returnValue;
+ }
+
+}
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/factory/TransactionFactory.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/factory/TransactionFactory.java 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/factory/TransactionFactory.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -1,6 +1,6 @@
package uk.ac.ncl.sdia.a8905943.factory;
-import javax.transaction.Transaction;
+import uk.ac.ncl.sdia.a8905943.spec.STMTransaction;
/**
* The purpose of this object is to get a transaction object.
@@ -10,7 +10,7 @@
public class TransactionFactory
{
- public static Transaction getCurrentTransaction()
+ public static STMTransaction getCurrentTransaction()
{
//TODO: complete implementation
return null;
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/FieldUtils.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/FieldUtils.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/FieldUtils.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.handle;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+
+import javax.persistence.Id;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+
+
+import uk.ac.ncl.sdia.a8905943.handle.exception.FieldNotFoundException;
+
+public class FieldUtils
+{
+ private static Logger logger = Logger.getLogger(FieldUtils.class );
+ /**
+ * This method will try to find the id column. Assumes there is only one.
+ */
+ public Field findIdField(Class entityClass)
+ throws FieldNotFoundException
+ {
+ Field returnValue = null;
+
+ //assuming the entity has an id column
+ for (Field field : entityClass.getDeclaredFields())
+ {
+ for (Annotation annotation : field.getAnnotations())
+ {
+ if (annotation instanceof Id)
+ {
+ // success, found our id field
+ returnValue = field;
+ }
+ }
+ }
+ if (null == returnValue)
+ {
+ throw new FieldNotFoundException("Expected entity class ["+entityClass.getName()+"] does not contain a field annotated with Id.");
+ }
+ return returnValue;
+ }
+
+ public Long getValue(Field idField, Object entity)
+ throws FieldNotFoundException
+ {
+ // TODO this needs changing to be more elegant and robust
+ Long returnValue = null;
+ try
+ {
+ Object object = PropertyUtils.getSimpleProperty(entity, idField.getName());
+ returnValue = (Long)object; // assumption here the id field is Long type
+ }
+ catch (Exception e)
+ {
+ logger.error(e.getMessage(), e);
+ }
+ return returnValue;
+ }
+}
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/HandleUtils.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/HandleUtils.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/HandleUtils.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.handle;
+
+import java.lang.reflect.Field;
+
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+public class HandleUtils
+{
+
+ public long getHandle(Class entity, String id, Field field )
+ {
+ return new HashCodeBuilder(17, 37).append(entity.getName()).append(id).append(field.getName()).toHashCode();
+ }
+ public long getHandle(Class entity, Long id, String fieldName )
+ {
+ return new HashCodeBuilder(17, 37).append(entity.getName()).append(id).append(fieldName).toHashCode();
+ }
+ public long getHandle(Class entity, String entityId, int fieldIndex)
+ {
+ return new HashCodeBuilder(17, 37).append(entity.getName()).append(entityId).append(fieldIndex).toHashCode();
+ }
+ public long getHandle(Class entity, int fieldIndex)
+ {
+ return new HashCodeBuilder(17, 37).append(entity.getName()).append(fieldIndex).toHashCode();
+ }
+}
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/exception/FieldNotFoundException.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/exception/FieldNotFoundException.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/handle/exception/FieldNotFoundException.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,21 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.handle.exception;
+
+public class FieldNotFoundException extends Exception
+{
+
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 943260319165545739L;
+ public FieldNotFoundException()
+ {
+ }
+ public FieldNotFoundException(String message)
+ {
+ super(message);
+ }
+}
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionHelper.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionHelper.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionHelper.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,12 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.impl;
+
+public class TransactionHelper
+{
+
+}
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionImpl.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionImpl.java 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/impl/TransactionImpl.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -15,16 +15,18 @@
import javax.transaction.xa.XAResource;
import uk.ac.ncl.sdia.a8905943.model.TransactionStatus;
+import uk.ac.ncl.sdia.a8905943.spec.STMTransaction;
/**
* The purpose of this object is to perform the transaction functionality.
*
* @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
* @version $Revision: 1.1 $
*/
-public class TransactionImpl implements Transaction {
+public class TransactionImpl implements STMTransaction{
private volatile TransactionStatus status;
private final AtomicReferenceFieldUpdater<Transaction, TransactionStatus> statusModifier = AtomicReferenceFieldUpdater.newUpdater(Transaction.class, TransactionStatus.class, "statusModifier");
+ private static final ThreadLocal<TransactionImpl> currentLocalTransaction = new ThreadLocal<TransactionImpl>();
@Override
public void commit() {
@@ -74,5 +76,19 @@
}
+ @Override
+ public STMTransaction readField()
+ {
+ // FIXME readField
+ return null;
+ }
+
+ @Override
+ public STMTransaction writeField()
+ {
+ // FIXME writeField
+ return null;
+ }
+
}
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/model/Car.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/model/Car.java 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/model/Car.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -1,8 +1,11 @@
package uk.ac.ncl.sdia.a8905943.model;
+import javax.persistence.Id;
+
public class Car {
- // fields should be private
+ // fields should be private
+ @Id
private Long id;
private String make;
public Long getId()
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/STMTransaction.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/STMTransaction.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/STMTransaction.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,23 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.spec;
+
+import javax.transaction.Transaction;
+
+/**
+ * Purpose of this object is for behaviour of a transaction that
+ * uses memory to control changes.
+ *
+ * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
+public interface STMTransaction extends Transaction
+{
+ public STMTransaction readField();
+ public STMTransaction writeField();
+
+}
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningField.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningField.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningField.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,16 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.spec;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+ at Target ({ElementType.FIELD})
+public @interface VersioningField
+{
+
+}
Copied: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/log4j.xml (from rev 26975, labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/resources/log4j.xml)
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/log4j.xml (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/log4j.xml 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,297 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+ <!--
+ =====================================================================
+ -->
+ <!--
+ -->
+ <!--
+ Log4j Configuration
+ -->
+ <!--
+ -->
+ <!--
+ =====================================================================
+ -->
+
+ <!--
+ $Id: log4j.xml 64096 2007-07-17 14:36:23Z stan.silvert at jboss.com $
+ -->
+
+ <!--
+ | For more configuration information and examples see the Jakarta
+ Log4j | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
+ debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <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">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
+ </layout>
+ </appender>
+
+ <appender name="FILE" class="org.apache.log4j.FileAppender">
+ <param name="File" value="test.log" />
+ <param name="Append" value="true" />
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
+ </layout>
+ </appender>
+
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!--
+ Buffer events and log them asynchronously <appender name="ASYNC"
+ class="org.apache.log4j.AsyncAppender"> <errorHandler
+ class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <appender-ref
+ ref="FILE"/> <appender-ref ref="CONSOLE"/> <appender-ref ref="SMTP"/>
+ </appender>
+ -->
+
+ <!--
+ EMail events to an administrator <appender name="SMTP"
+ class="org.apache.log4j.net.SMTPAppender"> <errorHandler
+ class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param
+ name="Threshold" value="ERROR"/> <param name="To"
+ value="admin at myhost.domain.com"/> <param name="From"
+ value="nobody at myhost.domain.com"/> <param name="Subject" value="JBoss
+ Sever Errors"/> <param name="SMTPHost" value="localhost"/> <param
+ name="BufferSize" value="10"/> <layout
+ class="org.apache.log4j.PatternLayout"> <param
+ name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/> </layout>
+ </appender>
+ -->
+
+ <!--
+ Syslog events <appender name="SYSLOG"
+ class="org.apache.log4j.net.SyslogAppender"> <errorHandler
+ class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param
+ name="Facility" value="LOCAL7"/> <param name="FacilityPrinting"
+ value="true"/> <param name="SyslogHost" value="localhost"/> <layout
+ class="org.apache.log4j.PatternLayout"> <param
+ name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/> </layout>
+ </appender>
+ -->
+
+ <!--
+ Log events to JMS (requires a topic to be created) <appender
+ name="JMS" class="org.apache.log4j.net.JMSAppender"> <errorHandler
+ class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param
+ name="Threshold" value="ERROR"/> <param
+ name="TopicConnectionFactoryBindingName"
+ value="java:/ConnectionFactory"/> <param name="TopicBindingName"
+ value="topic/MyErrorsTopic"/> </appender>
+ -->
+
+ <!--
+ Log events through SNMP <appender name="TRAP_LOG"
+ class="org.apache.log4j.ext.SNMPTrapAppender"> <errorHandler
+ class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param
+ name="ImplementationClassName"
+ value="org.apache.log4j.ext.JoeSNMPTrapSender"/> <param
+ name="ManagementHost" value="127.0.0.1"/> <param
+ name="ManagementHostTrapListenPort" value="162"/> <param
+ name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/> <param
+ name="LocalIPAddress" value="127.0.0.1"/> <param
+ name="LocalTrapSendPort" value="161"/> <param name="GenericTrapType"
+ value="6"/> <param name="SpecificTrapType" value="12345678"/> <param
+ name="CommunityString" value="public"/> <param
+ name="ForwardStackTraceWithTrap" value="true"/> <param
+ name="Threshold" value="DEBUG"/> <param name="ApplicationTrapOID"
+ value="1.3.6.1.4.1.24.12.10.22.64"/> <layout
+ class="org.apache.log4j.PatternLayout"> <param
+ name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/> </layout>
+ </appender>
+ -->
+
+ <!--
+ Emit events as JMX notifications <appender name="JMX"
+ class="org.jboss.monitor.services.JMXNotificationAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+
+ <param name="Threshold" value="WARN"/> <param name="ObjectName"
+ value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
+
+ <layout class="org.apache.log4j.PatternLayout"> <param
+ name="ConversionPattern" value="%d %-5p [%c] %m"/> </layout>
+ </appender>
+ -->
+
+ <!--
+ Security AUDIT Appender <appender name="AUDIT"
+ class="org.jboss.logging.appender.DailyRollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="${jboss.server.log.dir}/audit.log"/> <param
+ name="Append" value="true"/> <param name="DatePattern"
+ value="'.'yyyy-MM-dd"/> <layout
+ class="org.apache.log4j.PatternLayout"> <param
+ name="ConversionPattern" value="%d %-5p [%c] (%t:%x) %m%n"/> </layout>
+ </appender>
+ -->
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <category name="org.apache">
+ <priority value="INFO" />
+ </category>
+
+ <!--
+ Limit JSF logging to DEBUG. FINER and FINEST will not be logged
+ -->
+ <category name="javax.enterprise.resource.webcontainer.jsf">
+ <priority value="ERROR" />
+ </category>
+
+ <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+ <category name="jacorb">
+ <priority value="WARN" />
+ </category>
+
+ <!-- Set the logging level of the JSF implementation -->
+ <category name="javax.enterprise.resource.webcontainer.jsf">
+ <priority value="ERROR" />
+ </category>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <category name="org.jgroups">
+ <priority value="WARN" />
+ </category>
+
+ <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
+ <category name="org.quartz">
+ <priority value="ERROR" />
+ </category>
+
+ <!--
+ Limit JBoss categories <category name="org.jboss"> <priority
+ value="INFO"/> </category>
+ -->
+
+ <!-- Limit the JSR77 categories -->
+ <category name="org.jboss.management">
+ <priority value="ERROR" />
+ </category>
+
+ <!--
+ Show the evolution of the DataSource pool in the logs
+ [inUse/Available/Max] <category
+ name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <priority value="TRACE"/> </category>
+ -->
+
+ <!--
+ Category specifically for Security Audit Provider <category
+ name="org.jboss.security.audit.providers.LogAuditProvider"
+ additivity="false"> <priority value="TRACE"/> <appender-ref
+ ref="AUDIT"/> </category>
+ -->
+
+ <!--
+ Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG
+ is verbose
+ -->
+ <category name="org.jboss.serial">
+ <priority value="ERROR" />
+ </category>
+
+ <!--
+ Decrease the priority threshold for the org.jboss.varia category
+ <category name="org.jboss.varia"> <priority value="DEBUG"/>
+ </category>
+ -->
+
+ <!--
+ Enable JBossWS message tracing <category
+ name="org.jboss.ws.core.MessageTrace"> <priority value="TRACE"/>
+ </category>
+ -->
+
+ <!--
+ | An example of enabling the custom TRACE level priority that is used
+ | by the JBoss internals to diagnose low level details. This example |
+ turns on TRACE level msgs for the org.jboss.ejb.plugins package and
+ its | subpackages. This will produce A LOT of logging output. | |
+ Note: since jboss AS 4.2.x, the trace level is supported natively by |
+ log4j, so although the custom org.jboss.logging.XLevel priority will |
+ still work, there is no need to use it. The two examples that follow |
+ will both enable trace logging. <category name="org.jboss.system">
+ <priority value="TRACE" class="org.jboss.logging.XLevel"/> </category>
+ <category name="org.jboss.ejb.plugins"> <priority value="TRACE"/>
+ </category>
+ -->
+
+ <!--
+ | Logs these events to SNMP: - server starts/stops - cluster evolution
+ (node death/startup) - When an EJB archive is deployed (and associated
+ verified messages) - When an EAR archive is deployed <category
+ name="org.jboss.system.server.Server"> <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/> </category> <category
+ name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <priority value="INFO" /> <appender-ref ref="TRAP_LOG"/> </category>
+
+ <category name="org.jboss.deployment.MainDeployer"> <priority
+ value="ERROR" /> <appender-ref ref="TRAP_LOG"/> </category> <category
+ name="org.jboss.ejb.EJBDeployer"> <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/> </category> <category
+ name="org.jboss.deployment.EARDeployer"> <priority value="INFO" />
+ <appender-ref ref="TRAP_LOG"/> </category>
+ -->
+
+ <!-- Clustering logging -->
+ <!--
+ Uncomment the following to redirect the org.jgroups and org.jboss.ha
+ categories to a cluster.log file. <appender name="CLUSTER"
+ class="org.jboss.logging.appender.RollingFileAppender"> <errorHandler
+ class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param
+ name="File" value="${jboss.server.log.dir}/cluster.log"/> <param
+ name="Append" value="false"/> <param name="MaxFileSize"
+ value="500KB"/> <param name="MaxBackupIndex" value="1"/> <layout
+ class="org.apache.log4j.PatternLayout"> <param
+ name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout>
+ </appender> <category name="org.jgroups"> <priority value="DEBUG" />
+ <appender-ref ref="CLUSTER"/> </category> <category
+ name="org.jboss.ha"> <priority value="DEBUG" /> <appender-ref
+ ref="CLUSTER"/> </category>
+ -->
+ <category name="org.jboss.aop">
+ <priority value="TRACE" />
+ <appender-ref ref="CONSOLE" />
+ </category>
+ <category name="uk">
+ <priority value="DEBUG" />
+ <appender-ref ref="CONSOLE" />
+ <appender-ref ref="FILE" />
+ </category>
+
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <priority value="DEBUG" />
+ <appender-ref ref="CONSOLE" />
+ </root>
+
+</log4j:configuration>
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml 2009-07-01 18:00:14 UTC (rev 27402)
@@ -2,18 +2,21 @@
<aop xmlns="urn:jboss:aop-beans:1.0">
<aspect class="uk.ac.ncl.sdia.a8905943.aspects.VersioningAspectImpl"/>
+ <aspect class="" scope=""/>
- <!-- bean getter methods -->
- <bind name="beanGetMethod" pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Car->get*(*))">
+ <!-- bean getter methods
+ <bind name="beanGetMethod" pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Car->getMake())">
<around aspect="uk.ac.ncl.sdia.a8905943.aspects.VersioningAspectImpl" name="read"/>
</bind>
- <!-- bean setter methods -->
- <bind name="beanSetMethod" pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Car->set*(*))">
+ -->
+ <!-- bean setter methods
+ <bind name="beanSetMethod" pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Car->setMake(*))">
<around aspect="uk.ac.ncl.sdia.a8905943.aspects.VersioningAspectImpl" name="write"/>
</bind>
-
+ -->
<!-- field access -->
<bind name="fieldAccess" pointcut="set(* uk.ac.ncl.sdia.a8905943.model.Car->*)">
<around aspect="uk.ac.ncl.sdia.a8905943.model.Car" name="version"/>
</bind>
+
</aop>
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/TestVersioningAspectImpl.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/TestVersioningAspectImpl.java 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/TestVersioningAspectImpl.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -8,7 +8,6 @@
import junit.framework.Assert;
-import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
@@ -26,9 +25,12 @@
@Test
public void testCheckCarEntityModifiedFieldValuePreservedAfterAspectInvocation()
{
+ logger.info("Invoking test.");
Car car = new Car();
String name = "Volvo";
+ logger.info("Calling setMake(");
car.setMake(name);
+ logger.info("Returned from calling setMake(");
Assert.assertNotNull(car.getMake());
Assert.assertEquals(car.getMake(), name);
Assert.assertNotNull(Thread.currentThread());
@@ -37,6 +39,5 @@
@Before
public void setUp()
{
- BasicConfigurator.configure();
}
}
Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/handle/JUnitTestFieldUtils.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/handle/JUnitTestFieldUtils.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/handle/JUnitTestFieldUtils.java 2009-07-01 18:00:14 UTC (rev 27402)
@@ -0,0 +1,109 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.handle;
+
+import java.lang.reflect.Field;
+
+import javax.persistence.Id;
+
+import junit.framework.Assert;
+
+import org.junit.Test;
+
+import uk.ac.ncl.sdia.a8905943.handle.exception.FieldNotFoundException;
+
+public class JUnitTestFieldUtils
+{
+
+ @Test public void checkIdFieldFound()
+ throws FieldNotFoundException
+ {
+ try
+ {
+ Long id = 2l;
+ Car car = new Car(id);
+ FieldUtils utils = new FieldUtils();
+ Field idField = utils.findIdField(car.getClass());
+ Assert.assertNotNull(idField);
+ Assert.assertEquals(Car.class.getDeclaredField("id"), idField);
+ Assert.assertEquals(id, utils.getValue(idField, car));
+ }
+ catch (NoSuchFieldException fnfe)
+ {
+ Assert.fail("Not expecting to have an exception thrown when finding the id field.");
+ }
+ }
+ @Test (expected=FieldNotFoundException.class)
+ public void checkExpectedExceptionThrown()
+ throws FieldNotFoundException
+ {
+ GreyImport car = new GreyImport();
+ FieldUtils utils = new FieldUtils();
+
+ Long id = utils.getValue(utils.findIdField(car.getClass()),car);
+ Assert.fail();
+ }
+
+ @Test
+ public void checkNullFieldBehaviour()
+ throws FieldNotFoundException
+ {
+ Car car = new Car(null);
+ FieldUtils util = new FieldUtils();
+ Long value = util.getValue(util.findIdField(car.getClass()), car);
+ Assert.assertNull(value);
+ }
+
+
+
+ /**
+ *
+ * A typical car entity that has expected id annotated field. Not worried about
+ * bean accessor methods for the purpose of testing.
+ *
+ * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
+ public class Car
+ {
+ @Id
+ private Long id;
+ public Car(Long id)
+ {
+ this.id = id;
+ }
+ public Long getId()
+ {
+ return id;
+ }
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+ }
+ /**
+ *
+ * An entity that doesn't have an annotated id field.
+ *
+ * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
+ public class GreyImport
+ {
+ private Long id;
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+ }
+}
Deleted: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/resources/log4j.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/resources/log4j.xml 2009-07-01 17:40:15 UTC (rev 27401)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/resources/log4j.xml 2009-07-01 18:00:14 UTC (rev 27402)
@@ -1,301 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml 64096 2007-07-17 14:36:23Z stan.silvert at jboss.com $ -->
-
-<!--
- | For more configuration information and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <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">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
- </layout>
- </appender>
-
- <!-- ====================== -->
- <!-- More Appender examples -->
- <!-- ====================== -->
-
- <!-- Buffer events and log them asynchronously
- <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <appender-ref ref="FILE"/>
- <appender-ref ref="CONSOLE"/>
- <appender-ref ref="SMTP"/>
- </appender>
- -->
-
- <!-- EMail events to an administrator
- <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Threshold" value="ERROR"/>
- <param name="To" value="admin at myhost.domain.com"/>
- <param name="From" value="nobody at myhost.domain.com"/>
- <param name="Subject" value="JBoss Sever Errors"/>
- <param name="SMTPHost" value="localhost"/>
- <param name="BufferSize" value="10"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
- </layout>
- </appender>
- -->
-
- <!-- Syslog events
- <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Facility" value="LOCAL7"/>
- <param name="FacilityPrinting" value="true"/>
- <param name="SyslogHost" value="localhost"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
- </layout>
- </appender>
- -->
-
- <!-- Log events to JMS (requires a topic to be created)
- <appender name="JMS" class="org.apache.log4j.net.JMSAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="Threshold" value="ERROR"/>
- <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
- <param name="TopicBindingName" value="topic/MyErrorsTopic"/>
- </appender>
- -->
-
- <!-- Log events through SNMP
- <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/>
- <param name="ManagementHost" value="127.0.0.1"/>
- <param name="ManagementHostTrapListenPort" value="162"/>
- <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/>
- <param name="LocalIPAddress" value="127.0.0.1"/>
- <param name="LocalTrapSendPort" value="161"/>
- <param name="GenericTrapType" value="6"/>
- <param name="SpecificTrapType" value="12345678"/>
- <param name="CommunityString" value="public"/>
- <param name="ForwardStackTraceWithTrap" value="true"/>
- <param name="Threshold" value="DEBUG"/>
- <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/>
- </layout>
- </appender>
- -->
-
- <!-- Emit events as JMX notifications
- <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-
- <param name="Threshold" value="WARN"/>
- <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%c] %m"/>
- </layout>
- </appender>
- -->
-
- <!-- Security AUDIT Appender
- <appender name="AUDIT" class="org.jboss.logging.appender.DailyRollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="${jboss.server.log.dir}/audit.log"/>
- <param name="Append" value="true"/>
- <param name="DatePattern" value="'.'yyyy-MM-dd"/>
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%c] (%t:%x) %m%n"/>
- </layout>
- </appender>
- -->
-
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
- <category name="org.apache">
- <priority value="INFO"/>
- </category>
-
- <!-- Limit JSF logging to DEBUG. FINER and FINEST will not be logged -->
- <category name="javax.enterprise.resource.webcontainer.jsf">
- <priority value="ERROR" />
- </category>
-
- <!-- Limit the jacorb category to WARN as its INFO is verbose -->
- <category name="jacorb">
- <priority value="WARN"/>
- </category>
-
- <!-- Set the logging level of the JSF implementation -->
- <category name="javax.enterprise.resource.webcontainer.jsf">
- <priority value="ERROR" />
- </category>
-
- <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
- <category name="org.jgroups">
- <priority value="WARN"/>
- </category>
-
- <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
- <category name="org.quartz">
- <priority value="ERROR"/>
- </category>
-
- <!-- Limit JBoss categories
- <category name="org.jboss">
- <priority value="INFO"/>
- </category>
- -->
-
- <!-- Limit the JSR77 categories -->
- <category name="org.jboss.management">
- <priority value="ERROR"/>
- </category>
-
- <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
- <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
- <priority value="TRACE"/>
- </category>
- -->
-
- <!-- Category specifically for Security Audit Provider
- <category name="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
- <priority value="TRACE"/>
- <appender-ref ref="AUDIT"/>
- </category>
- -->
-
- <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
- <category name="org.jboss.serial">
- <priority value="ERROR"/>
- </category>
-
- <!-- Decrease the priority threshold for the org.jboss.varia category
- <category name="org.jboss.varia">
- <priority value="DEBUG"/>
- </category>
- -->
-
- <!-- Enable JBossWS message tracing
- <category name="org.jboss.ws.core.MessageTrace">
- <priority value="TRACE"/>
- </category>
- -->
-
- <!--
- | An example of enabling the custom TRACE level priority that is used
- | by the JBoss internals to diagnose low level details. This example
- | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its
- | subpackages. This will produce A LOT of logging output.
- |
- | Note: since jboss AS 4.2.x, the trace level is supported natively by
- | log4j, so although the custom org.jboss.logging.XLevel priority will
- | still work, there is no need to use it. The two examples that follow
- | will both enable trace logging.
- <category name="org.jboss.system">
- <priority value="TRACE" class="org.jboss.logging.XLevel"/>
- </category>
- <category name="org.jboss.ejb.plugins">
- <priority value="TRACE"/>
- </category>
- -->
-
- <!--
- | Logs these events to SNMP:
- - server starts/stops
- - cluster evolution (node death/startup)
- - When an EJB archive is deployed (and associated verified messages)
- - When an EAR archive is deployed
-
- <category name="org.jboss.system.server.Server">
- <priority value="INFO" />
- <appender-ref ref="TRAP_LOG"/>
- </category>
-
- <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
- <priority value="INFO" />
- <appender-ref ref="TRAP_LOG"/>
- </category>
-
- <category name="org.jboss.deployment.MainDeployer">
- <priority value="ERROR" />
- <appender-ref ref="TRAP_LOG"/>
- </category>
-
- <category name="org.jboss.ejb.EJBDeployer">
- <priority value="INFO" />
- <appender-ref ref="TRAP_LOG"/>
- </category>
-
- <category name="org.jboss.deployment.EARDeployer">
- <priority value="INFO" />
- <appender-ref ref="TRAP_LOG"/>
- </category>
- -->
-
- <!-- Clustering logging -->
- <!-- Uncomment the following to redirect the org.jgroups and
- org.jboss.ha categories to a cluster.log file.
-
- <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender">
- <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
- <param name="File" value="${jboss.server.log.dir}/cluster.log"/>
- <param name="Append" value="false"/>
- <param name="MaxFileSize" value="500KB"/>
- <param name="MaxBackupIndex" value="1"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
- </layout>
- </appender>
- <category name="org.jgroups">
- <priority value="DEBUG" />
- <appender-ref ref="CLUSTER"/>
- </category>
- <category name="org.jboss.ha">
- <priority value="DEBUG" />
- <appender-ref ref="CLUSTER"/>
- </category>
- -->
- <category name="org.jboss.aop">
- <priority value="INFO" />
- <appender-ref ref="CONSOLE"/>
- </category>
- <category name="uk.ac.ncl.sdia.a8905943">
- <priority value="DEBUG" />
- <appender-ref ref="CONSOLE"/>
- </category>
-
-
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <priority value="ERROR" />
- <appender-ref ref="CONSOLE"/>
- </root>
-
-</log4j:configuration>
More information about the jboss-svn-commits
mailing list