You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/09/16 01:46:47 UTC

svn commit: r815566 - in /labs/magma/trunk: database-openjpa/src/main/java/org/apache/magma/database/openjpa/ database-openjpa/src/test/ database-openjpa/src/test/java/ database-openjpa/src/test/java/org/ database-openjpa/src/test/java/org/apache/ data...

Author: simoneg
Date: Tue Sep 15 23:46:46 2009
New Revision: 815566

URL: http://svn.apache.org/viewvc?rev=815566&view=rev
Log:
LABS-452 : MagPersistent as a neutral alternative to OpenJPA Persistent while waiting for JPA 2

Added:
    labs/magma/trunk/database-openjpa/src/main/java/org/apache/magma/database/openjpa/UseOpenJPAPersistentAnnotation.aj
    labs/magma/trunk/database-openjpa/src/test/
    labs/magma/trunk/database-openjpa/src/test/java/
    labs/magma/trunk/database-openjpa/src/test/java/org/
    labs/magma/trunk/database-openjpa/src/test/java/org/apache/
    labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/
    labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/
    labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/
    labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/BeanWithStream.java
    labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/TestAnnotationPresent.java
    labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/MagPersistent.java

Added: labs/magma/trunk/database-openjpa/src/main/java/org/apache/magma/database/openjpa/UseOpenJPAPersistentAnnotation.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/database-openjpa/src/main/java/org/apache/magma/database/openjpa/UseOpenJPAPersistentAnnotation.aj?rev=815566&view=auto
==============================================================================
--- labs/magma/trunk/database-openjpa/src/main/java/org/apache/magma/database/openjpa/UseOpenJPAPersistentAnnotation.aj (added)
+++ labs/magma/trunk/database-openjpa/src/main/java/org/apache/magma/database/openjpa/UseOpenJPAPersistentAnnotation.aj Tue Sep 15 23:46:46 2009
@@ -0,0 +1,12 @@
+package org.apache.magma.database.openjpa;
+
+import org.apache.magma.database.MagPersistent;
+import org.apache.openjpa.persistence.Persistent;
+import javax.persistence.Entity;
+
+public aspect UseOpenJPAPersistentAnnotation {
+	
+	declare @method : @MagPersistent * (@Entity *).get*(..) : @Persistent;
+	declare @field : @MagPersistent * (@Entity *).* : @Persistent;
+	
+}

Added: labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/BeanWithStream.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/BeanWithStream.java?rev=815566&view=auto
==============================================================================
--- labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/BeanWithStream.java (added)
+++ labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/BeanWithStream.java Tue Sep 15 23:46:46 2009
@@ -0,0 +1,25 @@
+package org.apache.magma.database.openjpa;
+
+import java.io.InputStream;
+
+import javax.persistence.Entity;
+
+import org.apache.magma.beans.MagmaBean;
+import org.apache.magma.database.MagPersistent;
+
+@Entity
+@MagmaBean
+public class BeanWithStream {
+	
+	private InputStream mystream;
+
+	@MagPersistent
+	public InputStream getMystream() {
+		return mystream;
+	}
+
+	public void setMystream(InputStream mystream) {
+		this.mystream = mystream;
+	}
+
+}

Added: labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/TestAnnotationPresent.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/TestAnnotationPresent.java?rev=815566&view=auto
==============================================================================
--- labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/TestAnnotationPresent.java (added)
+++ labs/magma/trunk/database-openjpa/src/test/java/org/apache/magma/database/openjpa/TestAnnotationPresent.java Tue Sep 15 23:46:46 2009
@@ -0,0 +1,21 @@
+package org.apache.magma.database.openjpa;
+
+import static org.junit.Assert.*;
+
+import java.lang.reflect.Method;
+
+import org.apache.magma.database.MagPersistent;
+import org.apache.openjpa.persistence.Persistent;
+import org.junit.Test;
+
+
+public class TestAnnotationPresent {
+
+	@Test
+	public void persistentAnnotation() throws Exception {
+		Method method = BeanWithStream.class.getMethod("getMystream");
+		assertTrue("No MagPersistent annotation", method.isAnnotationPresent(MagPersistent.class));
+		assertTrue("No OpenJPA Persistent annotation", method.isAnnotationPresent(Persistent.class));
+	}
+	
+}

Added: labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/MagPersistent.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/MagPersistent.java?rev=815566&view=auto
==============================================================================
--- labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/MagPersistent.java (added)
+++ labs/magma/trunk/foundation-database/src/main/java/org/apache/magma/database/MagPersistent.java Tue Sep 15 23:46:46 2009
@@ -0,0 +1,18 @@
+package org.apache.magma.database;
+
+import java.io.InputStream;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Use this annotation on {@link InputStream} properties that must be saved on database.
+ *
+ * @author Simone Gianni <si...@apache.org>
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD, ElementType.METHOD})
+public @interface MagPersistent {
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org