[jboss-svn-commits] JBL Code SVN: r28865 - in labs/jbosstm/workspace/whitingjr/trunk: MVCCSample-build and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 7 06:15:15 EDT 2009
Author: whitingjr
Date: 2009-08-07 06:15:14 -0400 (Fri, 07 Aug 2009)
New Revision: 28865
Added:
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/aop-report.xml
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/InjectedSTM.java
Removed:
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java
Modified:
labs/jbosstm/workspace/whitingjr/trunk/CarWashEJB/pom.xml
labs/jbosstm/workspace/whitingjr/trunk/MVCCSample-build/pom.xml
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMInjectionAspect.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMReadAspect.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMWriteAspect.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/Bike.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/LeccyCar.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/META-INF/jboss-aop.xml
Log:
Added aspect functionality.
Modified: labs/jbosstm/workspace/whitingjr/trunk/CarWashEJB/pom.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/CarWashEJB/pom.xml 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/CarWashEJB/pom.xml 2009-08-07 10:15:14 UTC (rev 28865)
@@ -8,6 +8,7 @@
</parent>
<groupId>uk.ac.ncl.sdia.a8905943</groupId>
<artifactId>CarWashEJB</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
</project>
\ No newline at end of file
Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSample-build/pom.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSample-build/pom.xml 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSample-build/pom.xml 2009-08-07 10:15:14 UTC (rev 28865)
@@ -197,7 +197,7 @@
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.0</version>
- <scope>required</scope>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
Added: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/aop-report.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/aop-report.xml (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/aop-report.xml 2009-08-07 10:15:14 UTC (rev 28865)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aop-report>
+ <unbound-bindings>
+ <binding pointcut="set(* uk.ac.ncl.sdia.a8905943.model.Car->*)" />
+ <binding pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->get*())" />
+ <binding pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->set*(java.lang.String))" />
+ <binding pointcut="field(uk.ac.ncl.sdia.a8905943.stm.STM *->@uk.ac.ncl.sdia.a8905943.stm.annotation.InjectedSTM)" />
+ <binding pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->get*())" />
+ <binding pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->set*(java.lang.String))" />
+ <binding pointcut="field(uk.ac.ncl.sdia.a8905943.stm.STM *->@uk.ac.ncl.sdia.a8905943.stm.annotation.InjectedSTM)" />
+ </unbound-bindings>
+</aop-report>
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml 2009-08-07 10:15:14 UTC (rev 28865)
@@ -28,15 +28,14 @@
<groupId>uk.ac.ncl.sdia.a8905943</groupId>
<artifactId>MVCCSampleSTM</artifactId>
<version>0.0.1-SNAPSHOT</version>
- <scope>compile</scope>
+ <scope>provided</scope>
</dependency>
-
</dependencies>
<build>
<plugins>
- <plugin>
+ <!-- plugin>
<groupId>org.jboss.maven.plugins</groupId>
<artifactId>maven-jbossaop-plugin</artifactId>
<version>1.0.0.GA</version>
@@ -52,15 +51,45 @@
<includes>
<include>uk/ac/ncl/sdia/a8905943/model/Bike.class</include>
<include>uk/ac/ncl/sdia/a8905943/model/LeccyCar.class</include>
+ <include>uk/ac/ncl/sdia/a8905943/aspects/STMWriteAspect.class</include>
+ <include>uk/ac/ncl/sdia/a8905943/aspects/STMReadAspect.class</include>
</includes>
+ <report>false</report>
</configuration>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
- </plugin>
+ </plugin-->
<plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jbossaop-plugin</artifactId>
+ <version>1.0.0.GA</version>
+ <executions>
+ <execution>
+ <id>compile</id>
+ <configuration>
+ <includeProjectDependency>true</includeProjectDependency>
+ <aoppaths>
+ <aoppath>src/main/resources/META-INF/jboss-aop.xml</aoppath>
+ </aoppaths>
+ <verbose>true</verbose>
+ <includes>
+ <include>uk/ac/ncl/sdia/a8905943/model/Bike.class</include>
+ <include>uk/ac/ncl/sdia/a8905943/model/LeccyCar.class</include>
+ <include>uk/ac/ncl/sdia/a8905943/aspects/STMWriteAspect.class</include>
+ <include>uk/ac/ncl/sdia/a8905943/aspects/STMReadAspect.class</include>
+ </includes>
+ <report>false</report>
+ </configuration>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.3</version>
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMInjectionAspect.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMInjectionAspect.java 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMInjectionAspect.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -6,10 +6,12 @@
*/
package uk.ac.ncl.sdia.a8905943.aspects;
+import org.apache.log4j.Logger;
import org.jboss.aop.joinpoint.FieldReadInvocation;
import org.jboss.aop.joinpoint.FieldWriteInvocation;
import uk.ac.ncl.sdia.a8905943.factory.STMFactory;
+import uk.ac.ncl.sdia.a8905943.stm.STM;
/**
* This object injects a reference to the STM system.
@@ -19,9 +21,11 @@
*/
public class STMInjectionAspect
{
+ private static final Logger logger = Logger.getLogger(STMInjectionAspect.class);
public Object access(FieldReadInvocation invocation)
throws Throwable
{
+ logger.debug("accessing the STM field");
return STMFactory.getFactoryInstance().getCurrent();
}
@@ -31,5 +35,9 @@
throw new RuntimeException( "Setting an @Injected variable is not allowed.");
}
+ public STMInjectionAspect()
+ {
+ }
}
+
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMReadAspect.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMReadAspect.java 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMReadAspect.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -9,16 +9,34 @@
import org.apache.log4j.Logger;
import org.jboss.aop.joinpoint.MethodInvocation;
+import uk.ac.ncl.sdia.a8905943.stm.STM;
+
public class STMReadAspect
{
+ private STM stm;
+
private static Logger logger = Logger.getLogger(STMReadAspect.class);
public Object stmread(MethodInvocation invocation)
throws Throwable
{
if (logger.isDebugEnabled())
{
- logger.debug("STMReadAspect has been invoked.");
+ logger.debug("STMReadAspect has been invoked. Will access the stm field next");
}
+ if (null != this.stm)
+ {
+ this.stm.begin();
+ }
+ else
+ {
+ logger.warn("The aspected object has been invoked without an STM being allocated to thread. Falling back to regular POJO behaviour.");
+ }
+
+
return invocation.invokeNext();
}
+ public STMReadAspect()
+ {
+ }
}
+
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMWriteAspect.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMWriteAspect.java 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/STMWriteAspect.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -9,14 +9,27 @@
import org.apache.log4j.Logger;
import org.jboss.aop.joinpoint.MethodInvocation;
+import uk.ac.ncl.sdia.a8905943.stm.STM;
+
public class STMWriteAspect
{
+ private STM stm;
+
private static final Logger logger = Logger.getLogger(STMWriteAspect.class);
public Object stmwrite(MethodInvocation invocation)
throws Throwable
{
logger.info("Write of aspected field ["+invocation.getActualMethod().getName()+"]");
+ if (null != this.stm)
+ {
+ logger.debug("stm field has an object and calling method on stm");
+ this.stm.commit();
+ }
+ else
+ {
+ logger.debug("stm field in the WriteAspect is null;");
+ }
Object[] arguments = invocation.getArguments();
arguments[0] = "Choppa";
@@ -24,4 +37,8 @@
return invocation.invokeNext();
}
+ public STMWriteAspect()
+ {
+ }
}
+
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/Bike.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/Bike.java 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/Bike.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -8,7 +8,8 @@
import javax.persistence.Id;
-import uk.ac.ncl.sdia.a8905943.aspects.annotation.STMReadable;
+import uk.ac.ncl.sdia.a8905943.stm.STM;
+import uk.ac.ncl.sdia.a8905943.stm.annotation.InjectedSTM;
import uk.ac.ncl.sdia.a8905943.stm.annotation.STMEntity;
@STMEntity
@@ -39,3 +40,5 @@
}
}
+
+
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/LeccyCar.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/LeccyCar.java 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/LeccyCar.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -32,7 +32,6 @@
{
return id;
}
- @STMWriteable
public void setId(Long id)
{
this.id = id;
@@ -41,11 +40,9 @@
{
return name;
}
- @STMWriteable
public void setName(String name)
{
this.name = name;
}
}
-
Copied: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/InjectedSTM.java (from rev 28804, labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java)
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/InjectedSTM.java (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/InjectedSTM.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -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.stm.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+
+/**
+ * Fields annotated with this are injected with an STM reference.
+ *
+ * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
+ at Target ({ElementType.FIELD})
+public @interface InjectedSTM {
+
+}
Deleted: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java 2009-08-07 10:15:14 UTC (rev 28865)
@@ -1,21 +0,0 @@
-/*
- * JBoss, the OpenSource J2EE webOS
- *
- * Distributable under LGPL license.
- * See terms of license at gnu.org.
- */
-package uk.ac.ncl.sdia.a8905943.stm.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Target;
-
-/**
- * Fields annotated with this are injected with an STM reference.
- *
- * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
- * @version $Revision: 1.1 $
- */
- at Target ({ElementType.FIELD})
-public @interface STM {
-
-}
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/META-INF/jboss-aop.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/META-INF/jboss-aop.xml 2009-08-07 05:49:35 UTC (rev 28864)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/META-INF/jboss-aop.xml 2009-08-07 10:15:14 UTC (rev 28865)
@@ -5,26 +5,27 @@
<aspect name="stminjectionaspect" class="uk.ac.ncl.sdia.a8905943.aspects.STMInjectionAspect"/>
<!-- method pointcut -->
- <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->get*())">
+ <!-- bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->get*())">
<advice name="stmread" aspect="stmreadaspect" />
- </bind>
+ </bind-->
- <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.LeccyCar->get*())">
+ <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.*->get*())">
<advice name="stmread" aspect="stmreadaspect" />
</bind>
<!-- method pointcut -->
- <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->set*(java.lang.String))">
+ <!-- bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->set*(java.lang.String))">
<advice name="stmwrite" aspect="stmwriteaspect" />
- </bind>
+ </bind-->
- <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.LeccyCar->set*(java.lang.String))">
+ <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.*->set*(java.lang.String))">
<advice name="stmwrite" aspect="stmwriteaspect" />
</bind>
- <bind pointcut="field(uk.ac.ncl.sdia.a8905943.stm.STM *->@uk.ac.ncl.sdia.a8905943.stm.annotation.STM)">
+ <!-- field pointcut -->
+ <bind pointcut="field(private uk.ac.ncl.sdia.a8905943.stm.STM uk.ac.ncl.sdia.a8905943.aspects.*->stm)">
<advice name="access" aspect="stminjectionaspect"/>
- </bind>
+ </bind>
<!--
this does not work and never will, leave it
More information about the jboss-svn-commits
mailing list