[jboss-svn-commits] JBL Code SVN: r28804 - in labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR: src/main/java/uk/ac/ncl/sdia/a8905943 and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 4 17:27:25 EDT 2009
Author: whitingjr
Date: 2009-08-04 17:27:25 -0400 (Tue, 04 Aug 2009)
New Revision: 28804
Added:
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/
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/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/log4j.xml
Modified:
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/build.xml
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STMEntity.java
labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/META-INF/jboss-aop.xml
Log:
Fixed major headache bugs with annotations.
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/build.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/build.xml 2009-08-04 21:26:34 UTC (rev 28803)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/build.xml 2009-08-04 21:27:25 UTC (rev 28804)
@@ -4,19 +4,26 @@
<target name="build" >
<echo>Java module build task was executed.</echo>
- <!--delete dir="${build.dir}/classes"/>
- <mkdir dir="${build.dir}/classes"/-->
-
+ <copy file="${basedir}/target/STMAnnotationsJAR-0.0.1-SNAPSHOT.jar" tofile="${artifact-target}/STMAnnotationsJAR.aop"/>
+ <copy todir="${build.dir}/classes">
+ <fileset dir="${basedir}/target/classes">
+ <include name="**/*.class"/>
+ </fileset>
+ </copy>
<!--javac destdir="${build.dir}/classes" classpathref="COMPILE_DEPENDENCIES" debug="true" target="1.6">
<src path="${basedir}/src/main/java"/>
</javac-->
- <antcall target="aopc">
+ <!--antcall target="aopc">
<reference refid="COMPILE_DEPENDENCIES"/>
</antcall>
+ <antcall target="aopc">
+ <reference refid="COMPILE_DEPENDENCIES"/>
+ </antcall-->
+
<!-- hack attack, this relies on eclipse m2 having compile the aopc, the Ant Aoc task doesn't work -->
- <copy todir="${basedir}/classes">
+ <!--copy todir="${basedir}/classes">
<fileset dir="${basedir}/target/classes">
<include name="uk/ac/ncl/sdia/a8905943/model/*.class"/>
</fileset>
@@ -51,8 +58,10 @@
<fileset dir="${basedir}/target/classes">
<include name="uk/ac/ncl/sdia/a8905943/model/*.class"/>
</fileset>
- </copy>
+ </copy-->
+
+
</target>
@@ -70,7 +79,8 @@
<path id="classpath">
<path refid="jboss.aop.classpath"/>
- <pathelement path="classes"/>
+ <pathelement path="${build.dir}/classes"/>
+ <pathelement path="${basedir}/src/main/resources"/>
<path refid="COMPILE_DEPENDENCIES"> </path>
</path>
@@ -79,17 +89,19 @@
</target>
<target name="compile" depends="prepare">
- <delete dir="classes"/>
- <mkdir dir="classes"/>
+ <!--delete dir="${basedir}/classes"/>
+ <mkdir dir="${basedir}/classes"/-->
+
<javac srcdir="src/main/java"
- destdir="${basedir}/classes"
+ destdir="${build.dir}/classes"
debug="on"
deprecation="on"
optimize="off"
includes="**">
<classpath refid="classpath"/>
</javac>
- <javac srcdir="src/test/java"
+
+ <!--javac srcdir="src/test/java"
destdir="${basedir}/classes"
debug="on"
deprecation="on"
@@ -102,29 +114,30 @@
<fileset dir="src">
<include name="**/*.properties"/>
</fileset>
- </copy>
+ </copy-->
</target>
<target name="aopc" depends="compile">
- <!-- this target precompiles the classes overwriting the originals -->
- <copy todir="${basedir}/classes" file="${basedir}/src/main/java/log4j.xml" />
- <aopc compilerclasspathref="classpath" classpathref="classpath" verbose="true" report="true">
-
-
- <classpath path="${basedir}/classes">
- <filelist>
- <file name="src/main/java/log4j.xml"/>
- </filelist>
+ <aopc compilerclasspathref="classpath" verbose="true" report="true">
+ <classpath path="${build.dir}/classes"/>
+ <src path="${build.dir}/classes"/>
+ <include name="uk/ac/ncl/sdia/a8905943/model/Bike.class"/>
+ <aoppath path="src/main/resources/META-INF/jboss-aop.xml"/>
+ </aopc>
+
+
+ <!--aopc compilerclasspathref="classpath" classpathref="classpath" verbose="true" report="true">
+ <classpath >
+ <pathelement path="${build.dir}/classes"/>
+ <pathelement path="${basedir}/classes"/>
+ <pathelement path="src/main/resources"/>
</classpath>
- <include name="**/LeccyCar.class"/>
- <include name="**/Bike.class"/>
- <src path="src/main/java"/>
- <aoppath path="src/main/resources/META-INF/jboss-aop.xml">
- </aoppath>
- <aopclasspath path="${basedir}/src/main/resources"/>
-
- </aopc>
+ <include name="uk/ac/ncl/sdia/a8905943/model/*.class"/>
+ <src path="${build.dir}/classes"/>
+ <aoppath path="src/main/resources/META-INF/jboss-aop.xml"/>
+ </aopc-->
+
</target>
<!-- unused target name="run-compile-time" depends="aopc">
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml 2009-08-04 21:26:34 UTC (rev 28803)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/pom.xml 2009-08-04 21:27:25 UTC (rev 28804)
@@ -19,54 +19,59 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>javassist</groupId>
- <artifactId>javassist</artifactId>
- <version>3.9.0.GA</version>
- <scope>test</scope>
- </dependency>
+ <groupId>javassist</groupId>
+ <artifactId>javassist</artifactId>
+ <version>3.9.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>uk.ac.ncl.sdia.a8905943</groupId>
+ <artifactId>MVCCSampleSTM</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+
</dependencies>
-
+
<build>
- <plugins>
- <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>/home/whitingjr/eclipse/workspaces/red-hat/STMAnnotationsJAR/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>
- </includes>
- <report>/tmp/stmannotations.txt</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>
- <configuration>
- <forkMode>always</forkMode>
- <useSystemClassLoader>false</useSystemClassLoader>
- <argLine>-Djboss.aop.path=src/test/resources/jboss-test-aop.xml</argLine>
- <additionalClasspathElement>src/test/resources</additionalClasspathElement>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-
+ <plugins>
+ <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>
+ </includes>
+ </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>
+ <configuration>
+ <forkMode>always</forkMode>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ <argLine>-Djboss.aop.path=src/test/resources/jboss-test-aop.xml</argLine>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
</project>
Added: 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 (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/Bike.java 2009-08-04 21:27:25 UTC (rev 28804)
@@ -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.model;
+
+import javax.persistence.Id;
+
+import uk.ac.ncl.sdia.a8905943.aspects.annotation.STMReadable;
+import uk.ac.ncl.sdia.a8905943.stm.annotation.STMEntity;
+
+ at STMEntity
+public class Bike
+{
+
+ @Id
+ private Long id;
+ private String name;
+
+ public Bike(Long identity)
+ {
+ this.id = identity;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+
+}
Added: 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 (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/model/LeccyCar.java 2009-08-04 21:27:25 UTC (rev 28804)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package uk.ac.ncl.sdia.a8905943.model;
+
+import javax.persistence.Id;
+
+import uk.ac.ncl.sdia.a8905943.aspects.annotation.STMReadable;
+import uk.ac.ncl.sdia.a8905943.aspects.annotation.STMWriteable;
+import uk.ac.ncl.sdia.a8905943.stm.annotation.STMEntity;
+
+ at STMEntity
+public class LeccyCar
+{
+ @Id
+ private Long id;
+ private String name;
+
+ /**
+ * Constructor that fulfils contract with STMEntity annotation
+ *
+ * @param identity
+ */
+ public LeccyCar(Long identity)
+ {
+ this.id = identity;
+ }
+ public Long getId()
+ {
+ return id;
+ }
+ @STMWriteable
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+ public String getName()
+ {
+ return name;
+ }
+ @STMWriteable
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+}
+
+
Added: 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 (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STM.java 2009-08-04 21:27:25 UTC (rev 28804)
@@ -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 STM {
+
+}
Modified: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STMEntity.java
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STMEntity.java 2009-08-04 21:26:34 UTC (rev 28803)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/java/uk/ac/ncl/sdia/a8905943/stm/annotation/STMEntity.java 2009-08-04 21:27:25 UTC (rev 28804)
@@ -11,6 +11,12 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * Indicates the entity annotated is part of the STM system.
+ *
+ * @author <a href="whitingjr at hotmail.com">Jeremy Whiting</a>
+ * @version $Revision: 1.1 $
+ */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface STMEntity
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-04 21:26:34 UTC (rev 28803)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/META-INF/jboss-aop.xml 2009-08-04 21:27:25 UTC (rev 28804)
@@ -2,6 +2,7 @@
<aop xmlns="urn:jboss:aop-beans:1.0">
<aspect name="stmreadaspect" class="uk.ac.ncl.sdia.a8905943.aspects.STMReadAspect"/>
<aspect name="stmwriteaspect" class="uk.ac.ncl.sdia.a8905943.aspects.STMWriteAspect"/>
+ <aspect name="stminjectionaspect" class="uk.ac.ncl.sdia.a8905943.aspects.STMInjectionAspect"/>
<!-- method pointcut -->
<bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->get*())">
@@ -16,9 +17,21 @@
<bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.Bike->set*(java.lang.String))">
<advice name="stmwrite" aspect="stmwriteaspect" />
</bind>
+
<bind pointcut="execution(* uk.ac.ncl.sdia.a8905943.model.LeccyCar->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)">
+ <advice name="access" aspect="stminjectionaspect"/>
+ </bind>
+ <!--
+ this does not work and never will, leave it
+ <bind pointcut="execution(* *->@uk.ac.ncl.sdia.a8905943.aspects.field.STMWrite(..))">
+ <advice name="stmwrite" aspect="stmwriteaspect" />
+ </bind>
+ -->
+
+
</aop>
Added: labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/log4j.xml
===================================================================
--- labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/log4j.xml (rev 0)
+++ labs/jbosstm/workspace/whitingjr/trunk/STMAnnotationsJAR/src/main/resources/log4j.xml 2009-08-04 21:27:25 UTC (rev 28804)
@@ -0,0 +1,66 @@
+<?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>
+
+ <category name="org.jboss.aop.instrument">
+ <priority value="DEBUG" />
+ </category>
+
+
+ <root>
+ <priority value="DEBUG" />
+ <appender-ref ref="CONSOLE" />
+ </root>
+
+</log4j:configuration>
More information about the jboss-svn-commits
mailing list