[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