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 2021/08/24 04:52:24 UTC

[isis] branch master updated: ISIS-2856: remove 'namedEscaped', 'isSafe', '@Facets'

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 bd857f9  ISIS-2856: remove 'namedEscaped', 'isSafe', '@Facets'
bd857f9 is described below

commit bd857f967a82e5f34dd94f76aefa84e3f6e1b288
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Aug 24 06:52:17 2021 +0200

    ISIS-2856: remove 'namedEscaped', 'isSafe', '@Facets'
---
 .../isis/applib/annotation/CollectionLayout.java   |  10 ---
 .../org/apache/isis/applib/annotation/Facets.java  |  65 --------------
 .../isis/applib/annotation/ParameterLayout.java    |  12 ---
 .../apache/isis/applib/annotation/SemanticsOf.java |   8 --
 .../facets/object/facets/FacetsFacet.java          |  47 ----------
 .../facets/object/facets/FacetsFacetAbstract.java  | 100 ---------------------
 .../facets/annotation/FacetsFacetAnnotation.java   |  33 -------
 .../annotation/FacetsFacetAnnotationFactory.java   |  59 ------------
 .../dflt/ProgrammingModelFacetsJava8.java          |   3 -
 .../specloader/specimpl/FacetedMethodsBuilder.java |  22 -----
 10 files changed, 359 deletions(-)

diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
index f7b611c..8536cae 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/CollectionLayout.java
@@ -111,21 +111,11 @@ public @interface CollectionLayout {
      * @see PropertyLayout#named()
      * @see DomainObjectLayout#named()
      * @see DomainServiceLayout#named()
-     * @see CollectionLayout#namedEscaped()
      */
     String named()
             default "";
 
     /**
-     * A flag indicating whether the value of {@linkplain #named()} should be HTML escaped or not.
-     *
-     * @see CollectionLayout#named()
-     */
-    @Deprecated
-    boolean namedEscaped()
-            default true;
-
-    /**
      * The page size for instances of this class when rendered within
      * a table.
      *
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Facets.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Facets.java
deleted file mode 100644
index 351e65f..0000000
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Facets.java
+++ /dev/null
@@ -1,65 +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 that the class has additional facets, and specifies the how to
- * obtain the <tt>FacetFactory</tt> to manufacture them.
- *
- * <p>
- * At least one named factory (as per {@link #facetFactoryNames()}) or one class
- * factory (as per {@link #facetFactoryClasses()}) should be specified.
- * @since 1.x {@index}
- * @deprecated currently alternatively works with MetaModelRefiner(s),
- * but ultimately FacetFactory(s) should be managed by Spring
- */
-@Inherited
-@Target({ ElementType.TYPE })
-@Retention(RetentionPolicy.RUNTIME)
-@Deprecated
-public @interface Facets {
-
-    /**
-     * Array of fully qualified names of classes each implementing
-     * <tt>org.apache.isis.core.metamodel.facets.FacetFactory</tt>.
-     *
-     * <p>
-     * Either the array provided by this method or by
-     * {@link #facetFactoryClasses()} should be non-empty.
-     */
-    String[] facetFactoryNames() default {};
-
-    /**
-     * Array of {@link Class}s, each indicating a class implementing
-     * <tt>org.apache.isis.core.metamodel.facets.FacetFactory</tt>.
-     *
-     * <p>
-     * Either the array provided by this method or by
-     * {@link #facetFactoryNames()} should be non-empty.
-     */
-    Class<?>[] facetFactoryClasses() default {};
-
-}
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
index bb1fa72..49c4f3c 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
@@ -97,23 +97,11 @@ public @interface ParameterLayout {
      * @see CollectionLayout#named()
      * @see DomainObjectLayout#named()
      * @see DomainServiceLayout#named()
-     * @see ParameterLayout#namedEscaped()
      */
     String named()
             default "";
 
     /**
-     * A flag indicating whether the value of {@linkplain #named()} should be HTML escaped or not.
-     *
-     * @see PropertyLayout#namedEscaped()
-     * @see CollectionLayout#namedEscaped()
-     * @see ParameterLayout#named()
-     */
-    @Deprecated
-    boolean namedEscaped()
-            default true;
-
-    /**
      * For string parameters (and properties), whether to render as a text area
      * over multiple lines.
      *
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java
index 10c16b1..dab8155 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java
@@ -129,14 +129,6 @@ public enum SemanticsOf {
         return isSafeAndRequestCacheable() || this == SAFE;
     }
 
-    /**
-     * @deprecated - use {@link #isSafeInNature()} instead (avoid any ambiguity).
-     */
-    @Deprecated
-    public boolean isSafe() {
-        return isSafeInNature();
-    }
-
     public boolean isSafeAndRequestCacheable() {
         return this == SAFE_AND_REQUEST_CACHEABLE;
     }
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacet.java
deleted file mode 100644
index 2f18d9a..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacet.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.core.metamodel.facets.object.facets;
-
-import org.apache.isis.applib.annotation.Facets;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.FacetFactory;
-
-/**
- * Indicates that this class has additional arbitrary facets, to be processed.
- *
- * <p>
- * Corresponds to the {@link Facets} annotation in the applib.
- *
- * <p>
- * <i>This</i> {@link Facet} allows the {@link FacetFactory}(s) that will create
- * those {@link Facet}s to be accessed. Which, admittedly, is rather confusing.
- */
-public interface FacetsFacet extends Facet {
-
-    /**
-     * Returns the fully qualified class of the facet factory, which should be
-     * {@link Class#isAssignableFrom(Class)} {@link FacetFactory}.
-     *
-     * <p>
-     * Includes both the named facet factories and those identified directly by
-     * class. However, all are guaranteed to implement {@link FacetFactory}.
-     */
-    public Class<? extends FacetFactory>[] facetFactories();
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java
deleted file mode 100644
index 13e08aa..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/FacetsFacetAbstract.java
+++ /dev/null
@@ -1,100 +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.core.metamodel.facets.object.facets;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.function.BiConsumer;
-
-import org.apache.isis.commons.internal.factory._InstanceUtil;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.FacetFactory;
-
-import lombok.extern.log4j.Log4j2;
-
-@Log4j2
-public abstract class FacetsFacetAbstract
-extends FacetAbstract
-implements FacetsFacet {
-
-    private static final Class<? extends Facet> type() {
-        return FacetsFacet.class;
-    }
-
-    private final Class<? extends FacetFactory>[] facetFactories;
-
-    public FacetsFacetAbstract(final String[] names, final Class<?>[] classes, final FacetHolder holder) {
-        super(type(), holder);
-        final List<Class<? extends FacetFactory>> facetFactories = new ArrayList<Class<? extends FacetFactory>>();
-        for (final String name : names) {
-            final Class<? extends FacetFactory> facetFactory = facetFactoryOrNull(name);
-            if (facetFactory != null) {
-                facetFactories.add(facetFactory);
-            }
-        }
-        for (final Class<?> classe : classes) {
-            final Class<? extends FacetFactory> facetFactory = facetFactoryOrNull(classe);
-            if (facetFactory != null) {
-                facetFactories.add(facetFactory);
-            }
-        }
-        this.facetFactories = asArray(facetFactories);
-    }
-
-    @SuppressWarnings("unchecked")
-    private Class<? extends FacetFactory>[] asArray(final List<Class<? extends FacetFactory>> facetFactories) {
-        return facetFactories.toArray(new Class[] {});
-    }
-
-    @Override
-    public Class<? extends FacetFactory>[] facetFactories() {
-        return facetFactories;
-    }
-
-    private Class<? extends FacetFactory> facetFactoryOrNull(final String classCandidateName) {
-        if (classCandidateName == null) {
-            return null;
-        }
-        Class<?> classCandidate = null;
-        try {
-            classCandidate = _InstanceUtil.loadClass(classCandidateName);
-            return facetFactoryOrNull(classCandidate);
-        } catch (final Exception ex) {
-            log.warn("failed to load class by name {}", classCandidateName, ex);
-            return null;
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private Class<? extends FacetFactory> facetFactoryOrNull(final Class<?> classCandidate) {
-        if (classCandidate == null) {
-            return null;
-        }
-        return (Class<? extends FacetFactory>) (FacetFactory.class.isAssignableFrom(classCandidate) ? classCandidate : null);
-    }
-
-    @Override
-    public void visitAttributes(final BiConsumer<String, Object> visitor) {
-        super.visitAttributes(visitor);
-        visitor.accept("facetFactories", facetFactories);
-    }
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/annotation/FacetsFacetAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/annotation/FacetsFacetAnnotation.java
deleted file mode 100644
index d92c410..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/annotation/FacetsFacetAnnotation.java
+++ /dev/null
@@ -1,33 +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.core.metamodel.facets.object.facets.annotation;
-
-import org.apache.isis.applib.annotation.Facets;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facets.object.facets.FacetsFacetAbstract;
-
-public class FacetsFacetAnnotation
-extends FacetsFacetAbstract {
-
-    public FacetsFacetAnnotation(final Facets annotation, final FacetHolder holder) {
-        super(annotation.facetFactoryNames(), annotation.facetFactoryClasses(), holder);
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/annotation/FacetsFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/annotation/FacetsFacetAnnotationFactory.java
deleted file mode 100644
index 04ecfa4..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/facets/annotation/FacetsFacetAnnotationFactory.java
+++ /dev/null
@@ -1,59 +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.core.metamodel.facets.object.facets.annotation;
-
-import java.util.Optional;
-
-import javax.inject.Inject;
-
-import org.apache.isis.applib.annotation.Facets;
-import org.apache.isis.core.metamodel.context.MetaModelContext;
-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.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.facets.FacetsFacet;
-
-public class FacetsFacetAnnotationFactory extends FacetFactoryAbstract {
-
-    @Inject
-    public FacetsFacetAnnotationFactory(final MetaModelContext mmc) {
-        super(mmc, FeatureType.OBJECTS_ONLY);
-    }
-
-    @Override
-    public void process(final ProcessClassContext processClassContaxt) {
-        final Facets annotation = processClassContaxt.synthesizeOnType(Facets.class).orElse(null);
-        FacetUtil.addFacetIfPresent(create(annotation, processClassContaxt.getFacetHolder()));
-    }
-
-    /**
-     * Returns a {@link FacetsFacet} impl provided that at least one valid
-     * {@link FacetsFacet#facetFactories() factory} was specified.
-     */
-    private Optional<FacetsFacetAnnotation> create(final Facets annotation, final FacetHolder holder) {
-
-        return Optional.ofNullable(annotation)
-        .map(facets->new FacetsFacetAnnotation(facets, holder))
-        .filter(facetsFacetAnnotation->facetsFacetAnnotation.facetFactories().length > 0);
-
-    }
-
-}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
index 966b079..caf2f6c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava8.java
@@ -58,7 +58,6 @@ import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnn
 import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DomainObjectLayoutFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.facets.annotation.FacetsFacetAnnotationFactory;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.hidden.HiddenTypeFacetDerivedFromAuthorizationFactory;
 import org.apache.isis.core.metamodel.facets.object.hidden.method.HiddenObjectFacetViaMethodFactory;
@@ -370,8 +369,6 @@ extends ProgrammingModelAbstract {
 
         addFactory(FacetProcessingOrder.Z1_FINALLY, new ActionChoicesForCollectionParameterFacetFactory(mmc));
 
-        addFactory(FacetProcessingOrder.Z1_FINALLY, new FacetsFacetAnnotationFactory(mmc));
-
         addFactory(FacetProcessingOrder.Z1_FINALLY, new ViewModelSemanticCheckingFacetFactory(mmc));
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
index a4faab3..4766c65 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/FacetedMethodsBuilder.java
@@ -35,7 +35,6 @@ import org.springframework.lang.Nullable;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.exceptions.UnrecoverableException;
 import org.apache.isis.applib.exceptions.unrecoverable.MetaModelException;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._NullSafe;
@@ -50,12 +49,9 @@ import org.apache.isis.core.metamodel.context.HasMetaModelContext;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facets.FacetFactory;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
 import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.object.facets.FacetsFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
@@ -179,24 +175,6 @@ implements HasMetaModelContext {
         // process facets at object level
         // this will also remove some methods, such as the superclass methods.
         getFacetProcessor().process(introspectedClass, methodRemover, inspectedTypeSpec);
-
-        // if this class has additional facets (as per @Facets), then process
-        // them.
-        final FacetsFacet facetsFacet = inspectedTypeSpec.getFacet(FacetsFacet.class);
-        if (facetsFacet != null) {
-            final Class<? extends FacetFactory>[] facetFactories = facetsFacet.facetFactories();
-            for (final Class<? extends FacetFactory> facetFactorie : facetFactories) {
-                FacetFactory facetFactory;
-                try {
-                    facetFactory = facetFactorie.newInstance();
-                } catch (final InstantiationException | IllegalAccessException e) {
-                    throw new UnrecoverableException(e);
-                }
-                getFacetProcessor().injectDependenciesInto(facetFactory);
-                facetFactory.process(new ProcessClassContext(introspectedClass, methodRemover, inspectedTypeSpec));
-            }
-        }
-
     }
 
     // ////////////////////////////////////////////////////////////////////////////