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 2022/05/21 05:38:22 UTC

[isis] branch master updated (cde643192d -> 2b80679289)

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

ahuber pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


    from cde643192d ISIS-3051: consolidate defaults and choices  post-processors
     new 9a1f2e6c63 ISIS-3051: FacetProcessor optimization
     new 2b80679289 ISIS-3051: fixes prev. commit

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ...arameterChoicesFacetFromParentedCollection.java |  2 +-
 ...meterDefaultsFacetFromAssociatedCollection.java |  2 +-
 .../ChoicesAndDefaultsPostProcessor.java           |  6 ++----
 .../TypicalLengthFromTypePostProcessor.java        |  2 +-
 .../dflt/ProgrammingModelFacetsJava11.java         |  4 ++--
 .../specloader/facetprocessor/FacetProcessor.java  | 25 ++++++++--------------
 .../DomainModelTest_usingGoodDomain.java           |  4 ++--
 7 files changed, 18 insertions(+), 27 deletions(-)
 rename core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/{collparam => param}/ActionParameterChoicesFacetFromParentedCollection.java (97%)
 rename core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/{collparam => param}/ActionParameterDefaultsFacetFromAssociatedCollection.java (96%)
 rename core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/{propparam => param}/ChoicesAndDefaultsPostProcessor.java (95%)
 rename core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/{propparam => param}/TypicalLengthFromTypePostProcessor.java (98%)


[isis] 01/02: ISIS-3051: FacetProcessor optimization

Posted by ah...@apache.org.
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

commit 9a1f2e6c630e0bd80587088deddfdafacc850010
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat May 14 08:31:58 2022 +0200

    ISIS-3051: FacetProcessor optimization
    
    - don't run the same processor more than once
---
 .../specloader/facetprocessor/FacetProcessor.java  | 25 ++++++++--------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
index 68650c062f..b475e5fafc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
@@ -24,6 +24,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.function.Consumer;
+import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.isis.applib.annotation.Introspection.IntrospectionPolicy;
@@ -375,27 +376,19 @@ implements HasMetaModelContext{
             final MethodRemover methodRemover,
             final FacetedMethodParameter facetedMethodParameter) {
 
-        for (val featureType : FeatureType.PARAMETERS_ONLY) {
-            processParams(introspectedClass, introspectionPolicy, method, methodRemover, facetedMethodParameter, featureType);
-        }
-    }
-
-    public void processParams(
-            final Class<?> introspectedClass,
-            final IntrospectionPolicy introspectionPolicy,
-            final Method method,
-            final MethodRemover methodRemover,
-            final FacetedMethodParameter facetedMethodParameter,
-            final FeatureType featureType) {
-
         val processParameterContext =
-                new ProcessParameterContext(introspectedClass, introspectionPolicy, method, methodRemover, facetedMethodParameter);
+                new ProcessParameterContext(introspectedClass, introspectionPolicy,
+                        method, methodRemover, facetedMethodParameter);
 
-        factoryListByFeatureType.get().getOrElseEmpty(featureType)
+        val factoryCache = factoryListByFeatureType.get();
+
+        FeatureType.PARAMETERS_ONLY.stream()
+        .map(factoryCache::getOrElseEmpty)
+        .flatMap(List::stream)
+        .collect(Collectors.toSet())
         .forEach(facetFactory->facetFactory.processParams(processParameterContext));
     }
 
