You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2017/11/03 09:46:20 UTC

[isis] branch dev/2.0.0/ISIS-1632-meta-annotations updated: ISIS-1632: removes @Meta annotation, since not required.

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

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1632-meta-annotations
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/dev/2.0.0/ISIS-1632-meta-annotations by this push:
     new 1c05c0e  ISIS-1632: removes @Meta annotation, since not required.
1c05c0e is described below

commit 1c05c0efdc4a43ae6a91177e60f92c1292213b82
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Nov 3 09:09:47 2017 +0000

    ISIS-1632: removes @Meta annotation, since not required.
---
 .../org/apache/isis/applib/annotation/Meta.java    | 34 ----------------------
 .../isis/core/metamodel/facets/Annotations.java    | 18 ++++++++----
 .../Annotations_getAnnotations_on_Class_Test.java  |  8 ++---
 .../Annotations_getAnnotations_on_Field_Test.java  |  4 ---
 .../Annotations_getAnnotations_on_Method_Test.java |  5 ----
 ...notations_getAnnotations_on_Parameter_Test.java |  5 ----
 .../domainapp/modules/simple/dom/types/Name.java   |  2 --
 7 files changed, 15 insertions(+), 61 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Meta.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Meta.java
deleted file mode 100644
index b5cbb81..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Meta.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.applib.annotation;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Inherited
-@Target({ ElementType.ANNOTATION_TYPE })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Meta {
-
-
-}
\ No newline at end of file
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
index 95bd112..b2aaeda 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Annotations.java
@@ -36,7 +36,6 @@ import com.google.common.collect.Lists;
 import org.apache.isis.applib.annotation.Collection;
 import org.apache.isis.applib.annotation.CollectionLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Meta;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
