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/10/06 08:35:51 UTC

[isis] 10/13: ISIS-1742: removes @Bookmarkable annotation + facets

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

danhaywood pushed a commit to branch dev/2.0.0/ISIS-1742-remove-deprecations
in repository https://gitbox.apache.org/repos/asf/isis.git

commit b1dfa020f8428e5b57e71a3c423abd921a3a6c8e
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Oct 5 16:52:05 2017 +0300

    ISIS-1742: removes @Bookmarkable annotation + facets
---
 .../guides/rgant/_rgant_aaa_deprecated.adoc        |  7 ---
 .../isis/applib/annotation/AutoComplete.java       | 70 ----------------------
 .../isis/applib/annotation/Bookmarkable.java       | 47 ---------------
 .../object/bookmarkpolicy/BookmarkPolicyFacet.java |  1 -
 ...aBookmarkableAnnotationElseFallbackFactory.java | 25 +-------
 .../DomainObjectAnnotationFacetFactory.java        | 39 +-----------
 ...kmarkableAnnotationFacetFactoryTest_action.java |  3 -
 ...okmarkableAnnotationFacetFactoryTest_class.java |  2 -
 todo-deprecation-list.txt                          |  8 +--
 9 files changed, 9 insertions(+), 193 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
index 00d78a8..3baf515 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgant/_rgant_aaa_deprecated.adoc
@@ -22,13 +22,6 @@ The annotations listed in the table below are still supported by Apache Isis, bu
 |Layer
 |xref:../ugvw/ugvw.adoc#_ugvw_layout_file-based[File-based layout]?
 
-|`@AutoComplete`
-|Repository method to search for entities
-|xref:../rgant/rgant.adoc#_rgant-DomainObject_autoCompleteRepository[`@DomainObject` +
-`#autoCompleteRepository()`]
-|UI/Domain
-|
-
 |`@Bookmarkable`
 |Whether (and how) to create a bookmark for visited object.
 |xref:../rgant/rgant.adoc#_rgant-DomainObjectLayout_bookmarking[`@DomainObjectLayout` +
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/AutoComplete.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/AutoComplete.java
deleted file mode 100644
index c08d544..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/AutoComplete.java
+++ /dev/null
@@ -1,70 +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;
-
-import org.apache.isis.applib.services.bookmark.Bookmark;
-
-/**
- * @deprecated - see {@link DomainObject#autoCompleteRepository()}.
- */
-@Inherited
-@Target({ ElementType.TYPE })
-@Retention(RetentionPolicy.RUNTIME)
-@Deprecated
-public @interface AutoComplete {
-
-    /**
-     * @deprecated - never implemented, also not required.
-     */
-    @Deprecated
-    public static class Candidate {
-        private final String title;
-        private final Bookmark bookmark;
-        public Candidate(String title, Bookmark bookmark) {
-            this.title = title;
-            this.bookmark = bookmark;
-        }
-        public String getTitle() {
-            return title;
-        }
-        public Bookmark getBookmark() {
-            return bookmark;
-        }
-    }
-    
-    /**
-     * @deprecated - see {@link DomainObject#autoCompleteRepository()}.
-     */
-    @Deprecated
-    Class<?> repository();
-    
-    /**
-     * @deprecated - see {@link DomainObject#autoCompleteAction()}.
-     */
-    @Deprecated
-    String action() default "autoComplete";
-
-}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bookmarkable.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bookmarkable.java
deleted file mode 100644
index 18e2b06..0000000
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bookmarkable.java
+++ /dev/null
@@ -1,47 +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;
-
-/**
- * Indicates the policy by which the entity or action can be bookmarked.
- * 
- * <p>
- * Three {@link BookmarkPolicy policies} are defined, which control how bookmarked entities are organized.
- * These have no meaning for bookmarkable actions.
- *
- * @deprecated - see {@link DomainObjectLayout#bookmarking()}.
- */
-@Inherited
-@Target({ ElementType.TYPE, ElementType.METHOD })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Bookmarkable {
-
-    /**
-     * @deprecated - see {@link DomainObjectLayout#bookmarking()}.
-     */
-    @Deprecated
-    BookmarkPolicy value() default BookmarkPolicy.AS_ROOT;  
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacet.java
index 07cd2c1..e2c5525 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkPolicyFacet.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.metamodel.facets.object.bookmarkpolicy;
 
 
 import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.applib.annotation.Bookmarkable;
 import org.apache.isis.core.metamodel.facets.SingleValueFacet;
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory.java
index 09e23dd..17bf942 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/bookmarkable/BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory.java
@@ -22,13 +22,10 @@ package org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable
 import java.util.List;
 
 import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.applib.annotation.Bookmarkable;
 import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
-import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
@@ -38,36 +35,25 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
-import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
 import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
 
 public class BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory extends FacetFactoryAbstract implements  MetaModelValidatorRefiner {
 
-    private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Bookmarkable.class);
-
     public BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory() {
         super(FeatureType.OBJECTS_AND_ACTIONS);
     }
 
     @Override
     public void process(final ProcessClassContext processClassContext) {
-        final Bookmarkable annotation = Annotations.getAnnotation(processClassContext.getCls(), Bookmarkable.class);
-        FacetUtil.addFacet(create(annotation, processClassContext.getFacetHolder(), null));
+        FacetUtil.addFacet(new BookmarkPolicyFacetFallback(processClassContext.getFacetHolder()));
     }
 
     @Override
     public void process(final ProcessMethodContext processMethodContext) {
-        final Bookmarkable annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Bookmarkable.class);
-        final BookmarkPolicyFacet facet = create(annotation, processMethodContext.getFacetHolder(), processMethodContext);
-        FacetUtil.addFacet(facet);
-    }
-
-    private BookmarkPolicyFacet create(final Bookmarkable annotation, final FacetHolder holder, final ProcessMethodContext processMethodContext) {
-        return annotation == null ? new BookmarkPolicyFacetFallback(holder) : validator.flagIfPresent(new BookmarkPolicyFacetViaBookmarkableAnnotation(annotation.value(), holder), processMethodContext);
+        FacetUtil.addFacet(new BookmarkPolicyFacetFallback(processMethodContext.getFacetHolder()));
     }
 
