[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