@@ -187,14 +186,21 @@ public final class Annotations  {
             final Annotation annotation,
             final Class<T> annotationClass,
             final List<AnnotationAndDepth<T>> annotationAndDepths) {
-        appendWithDepth(annotation, annotationClass, annotationAndDepths, 0);
+        appendWithDepth(annotation, annotationClass, annotationAndDepths, 0, Lists.newArrayList());
     }
 
     private static <T extends Annotation> void appendWithDepth(
             final Annotation annotation,
             final Class<T> annotationClass,
             final List<AnnotationAndDepth<T>> annotationAndDepths,
-            final int depth) {
+            final int depth,
+            final List<Annotation> visited) {
+        if (visited.contains(annotation)) {
+            return;
+        } else {
+            // prevent infinite loop
+            visited.add(annotation);
+        }
         final Class<? extends Annotation> annotationType = annotation.annotationType();
 
         // directly annotated
@@ -203,12 +209,12 @@ public final class Annotations  {
         }
 
         // if meta-annotation
-        if(annotationType.getAnnotation(Meta.class) != null) {
+        //if(annotationType.getAnnotation(Meta.class) != null) {
             final Annotation[] annotationsOnAnnotation = annotationType.getAnnotations();
             for (final Annotation annotationOnAnnotation : annotationsOnAnnotation) {
-                appendWithDepth(annotationOnAnnotation, annotationClass, annotationAndDepths, depth+1);
+                appendWithDepth(annotationOnAnnotation, annotationClass, annotationAndDepths, depth+1, visited);
             }
-        }
+        //}
     }
 
     /**
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Class_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Class_Test.java
index 96401ab..6083787 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Class_Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Class_Test.java
@@ -10,8 +10,6 @@ import java.util.List;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.isis.applib.annotation.Meta;
-
 import static org.hamcrest.CoreMatchers.is;
 
 public class Annotations_getAnnotations_on_Class_Test {
@@ -30,7 +28,7 @@ public class Annotations_getAnnotations_on_Class_Test {
     }
 
 
-    @Meta
+    //@Meta
     @DomainObj(publishng = DomainObj.Publishng.YES)
     @Inherited
     @Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
@@ -38,7 +36,7 @@ public class Annotations_getAnnotations_on_Class_Test {
     @interface Published {
     }
 
-    @Meta
+    //@Meta
     @DomainObj(publishng = DomainObj.Publishng.NO)
     @Inherited
     @Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
@@ -46,7 +44,7 @@ public class Annotations_getAnnotations_on_Class_Test {
     @interface NotPublished {
     }
 
-    @Meta
+    //@Meta
     @Published
     @Inherited
     @Target({ ElementType.TYPE, ElementType.ANNOTATION_TYPE })
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Field_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Field_Test.java
index 2e767e3..cda729a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Field_Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Field_Test.java
@@ -11,7 +11,6 @@ import java.util.List;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.isis.applib.annotation.Meta;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.Publishing;
 
@@ -20,7 +19,6 @@ import static org.hamcrest.CoreMatchers.is;
 public class Annotations_getAnnotations_on_Field_Test {
 
 
-    @Meta
     @Property(publishing = Publishing.ENABLED)
     @Inherited
     @Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@@ -28,7 +26,6 @@ public class Annotations_getAnnotations_on_Field_Test {
     @interface Published {
     }
 
-    @Meta
     @Property(publishing = Publishing.DISABLED)
     @Inherited
     @Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@@ -36,7 +33,6 @@ public class Annotations_getAnnotations_on_Field_Test {
     @interface NotPublished {
     }
 
-    @Meta
     @Published
     @Inherited
     @Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE })
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Method_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Method_Test.java
index 1e6cade..7c9db30 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Method_Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Method_Test.java
@@ -11,8 +11,6 @@ import java.util.List;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.isis.applib.annotation.Meta;
-
 import static org.hamcrest.CoreMatchers.is;
 
 public class Annotations_getAnnotations_on_Method_Test {
@@ -30,7 +28,6 @@ public class Annotations_getAnnotations_on_Method_Test {
         Publishng publishng() default Publishng.NOT_SPECIFIED;
     }
 
-    @Meta
     @DomainObj(publishng = DomainObj.Publishng.YES)
     @Inherited
     @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
@@ -38,7 +35,6 @@ public class Annotations_getAnnotations_on_Method_Test {
     @interface Published {
     }
 
-    @Meta
     @DomainObj(publishng = DomainObj.Publishng.NO)
     @Inherited
     @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
@@ -46,7 +42,6 @@ public class Annotations_getAnnotations_on_Method_Test {
     @interface NotPublished {
     }
 
-    @Meta
     @Published
     @Inherited
     @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Parameter_Test.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Parameter_Test.java
index 15d0c3a..e2c1236 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Parameter_Test.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/Annotations_getAnnotations_on_Parameter_Test.java
@@ -11,8 +11,6 @@ import java.util.List;
 import org.junit.Assert;
 import org.junit.Test;
 
-import org.apache.isis.applib.annotation.Meta;
-
 import static org.hamcrest.CoreMatchers.is;
 
 public class Annotations_getAnnotations_on_Parameter_Test {
@@ -30,7 +28,6 @@ public class Annotations_getAnnotations_on_Parameter_Test {
         Publishng publishng() default Publishng.NOT_SPECIFIED;
     }
 
-    @Meta
     @DomainObj(publishng = DomainObj.Publishng.YES)
     @Inherited
     @Target({ ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@@ -38,7 +35,6 @@ public class Annotations_getAnnotations_on_Parameter_Test {
     @interface Published {
     }
 
-    @Meta
     @DomainObj(publishng = DomainObj.Publishng.NO)
     @Inherited
     @Target({ ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@@ -46,7 +42,6 @@ public class Annotations_getAnnotations_on_Parameter_Test {
     @interface NotPublished {
     }
 
-    @Meta
     @Published
     @Inherited
     @Target({ ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java
index 789dd56..b2db377 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/types/Name.java
@@ -5,14 +5,12 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
-import org.apache.isis.applib.annotation.Meta;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.services.i18n.TranslatableString;
 import org.apache.isis.applib.spec.AbstractSpecification2;
 
-@Meta
 // @Column(length = Name.MAX_LEN) // requires DN 5.x
 @Property(mustSatisfy = Name.NoExclamationMarks.class, maxLength = Name.MAX_LEN)
 @Parameter(mustSatisfy = Name.NoExclamationMarks.class, maxLength = Name.MAX_LEN)

-- 
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].