-
     /**
      * Violation if there is an action that is bookmarkable but does not have safe action semantics.
      */
@@ -96,15 +82,8 @@ public class BookmarkPolicyFacetViaBookmarkableAnnotationElseFallbackFactory ext
                 return true;
             }
         }));
-        metaModelValidator.add(validator);
     }
 
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = servicesInjector.getConfigurationServiceInternal();
-        validator.setConfiguration(configuration);
-    }
 
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index b0ea49d..89e938b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -26,7 +26,6 @@ import javax.annotation.PostConstruct;
 
 import com.google.common.collect.Maps;
 
-import org.apache.isis.applib.annotation.AutoComplete;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Immutable;
 import org.apache.isis.applib.annotation.Nature;
@@ -60,7 +59,6 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingLifecycleE
 import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEventFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotation;
-import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForAutoCompleteAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.choices.ChoicesFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.domainobject.editing.ImmutableFacetForDomainObjectAnnotation;
@@ -92,7 +90,6 @@ import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapabl
 public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         implements MetaModelValidatorRefiner, PostConstructMethodCache {
 
-    private final MetaModelValidatorForDeprecatedAnnotation autoCompleteValidator = new MetaModelValidatorForDeprecatedAnnotation(AutoComplete.class);
     private final MetaModelValidatorForDeprecatedAnnotation immutableValidator = new MetaModelValidatorForDeprecatedAnnotation(Immutable.class);
     private final MetaModelValidatorForDeprecatedAnnotation objectTypeValidator = new MetaModelValidatorForDeprecatedAnnotation(ObjectType.class);
     private final MetaModelValidatorForValidationFailures autoCompleteInvalid = new MetaModelValidatorForValidationFailures();
@@ -170,43 +167,15 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         final Class<?> cls = processClassContext.getCls();
         final FacetHolder facetHolder = processClassContext.getFacetHolder();
 
-        // check for the deprecated @AutoComplete annotation first
-        final AutoComplete autoCompleteAnnot = Annotations.getAnnotation(cls, AutoComplete.class);
-        Facet facet = autoCompleteValidator.flagIfPresent(createFor(facetHolder, autoCompleteAnnot, cls));
-
-        // else check from @DomainObject(auditing=...)
-        if(facet == null) {
-            final DomainObject domainObjectAnnot = Annotations.getAnnotation(cls, DomainObject.class);
-            facet = createFor(domainObjectAnnot, facetHolder, cls);
-        }
+        // check from @DomainObject(auditing=...)
+        final DomainObject domainObjectAnnot = Annotations.getAnnotation(cls, DomainObject.class);
+        Facet facet = createFor(domainObjectAnnot, facetHolder, cls);
 
         // then add
         FacetUtil.addFacet(facet);
     }
 
     private AutoCompleteFacet createFor(
-            final FacetHolder facetHolder,
-            final AutoComplete annotation,
-            final Class<?> cls) {
-        if(annotation == null) {
-            return null;
-        }
-
-        final Class<?> repositoryClass = annotation.repository();
-        final String actionName = annotation.action();
-
-        if(!isServiceType(cls, "@AutoComplete", repositoryClass)) {
-            return null;
-        }
-        final Method repositoryMethod = findRepositoryMethod(cls, "@AutoComplete", repositoryClass, actionName);
-        if(repositoryMethod == null) {
-            return null;
-        }
-        return new AutoCompleteFacetForAutoCompleteAnnotation(
-                        facetHolder, repositoryClass, repositoryMethod, servicesInjector);
-    }
-
-    private AutoCompleteFacet createFor(
             final DomainObject domainObject,
             final FacetHolder facetHolder,
             final Class<?> cls) {
@@ -543,7 +512,6 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
 
         }));
 
