[jboss-svn-commits] JBL Code SVN: r26959 - in labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM: src/main/java/uk/ac/ncl/sdia/a8905943 and 10 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 12 12:42:39 EDT 2009


Author: whitingjr
Date: 2009-06-12 12:42:39 -0400 (Fri, 12 Jun 2009)
New Revision: 26959

Added:
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/
   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/entitymanager/
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/entitymanager/STMEntityManagerFactoryImpl.java
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningAspect.java
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/entitymanager/
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/entitymanager/STMEntityManagerFactory.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/
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/JUTestVersioningAspectImpl.java
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/resources/
Removed:
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/TransactionManager.java
Modified:
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/.classpath
   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/spec/VersionManager.java
   labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/impl/JUTestMVCCStore.java
Log:
Started to flesh out the aspects to version changes.

Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/.classpath
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/.classpath	2009-06-12 16:24:24 UTC (rev 26958)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/.classpath	2009-06-12 16:42:39 UTC (rev 26959)
@@ -3,6 +3,7 @@
 	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
 	<classpathentry kind="src" path="src/test/java"/>
+	<classpathentry kind="src" path="src/test/resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>

Added: 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	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/aspects/VersioningAspectImpl.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ * 
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.aspects;
+
+import org.apache.log4j.Logger;
+import org.jboss.aop.joinpoint.ConstructorInvocation;
+import org.jboss.aop.joinpoint.FieldWriteInvocation;
+import org.jboss.aop.joinpoint.MethodInvocation;
+
+import uk.ac.ncl.sdia.a8905943.spec.VersioningAspect;
+
+public class VersioningAspectImpl implements VersioningAspect
+{
+   private static final Logger logger = Logger.getLogger(VersioningAspectImpl.class); 
+   
+   @Override
+   public void constructor(ConstructorInvocation constructorInvocation)
+   {
+      // TODO:jrw complete implementation of this method
+      if (logger.isInfoEnabled())
+      {
+         logger.info("Versioning aspect called for constructor call.");
+      }
+   }
+
+   @Override
+   public Object version(MethodInvocation methodInvocation)
+   {
+      // TODO:jrw complete implementation of this method
+      if (logger.isInfoEnabled())
+      {
+         logger.info("Versioning aspect called for method invocation");
+      }
+      return null;
+   }
+
+   @Override
+   public Object version(FieldWriteInvocation fieldWriteInvocation)
+   {
+      // TODO:jrw complete implementation of this method
+      if (logger.isInfoEnabled())
+      {
+         logger.info("Versioning aspect called for field write invocation");
+      }
+      return null;
+   }
+
+}

Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/entitymanager/STMEntityManagerFactoryImpl.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/entitymanager/STMEntityManagerFactoryImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/entitymanager/STMEntityManagerFactoryImpl.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ * 
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.entitymanager;
+
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+
+import uk.ac.ncl.sdia.a8905943.spec.entitymanager.STMEntityManagerFactory;
+
+public class STMEntityManagerFactoryImpl implements STMEntityManagerFactory
+{
+
+   @Override
+   public void close()
+   {
+      // FIXME close
+
+   }
+
+   @Override
+   public EntityManager createEntityManager()
+   {
+      // FIXME createEntityManager
+      return null;
+   }
+
+   @Override
+   public EntityManager createEntityManager(Map map)
+   {
+      // FIXME createEntityManager
+      return null;
+   }
+
+   @Override
+   public boolean isOpen()
+   {
+      // FIXME isOpen
+      return false;
+   }
+
+}

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-06-12 16:24:24 UTC (rev 26958)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/model/Car.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -1,9 +1,29 @@
 package uk.ac.ncl.sdia.a8905943.model;
 
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
 
+
 public class Car {
 
-	private Long id;
+   private Long id;
 	private String make;
+   public Long getId()
+   {
+      return id;
+   }
+   public void setId(Long id)
+   {
+      this.id = id;
+   }
+   public String getMake()
+   {
+      return make;
+   }
+   public void setMake(String make)
+   {
+      this.make = make;
+   }
 
 }

