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 2020/01/05 18:13:42 UTC
[isis] 01/02: ISIS-2253: fixes false positive on homepage action
facet count
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 3812891a1ff6ce248ff2cffbf7ac22f30bbf420d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Jan 5 19:12:50 2020 +0100
ISIS-2253: fixes false positive on homepage action facet count
---
.../homepage/annotation/HomePageFacetAnnotationFactory.java | 12 ++++++------
.../services/homepage/HomePageResolverServiceDefault.java | 10 ++++++----
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
index 991b53b..60d874c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/homepage/annotation/HomePageFacetAnnotationFactory.java
@@ -20,13 +20,13 @@
package org.apache.isis.metamodel.facets.actions.homepage.annotation;
import java.util.HashSet;
-import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.annotation.HomePage;
-import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.facetapi.FacetUtil;
import org.apache.isis.metamodel.facetapi.FeatureType;
import org.apache.isis.metamodel.facetapi.MetaModelRefiner;
@@ -75,7 +75,7 @@ implements MetaModelRefiner {
private Visitor newValidatorVisitor() {
return new MetaModelValidatorVisiting.SummarizingVisitor() {
- private final List<ObjectAction> actionsHavingHomePageFacet = _Lists.newArrayList();
+ private final Map<String, ObjectAction> actionsHavingHomePageFacet = _Maps.newHashMap();
@Override
public boolean visit(ObjectSpecification objectSpec, MetaModelValidator validator) {
@@ -87,7 +87,7 @@ implements MetaModelRefiner {
.filter(objectAction->objectAction.containsFacet(HomePageFacet.class))
.forEach(objectAction->{
- actionsHavingHomePageFacet.add(objectAction);
+ actionsHavingHomePageFacet.put(objectAction.getId(), objectAction);
// TODO: it would be good to flag if the facet is found on any non-services, however
// ObjectSpecification.isService(...) can only be trusted once a PersistenceSession
@@ -105,12 +105,12 @@ implements MetaModelRefiner {
public void summarize(MetaModelValidator validator) {
if(actionsHavingHomePageFacet.size()>1) {
- final Set<String> homepageActionIdSet = actionsHavingHomePageFacet.stream()
+ final Set<String> homepageActionIdSet = actionsHavingHomePageFacet.values().stream()
.map(ObjectAction::getIdentifier)
.map(Identifier::toClassAndNameIdentityString)
.collect(Collectors.toCollection(HashSet::new));
- for (val objectAction : actionsHavingHomePageFacet) {
+ for (val objectAction : actionsHavingHomePageFacet.values()) {
val actionIdentifier = objectAction.getIdentifier();
val actionId = actionIdentifier.toClassAndNameIdentityString();
val colission = homepageActionIdSet.stream()
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java
index 8427e9c..bf3cd28 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java
@@ -28,9 +28,10 @@ import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.HomePage;
+import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.apache.isis.applib.annotation.ViewModel;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.registry.ServiceRegistry;
@@ -51,14 +52,12 @@ import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
import lombok.val;
-import lombok.extern.log4j.Log4j2;
@Service
@Named("isisRuntimeServices.HomePageResolverServiceDefault")
@Order(OrderPrecedence.MIDPOINT)
@Primary
@Qualifier("Default")
-@Log4j2
public class HomePageResolverServiceDefault implements HomePageResolverService {
@Inject private FactoryService factoryService;
@@ -124,7 +123,10 @@ public class HomePageResolverServiceDefault implements HomePageResolverService {
return homePageAction;
}
- @Vetoed @ViewModel
+ @Vetoed
+ @DomainObject(
+ nature = Nature.INMEMORY_ENTITY,
+ objectType = "isisRuntimeServices.HomePageResolverServiceDefault.HomePageActionContainer")
public static class HomePageActionContainer {
@Inject private FactoryService factoryService;