-        metaModelValidator.add(autoCompleteValidator);
         metaModelValidator.add(immutableValidator);
         metaModelValidator.add(objectTypeValidator);
 
@@ -559,7 +527,6 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         super.setServicesInjector(servicesInjector);
         IsisConfiguration configuration = getConfiguration();
 
-        autoCompleteValidator.setConfiguration(configuration);
         immutableValidator.setConfiguration(configuration);
         objectTypeValidator.setConfiguration(configuration);
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/bookmarkable/BookmarkableAnnotationFacetFactoryTest_action.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/bookmarkable/BookmarkableAnnotationFacetFactoryTest_action.java
index bb230eb..d3df165 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/bookmarkable/BookmarkableAnnotationFacetFactoryTest_action.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/bookmarkable/BookmarkableAnnotationFacetFactoryTest_action.java
@@ -21,8 +21,6 @@ package org.apache.isis.core.metamodel.facets.actions.bookmarkable;
 
 import java.lang.reflect.Method;
 
-import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.applib.annotation.Bookmarkable;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
 import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
@@ -49,7 +47,6 @@ public class BookmarkableAnnotationFacetFactoryTest_action extends AbstractFacet
 
     public void testBookmarkableAnnotationPickedUpOnClass() {
         class Customer {
-            @Bookmarkable(BookmarkPolicy.AS_CHILD)
             public void placeOrder(){}
         }
         final Method actionMethod = findMethod(Customer.class, "placeOrder");
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkableAnnotationFacetFactoryTest_class.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkableAnnotationFacetFactoryTest_class.java
index 8b28064..d3d9147 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkableAnnotationFacetFactoryTest_class.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/bookmarkpolicy/BookmarkableAnnotationFacetFactoryTest_class.java
@@ -20,7 +20,6 @@
 package org.apache.isis.core.metamodel.facets.object.bookmarkpolicy;
 
 import org.apache.isis.applib.annotation.BookmarkPolicy;
-import org.apache.isis.applib.annotation.Bookmarkable;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
@@ -48,7 +47,6 @@ public class BookmarkableAnnotationFacetFactoryTest_class extends AbstractFacetF
     }
 
     public void testBookmarkableAnnotationPickedUpOnClass() {
-        @Bookmarkable(BookmarkPolicy.AS_CHILD)
         class Customer {
         }
 
diff --git a/todo-deprecation-list.txt b/todo-deprecation-list.txt
index fa71f54..f7e78af 100644
--- a/todo-deprecation-list.txt
+++ b/todo-deprecation-list.txt
@@ -10,13 +10,9 @@ org.apache.isis.applib
     DomainObjectContainer.java  - entire class
 
 
-
-
 org.apache.isis.applib.annotation
 
 
-    AutoComplete.java - entire annotation, use @DomainObject(autoComplete...=...)
-    Bookmarkable.java - entire annotation, use @DomainObjectLayout(bookmarking=...)
 
     Bulk.java - entire annotation, use @Action(invokeOn=...)
     Bulk.InteractionContext - entire service, use ActionInvocationContext service instead
@@ -320,6 +316,10 @@ org.apache.isis.applib.annotation
     PublishingPayloadFactoryForAction.java - entire annotation, replaced with simpler PublisherService SPI
     PublishingPayloadFactoryForObject.java - entire annotation, replaced with simpler PublisherService SPI
 
+    AutoComplete.java - entire annotation, use @DomainObject(autoComplete...=...)
+
+    Bookmarkable.java - entire annotation, use @DomainObjectLayout(bookmarking=...)
+
     ActionSemantics.java  - entire annotation, use @Action(semantics=...)
     Idempotent.java - entire annotation, use @Action(semantics=...) instead.
     QueryOnly.java - entire annotation, use @Action(semantics=...) instead.

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