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 <[email protected]>
+ */
+...@retention(RetentionPolicy.RUNTIME)
+...@target({ElementType.FIELD, ElementType.METHOD})
+public @interface MagPersistent {
+
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]