-
     private void clearCaches() {
         factoryListByFeatureType.clear();
         methodPrefixes.clear();


[isis] 02/02: ISIS-3051: fixes prev. commit

Posted by ah...@apache.org.
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

commit 2b8067928972da6b174e9c4e57f53dd6865ac045
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat May 14 09:39:53 2022 +0200

    ISIS-3051: fixes prev. commit
---
 .../ActionParameterChoicesFacetFromParentedCollection.java          | 2 +-
 .../ActionParameterDefaultsFacetFromAssociatedCollection.java       | 2 +-
 .../{propparam => param}/ChoicesAndDefaultsPostProcessor.java       | 6 ++----
 .../{propparam => param}/TypicalLengthFromTypePostProcessor.java    | 2 +-
 .../metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java     | 4 ++--
 .../testdomain/domainmodel/DomainModelTest_usingGoodDomain.java     | 4 ++--
 6 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/collparam/ActionParameterChoicesFacetFromParentedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
similarity index 97%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/collparam/ActionParameterChoicesFacetFromParentedCollection.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
index 1eb24c6bb9..7d3eabb50f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/collparam/ActionParameterChoicesFacetFromParentedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.postprocessors.collparam;
+package org.apache.isis.core.metamodel.postprocessors.param;
 
 import java.util.function.BiConsumer;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/collparam/ActionParameterDefaultsFacetFromAssociatedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java
similarity index 96%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/collparam/ActionParameterDefaultsFacetFromAssociatedCollection.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java
index df973ca962..5f83a24519 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/collparam/ActionParameterDefaultsFacetFromAssociatedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.postprocessors.collparam;
+package org.apache.isis.core.metamodel.postprocessors.param;
 
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/propparam/ChoicesAndDefaultsPostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
similarity index 95%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/propparam/ChoicesAndDefaultsPostProcessor.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
index a5d7cc91b0..9e02a71689 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/propparam/ChoicesAndDefaultsPostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ChoicesAndDefaultsPostProcessor.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.postprocessors.propparam;
+package org.apache.isis.core.metamodel.postprocessors.param;
 
 import javax.inject.Inject;
 
@@ -34,8 +34,6 @@ import org.apache.isis.core.metamodel.facets.properties.choices.enums.PropertyCh
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.fromtype.PropertyDefaultFacetFromDefaultedFacet;
 import org.apache.isis.core.metamodel.postprocessors.ObjectSpecificationPostProcessorAbstract;
-import org.apache.isis.core.metamodel.postprocessors.collparam.ActionParameterChoicesFacetFromParentedCollection;
-import org.apache.isis.core.metamodel.postprocessors.collparam.ActionParameterDefaultsFacetFromAssociatedCollection;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -153,7 +151,7 @@ extends ObjectSpecificationPostProcessorAbstract {
     }
 
     private static boolean hasMemberLevelChoices(final OneToOneAssociation prop) {
-        return prop.containsNonFallbackFacet(PropertyDefaultFacet.class)
+        return prop.containsNonFallbackFacet(PropertyChoicesFacet.class)
                 || prop.containsNonFallbackFacet(PropertyAutoCompleteFacet.class);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/propparam/TypicalLengthFromTypePostProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java
similarity index 98%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/propparam/TypicalLengthFromTypePostProcessor.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java
index cbed874658..b3c9ebd61f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/propparam/TypicalLengthFromTypePostProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/TypicalLengthFromTypePostProcessor.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.core.metamodel.postprocessors.propparam;
+package org.apache.isis.core.metamodel.postprocessors.param;
 
 import javax.inject.Inject;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java
index 2dbc93d62b..a8dc92b7eb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java
@@ -93,9 +93,9 @@ import org.apache.isis.core.metamodel.postprocessors.allbutparam.authorization.A
 import org.apache.isis.core.metamodel.postprocessors.members.TweakDomainEventsForMixinPostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.members.navigation.NavigationFacetFromHiddenTypePostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.object.ProjectionFacetsPostProcessor;
+import org.apache.isis.core.metamodel.postprocessors.param.ChoicesAndDefaultsPostProcessor;
+import org.apache.isis.core.metamodel.postprocessors.param.TypicalLengthFromTypePostProcessor;
 import org.apache.isis.core.metamodel.postprocessors.properties.DisabledFromImmutablePostProcessor;
-import org.apache.isis.core.metamodel.postprocessors.propparam.ChoicesAndDefaultsPostProcessor;
-import org.apache.isis.core.metamodel.postprocessors.propparam.TypicalLengthFromTypePostProcessor;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModelAbstract;
 import org.apache.isis.core.metamodel.services.classsubstitutor.ClassSubstitutorRegistry;
 import org.apache.isis.core.metamodel.services.title.TitlesAndTranslationsValidator;
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
index 325b1b2152..2f2cc35eda 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
@@ -59,8 +59,8 @@ import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
 import org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParameterChoicesFacetViaMethod;
 import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
-import org.apache.isis.core.metamodel.postprocessors.collparam.ActionParameterChoicesFacetFromParentedCollection;
-import org.apache.isis.core.metamodel.postprocessors.collparam.ActionParameterDefaultsFacetFromAssociatedCollection;
+import org.apache.isis.core.metamodel.postprocessors.param.ActionParameterChoicesFacetFromParentedCollection;
+import org.apache.isis.core.metamodel.postprocessors.param.ActionParameterDefaultsFacetFromAssociatedCollection;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MixedIn;