This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new ede022a245 ISIS-3010: [JDO] Add Support for Transient annot.
ede022a245 is described below

commit ede022a24512302f2f8730b33528fb7739e233bf
Author: andi-huber <[email protected]>
AuthorDate: Fri Apr 15 10:49:08 2022 +0200

    ISIS-3010: [JDO] Add Support for Transient annot.
---
 .../JdoPersistenceCapableFacetFactory.java         |  1 -
 .../JdoNotPersistentAnnotationFacetFactory.java    | 38 +++++++++++++++++++---
 ...va => JdoNotPersistentFacetFromAnnotation.java} |  4 +--
 ...=> JdoNotPersistentFacetFromJpaAnnotation.java} |  4 +--
 4 files changed, 38 insertions(+), 9 deletions(-)

diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
index 78925c5eda..06834611a9 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/object/persistencecapable/JdoPersistenceCapableFacetFactory.java
@@ -119,7 +119,6 @@ implements ObjectTypeFacetFactory {
             FacetUtil.addFacet(
                     jdoFacetContext.createEntityFacet(facetHolder));
 
-
         });
     }
 
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
index bada0a90be..c6d7ab21cd 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
@@ -20,14 +20,16 @@ package 
org.apache.isis.persistence.jdo.metamodel.facets.prop.notpersistent;
 
 import javax.inject.Inject;
 import javax.jdo.annotations.NotPersistent;
+import javax.persistence.Transient;
 
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.persistence.jdo.provider.entities.JdoFacetContext;
 
+import lombok.val;
+
 public class JdoNotPersistentAnnotationFacetFactory
 extends FacetFactoryAbstract {
 
@@ -43,21 +45,49 @@ extends FacetFactoryAbstract {
 
     @Override
     public void process(final ProcessMethodContext processMethodContext) {
+        if(!processJdoAnnotations(processMethodContext)) {
+            processJpaAnnotations(processMethodContext);
+        }
+    }
+
+    // -- HELPER
+
+    private boolean processJdoAnnotations(final ProcessMethodContext 
processMethodContext) {
 
         // only applies to JDO entities; ignore any view models
         final Class<?> cls = processMethodContext.getCls();
         if(!jdoFacetContext.isPersistenceEnhanced(cls)) {
-            return;
+            return false;
         }
 
         final NotPersistent annotation = 
processMethodContext.synthesizeOnMethod(NotPersistent.class)
                 .orElse(null);
 
+        if (annotation == null) {
+            return false;
+        }
+
+        val facetHolder = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new 
JdoNotPersistentFacetFromAnnotation(facetHolder));
+        return true;
+    }
+
+
+    private void processJpaAnnotations(final ProcessMethodContext 
processMethodContext) {
+
+        //XXX ideally we would process JPA annotations only if the type has an 
@Entity annotation
+
+        final Transient annotation = 
processMethodContext.synthesizeOnMethod(Transient.class)
+                .orElse(null);
+
         if (annotation == null) {
             return;
         }
 
-        final FacetedMethod holder = processMethodContext.getFacetHolder();
-        FacetUtil.addFacet(new JdoNotPersistentFacetAnnotation(holder));
+        val facetHolder = processMethodContext.getFacetHolder();
+        FacetUtil.addFacet(new 
JdoNotPersistentFacetFromJpaAnnotation(facetHolder));
+
     }
+
+
 }
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromAnnotation.java
similarity index 85%
copy from 
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
copy to 
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromAnnotation.java
index a687b3d9c6..39c8ea171a 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromAnnotation.java
@@ -21,9 +21,9 @@ package 
org.apache.isis.persistence.jdo.metamodel.facets.prop.notpersistent;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 
-public class JdoNotPersistentFacetAnnotation extends 
JdoNotPersistentFacetAbstract {
+public class JdoNotPersistentFacetFromAnnotation extends 
JdoNotPersistentFacetAbstract {
 
-    public JdoNotPersistentFacetAnnotation(final FacetHolder holder) {
+    public JdoNotPersistentFacetFromAnnotation(final FacetHolder holder) {
         super(holder);
     }
 
diff --git 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromJpaAnnotation.java
similarity index 85%
rename from 
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
rename to 
persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromJpaAnnotation.java
index a687b3d9c6..2cae95b3b6 100644
--- 
a/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetAnnotation.java
+++ 
b/persistence/jdo/metamodel/src/main/java/org/apache/isis/persistence/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentFacetFromJpaAnnotation.java
@@ -21,9 +21,9 @@ package 
org.apache.isis.persistence.jdo.metamodel.facets.prop.notpersistent;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 
-public class JdoNotPersistentFacetAnnotation extends 
JdoNotPersistentFacetAbstract {
+public class JdoNotPersistentFacetFromJpaAnnotation extends 
JdoNotPersistentFacetAbstract {
 
-    public JdoNotPersistentFacetAnnotation(final FacetHolder holder) {
+    public JdoNotPersistentFacetFromJpaAnnotation(final FacetHolder holder) {
         super(holder);
     }
 

Reply via email to