Deleted: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/TransactionManager.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/TransactionManager.java	2009-06-12 16:24:24 UTC (rev 26958)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/TransactionManager.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -1,7 +0,0 @@
-package uk.ac.ncl.sdia.a8905943.spec;
-
-public interface TransactionManager {
-
-	
-	
-}

Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersionManager.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersionManager.java	2009-06-12 16:24:24 UTC (rev 26958)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersionManager.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -8,6 +8,4 @@
 
 public interface VersionManager
 {
-
-   
 }

Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningAspect.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningAspect.java	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/VersioningAspect.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ * 
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.spec;
+
+import org.jboss.aop.joinpoint.ConstructorInvocation;
+import org.jboss.aop.joinpoint.FieldWriteInvocation;
+import org.jboss.aop.joinpoint.MethodInvocation;
+
+/**
+ * 
+ * This object defines the behaviour for a versioning aspect for
+ * entity object.
+ * 
+ * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
+public interface VersioningAspect
+{
+   /**
+    * This method is used to perform constructor behaviour for an 
+    * entity.
+    * @param constructorInvocation
+    * @return
+    */
+   public void constructor(ConstructorInvocation constructorInvocation);
+   /**
+    * Use this method to perform aspected behaviour when entity method
+    * was invoked.
+    * 
+    * @param methodInvocation
+    * @return the entity field object that is current for this thread
+    * transaction.
+    */
+   public Object version(MethodInvocation methodInvocation);
+   /**
+    * Use this method to perform versioning behaviour when an entity
+    * field is written to. 
+    * @param fieldWriteInvocation
+    * @return
+    */
+   public Object version(FieldWriteInvocation fieldWriteInvocation);
+}

Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/entitymanager/STMEntityManagerFactory.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/entitymanager/STMEntityManagerFactory.java	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/java/uk/ac/ncl/sdia/a8905943/spec/entitymanager/STMEntityManagerFactory.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -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.entitymanager;
+
+import java.io.Serializable;
+
+import javax.persistence.EntityManagerFactory;
+
+public interface STMEntityManagerFactory extends EntityManagerFactory, Serializable
+{
+   
+}

Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/main/resources/versioning-aop.xml	2009-06-12 16:42:39 UTC (rev 26959)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aop xmlns="urn:jboss:aop-beans:1.0">
+
+   <aspect class="uk.ac.ncl.sdia.a8905943.aspects.VersioningAspectImpl"/>
+
+	<!-- constructor -->
+   <bind pointcut="execution(uk.ac.ncl.sdia.a8905943.model.Car)">
+      <around aspect="uk.ac.ncl.sdia.a8905943.aspects.VersioningAspectImpl" name="constructor"/>
+   </bind>
+
+	<!-- bean methods -->
+   <bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Car->get*(*))">
+      <around aspect="uk.ac.ncl.sdia.a8905943.aspects.VersioningAspectImpl" name="version"/>
+   </bind>
+   
+   <!-- field access -->
+   <bind pointcut="set(* uk.ac.ncl.sdia.a8905943.model.Car->*)">
+      <around aspect="uk.ac.ncl.sdia.a8905943.model.Car" name="version"/>
+   </bind>
+</aop>

Added: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/JUTestVersioningAspectImpl.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/JUTestVersioningAspectImpl.java	                        (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/aspects/JUTestVersioningAspectImpl.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ * 
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.aspects;
+
+import junit.framework.Assert;
+
+import org.apache.log4j.BasicConfigurator;
+import org.apache.log4j.Logger;
+import org.junit.Before;
+import org.junit.Test;
+
+import uk.ac.ncl.sdia.a8905943.model.Car;
+
+public class JUTestVersioningAspectImpl
+{
+   private static Logger logger = Logger.getLogger(JUTestVersioningAspectImpl.class);
+   /**
+    * This test checks car entity joinpoints are invoked when expected. field and
+    * bean methods
+    */
+   @Test
+   public void testCheckCarEntityModifiedFieldValuePreservedAfterAspectInvocation()
+   {
+      Car car = new Car();
+      String name = "Volvo";
+      car.setMake(name);
+      Assert.assertNotNull(car.getMake());
+      Assert.assertEquals(car.getMake(), name);
+      Assert.assertNotNull(Thread.currentThread());
+   }
+   
+   @Before
+   public void setUp()
+   {
+      BasicConfigurator.configure();
+   }
+}

Modified: labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/impl/JUTestMVCCStore.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/impl/JUTestMVCCStore.java	2009-06-12 16:24:24 UTC (rev 26958)
+++ labs/jbosstm/workspace/whitingjr/trunk/MVCCSampleSTM/src/test/java/uk/ac/ncl/sdia/a8905943/impl/JUTestMVCCStore.java	2009-06-12 16:42:39 UTC (rev 26959)
@@ -14,7 +14,6 @@
 	public void testCheckObjectStored()
 	{
 		MVCCStore store = new MVCCStore();
-		store.put();
 		
 		
 	}




More information about the jboss-svn-commits mailing list