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));
- }
- }
-
}
// ////////////////////////////////////////////////////////////////////////////