You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/10/30 15:03:21 UTC
[isis] 02/07: ISIS-2158: removing jdo-api from 'applib' and
'metamodel'
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit f3cb3a594888497577568f03ac0bd5a85f2ac85f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Oct 30 10:58:29 2019 +0100
ISIS-2158: removing jdo-api from 'applib' and 'metamodel'
---
core/metamodel/pom.xml | 14 +++++++-------
.../apache/isis/metamodel/facets/Annotations.java | 17 +++++++++++------
.../apache/isis/metamodel/facets/FacetFactory.java | 2 +-
.../annotation/HomePageFacetAnnotationFactory.java | 10 +++++++---
.../metamodel/facets/jaxb/JaxbFacetFactory.java | 21 +++++++++++++++------
.../order/annotprop/MemberOrderFacetFactory.java | 9 +++++++--
.../param/DeriveFacetsPostProcessor.java | 20 +++++++++++++++++---
.../JdoNotPersistentAnnotationFacetFactory.java | 10 ++++++++--
.../JdoPrimaryKeyAnnotationFacetFactory.java | 10 ++++++++--
9 files changed, 81 insertions(+), 32 deletions(-)
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index b92cd14..7059b95 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -56,13 +56,13 @@
<dependencies>
<!-- JDO API (non transient, provided by plugin) -->
- <dependency>
- <groupId>javax.jdo</groupId>
- <artifactId>jdo-api</artifactId>
- <version>${jdo-api.version}</version>
- <!-- provided by plugins -->
- <scope>provided</scope>
- </dependency>
+<!-- <dependency> -->
+<!-- <groupId>javax.jdo</groupId> -->
+<!-- <artifactId>jdo-api</artifactId> -->
+<!-- <version>${jdo-api.version}</version> -->
+<!-- provided by plugins -->
+<!-- <scope>provided</scope> -->
+<!-- </dependency> -->
<dependency>
<groupId>org.apache.isis.core</groupId>
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java
index dbedafa..a3160ae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/Annotations.java
@@ -28,6 +28,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@@ -45,6 +46,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Title;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Sets;
import org.apache.isis.commons.internal.reflection._Annotations;
import org.apache.isis.commons.internal.reflection._Reflect;
import org.apache.isis.metamodel.commons.ThrowableExtensions;
@@ -208,7 +210,7 @@ public final class Annotations {
* WARN: this method does NOT search for meta-annotations; use {@link #getAnnotations(Class, Class)} for that.
* </p>
*/
- public static <T extends Annotation> T getAnnotation(
+ private static <T extends Annotation> T getAnnotation(
final Method method,
final Class<T> annotationClass) {
if (method == null) {
@@ -270,7 +272,7 @@ public final class Annotations {
* inherited methods up from the superclass.
* @deprecated use {@link _Annotations} instead
*/
- public static <T extends Annotation> List<T> getAnnotations(
+ private static <T extends Annotation> List<T> getAnnotations(
final Method method,
final Class<T> annotationClass) {
if (method == null) {
@@ -527,8 +529,8 @@ public final class Annotations {
}
- private static List<Class<?>> fieldAnnotationClasses =
- _Lists.of(
+ private static Set<Class<? extends Annotation>> fieldAnnotationClasses =
+ _Sets.of(
Property.class,
PropertyLayout.class,
Collection.class,
@@ -539,11 +541,14 @@ public final class Annotations {
javax.annotation.Nullable.class,
Title.class,
XmlJavaTypeAdapter.class,
- XmlTransient.class,
- javax.jdo.annotations.Column.class
+ XmlTransient.class
+ //javax.jdo.annotations.Column.class
);
private static boolean shouldSearchForField(final Class<?> annotationClass) {
+ if(annotationClass.getName().equals("javax.jdo.annotations.Column")) {
+ return true;
+ }
return fieldAnnotationClasses.contains(annotationClass);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java
index 5fb998a..b4afccc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/FacetFactory.java
@@ -235,7 +235,7 @@ public interface FacetFactory {
/**
- * Annotation lookup on this context's method..
+ * Annotation lookup on this context's method. Also honors annotations on fields, if this method is a getter.
* @since 2.0
*/
public <A extends Annotation> Optional<A> synthesizeOnMethod(Class<A> annotationType) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
index 05b3b92..991b53b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.metamodel.facetapi.FacetUtil;
import org.apache.isis.metamodel.facetapi.FeatureType;
import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
-import org.apache.isis.metamodel.facets.Annotations;
import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.metamodel.facets.FacetedMethod;
import org.apache.isis.metamodel.facets.actions.homepage.HomePageFacet;
@@ -55,8 +54,13 @@ implements MetaModelRefiner {
@Override
public void process(ProcessMethodContext processMethodContext) {
- final HomePage annotation = Annotations.getAnnotation(processMethodContext.getMethod(), HomePage.class);
- if (annotation == null) {
+ final HomePage homepageAnnot = processMethodContext.synthesizeOnMethod(HomePage.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", homepageAnnot,
+// Annotations.getAnnotation(processMethodContext.getMethod(), HomePage.class));
+
+ if (homepageAnnot == null) {
return;
}
final FacetedMethod facetHolder = processMethodContext.getFacetHolder();
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java
index 664c75a..77d59eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/jaxb/JaxbFacetFactory.java
@@ -20,7 +20,6 @@
package org.apache.isis.metamodel.facets.jaxb;
import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.List;
import java.util.Optional;
@@ -115,9 +114,14 @@ implements MetaModelRefiner {
}
private void processXmlJavaTypeAdapter(final ProcessMethodContext processMethodContext, XmlAccessType accessType) {
- final Method method = processMethodContext.getMethod();
-
- final XmlJavaTypeAdapter annotation = Annotations.getAnnotation(method, XmlJavaTypeAdapter.class);
+ //val method = processMethodContext.getMethod();
+
+ final XmlJavaTypeAdapter annotation = processMethodContext.synthesizeOnMethod(XmlJavaTypeAdapter.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", annotation,
+// Annotations.getAnnotation(method, XmlJavaTypeAdapter.class));
+
if(annotation == null) {
return;
}
@@ -130,9 +134,14 @@ implements MetaModelRefiner {
}
private void processXmlTransient(final ProcessMethodContext processMethodContext, XmlAccessType accessType) {
- final Method method = processMethodContext.getMethod();
+ //val method = processMethodContext.getMethod();
- final XmlTransient annotation = Annotations.getAnnotation(method, XmlTransient.class);
+ final XmlTransient annotation = processMethodContext.synthesizeOnMethod(XmlTransient.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", annotation,
+// Annotations.getAnnotation(method, XmlTransient.class));
+
if(annotation == null) {
return;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/order/annotprop/MemberOrderFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/order/annotprop/MemberOrderFacetFactory.java
index f732501..f8ceaed 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/order/annotprop/MemberOrderFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/members/order/annotprop/MemberOrderFacetFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.metamodel.facets.members.order.annotprop;
import org.apache.isis.applib.annotation.MemberOrder;
import org.apache.isis.metamodel.facetapi.FacetUtil;
import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.Annotations;
import org.apache.isis.metamodel.facets.ContributeeMemberFacetFactory;
import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.metamodel.facets.members.order.MemberOrderFacet;
@@ -48,7 +47,13 @@ public class MemberOrderFacetFactory extends FacetFactoryAbstract implements Con
}
private MemberOrderFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- final MemberOrder annotation = Annotations.getAnnotation(processMethodContext.getMethod(), MemberOrder.class);
+
+ final MemberOrder annotation = processMethodContext.synthesizeOnMethod(MemberOrder.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", annotation,
+// Annotations.getAnnotation(processMethodContext.getMethod(), MemberOrder.class));
+
if (annotation != null) {
return new MemberOrderFacetAnnotation(
annotation.name(),
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
index 83d1767..b85e903 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/postprocessors/param/DeriveFacetsPostProcessor.java
@@ -30,11 +30,11 @@ import org.apache.isis.applib.events.domain.ActionDomainEvent;
import org.apache.isis.applib.events.domain.CollectionDomainEvent;
import org.apache.isis.applib.events.domain.PropertyDomainEvent;
import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.reflection._Annotations;
import org.apache.isis.metamodel.MetaModelContext;
import org.apache.isis.metamodel.MetaModelContextAware;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetUtil;
-import org.apache.isis.metamodel.facets.Annotations;
import org.apache.isis.metamodel.facets.FacetedMethod;
import org.apache.isis.metamodel.facets.TypedHolder;
import org.apache.isis.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
@@ -286,7 +286,14 @@ implements ObjectSpecificationPostProcessor, MetaModelContextAware {
if(method != null) {
// this is basically a subset of the code that is in CollectionAnnotationFacetFactory,
// ignoring stuff which is deprecated for Isis v2
- final Collection collectionAnnot = Annotations.getAnnotation(method, Collection.class);
+
+ final Collection collectionAnnot =
+ _Annotations.synthesizeInherited(method, Collection.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", collectionAnnot,
+// Annotations.getAnnotation(method, Collection.class));
+
if(collectionAnnot != null) {
final Class<? extends CollectionDomainEvent<?, ?>> collectionDomainEventType =
CollectionAnnotationFacetFactory.defaultFromDomainObjectIfRequired(
@@ -325,7 +332,14 @@ implements ObjectSpecificationPostProcessor, MetaModelContextAware {
if(method != null) {
// this is basically a subset of the code that is in CollectionAnnotationFacetFactory,
// ignoring stuff which is deprecated for Isis v2
- final Property propertyAnnot = Annotations.getAnnotation(method, Property.class);
+
+ final Property propertyAnnot =
+ _Annotations.synthesizeInherited(method, Property.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", propertyAnnot,
+// Annotations.getAnnotation(method, Property.class));
+
if(propertyAnnot != null) {
final Class<? extends PropertyDomainEvent<?, ?>> propertyDomainEventType =
PropertyAnnotationFacetFactory.defaultFromDomainObjectIfRequired(
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
index 5205c39..ff1ec48 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/notpersistent/JdoNotPersistentAnnotationFacetFactory.java
@@ -23,7 +23,6 @@ import javax.jdo.annotations.NotPersistent;
import org.apache.isis.metamodel.JdoMetamodelUtil;
import org.apache.isis.metamodel.facetapi.FacetUtil;
import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.Annotations;
import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.metamodel.facets.FacetedMethod;
@@ -42,8 +41,15 @@ public class JdoNotPersistentAnnotationFacetFactory extends FacetFactoryAbstract
if(!JdoMetamodelUtil.isPersistenceEnhanced(cls)) {
return;
}
+
+ //val method = processMethodContext.getMethod();
+
+ final NotPersistent annotation = processMethodContext.synthesizeOnMethod(NotPersistent.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same", annotation,
+// Annotations.getAnnotation(method, NotPersistent.class));
- final NotPersistent annotation = Annotations.getAnnotation(processMethodContext.getMethod(), NotPersistent.class);
if (annotation == null) {
return;
}
diff --git a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
index 0de23a1..dc34eed 100644
--- a/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
+++ b/core/plugins/jdo/common/src/main/java/org/apache/isis/jdo/metamodel/facets/prop/primarykey/JdoPrimaryKeyAnnotationFacetFactory.java
@@ -22,7 +22,6 @@ import javax.jdo.annotations.PrimaryKey;
import org.apache.isis.metamodel.JdoMetamodelUtil;
import org.apache.isis.metamodel.facetapi.FeatureType;
-import org.apache.isis.metamodel.facets.Annotations;
import org.apache.isis.metamodel.facets.FacetFactoryAbstract;
import org.apache.isis.metamodel.facets.FacetedMethod;
@@ -41,8 +40,15 @@ public class JdoPrimaryKeyAnnotationFacetFactory extends FacetFactoryAbstract {
if(!JdoMetamodelUtil.isPersistenceEnhanced(cls)) {
return;
}
+
+ //val method = processMethodContext.getMethod();
+
+ final PrimaryKey annotation = processMethodContext.synthesizeOnMethod(PrimaryKey.class)
+ .orElse(null);
+
+// _Assert.assertEquals("expected same on method=" + method , annotation,
+// Annotations.getAnnotation(method, PrimaryKey.class));
- final PrimaryKey annotation = Annotations.getAnnotation(processMethodContext.getMethod(), PrimaryKey.class);
if (annotation == null) {
return;
}