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/01/29 18:13:50 UTC

[isis] branch master updated: ISIS-2510: more metamodel recusrive lookup fixes

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 bb3d312  ISIS-2510: more metamodel recusrive lookup fixes
bb3d312 is described below

commit bb3d312c322c8e915920fe495f7748679ba043fd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jan 29 19:13:31 2021 +0100

    ISIS-2510: more metamodel recusrive lookup fixes
---
 .../specloader/specimpl/ObjectMemberContainer.java   | 20 +++++++++++---------
 .../secman/api/permission/ApplicationPermission.java | 19 ++++++++++++++-----
 .../domainmodel/DomainModelTest_usingGoodDomain.java |  4 ----
 .../wicket/model/models/EntityCollectionModel.java   |  1 +
 4 files changed, 26 insertions(+), 18 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java
index f649d50..779465a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberContainer.java
@@ -80,15 +80,16 @@ implements
             final MixedIn contributed) {
         
         if(isTypeHierarchyRoot()) {
-            return Stream.empty(); // stop as we reached the Object class, which does not contribute actions 
+            return streamDeclaredActions(contributed); // stop going deeper
         }
-
+        
         val ids = _Sets.<String>newHashSet();
         
         return Stream.concat(
-                streamDeclaredActions(contributed), 
-                superclass().streamActions(contributed))
-                .filter(action->ids.add(action.getId())); // ensure we don't emit duplicates
+            streamDeclaredActions(contributed), 
+            superclass().streamActions(contributed)
+        )
+        .filter(action->ids.add(action.getId())); // ensure we don't emit duplicates
     }
     
     // -- ASSOCIATIONS
@@ -111,15 +112,16 @@ implements
     public Stream<ObjectAssociation> streamAssociations(MixedIn contributed) {
         
         if(isTypeHierarchyRoot()) {
-            return Stream.empty(); // stop as we reached the Object class, which does not contribute associations 
+            return streamDeclaredAssociations(contributed); // stop going deeper
         }
-
+        
         val ids = _Sets.<String>newHashSet();
         
         return Stream.concat(
                 streamDeclaredAssociations(contributed), 
-                superclass().streamAssociations(contributed))
-                .filter(association->ids.add(association.getId())); // ensure we don't emit duplicates
+                superclass().streamAssociations(contributed)
+        )
+        .filter(association->ids.add(association.getId())); // ensure we don't emit duplicates
     }
     
 }
diff --git a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java
index 8c5c04e..0b510e9 100644
--- a/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java
+++ b/extensions/security/secman/api/src/main/java/org/apache/isis/extensions/secman/api/permission/ApplicationPermission.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureId;
 import org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureType;
 import org.apache.isis.extensions.secman.api.IsisModuleExtSecmanApi;
@@ -61,7 +62,7 @@ import lombok.val;
  * </ul>
  * </p>
  */
-@DomainObject
+@DomainObject(objectType = "isis.ext.secman.IApplicationPermission")
 public interface ApplicationPermission {
     
     // -- DOMAIN EVENTS
@@ -123,17 +124,23 @@ public interface ApplicationPermission {
 
     @Property
     @MemberOrder(name="Feature", sequence = "5.1")
-    String getFeatureFqn();
+    default String getFeatureFqn() {
+        throw _Exceptions.unsupportedOperation("please implement me");
+    }
     void setFeatureFqn(String featureFqn);
     
     @Property
     @MemberOrder(name="Permissions", sequence = "2")
-    ApplicationPermissionRule getRule();
+    default ApplicationPermissionRule getRule() {
+        throw _Exceptions.unsupportedOperation("please implement me");
+    }
     void setRule(ApplicationPermissionRule rule);
     
     @Property
     @MemberOrder(name="Permissions", sequence = "3")
-    ApplicationPermissionMode getMode();
+    default ApplicationPermissionMode getMode() {
+        throw _Exceptions.unsupportedOperation("please implement me");
+    }
     void setMode(ApplicationPermissionMode changing);
     
     @Property
@@ -141,7 +148,9 @@ public interface ApplicationPermission {
             hidden=Where.REFERENCES_PARENT
             )
     @MemberOrder(name="Role", sequence = "1")
-    ApplicationRole getRole();
+    default ApplicationRole getRole() {
+        throw _Exceptions.unsupportedOperation("please implement me");
+    }
     void setRole(ApplicationRole applicationRole);
     
     // -- HELPER
diff --git a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
index 329e4e4..2494ee4 100644
--- a/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
+++ b/regressiontests/stable/src/test/java/org/apache/isis/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
@@ -190,10 +190,6 @@ class DomainModelTest_usingGoodDomain {
     @MethodSource("provideProperMemberInheritanceTypes")
     void metamodelContributingMembers_shouldBeInheritable(Class<?> type) {
         
-        if(type.isInterface()) {
-            System.out.println("if");
-        }
-        
         val holderSpec = specificationLoader.loadSpecification(type, 
                         IntrospectionState.TYPE_AND_MEMBERS_INTROSPECTED);
         
diff --git a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
index f023f6d..a5fef46 100644
--- a/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
+++ b/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityCollectionModel.java
@@ -34,6 +34,7 @@ import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.commons.internal.collections._Maps;
+import org.apache.isis.commons.internal.debug._Probe;
 import org.apache.isis.commons.internal.factory._InstanceUtil;
 import org.apache.isis.core.metamodel.commons.ClassExtensions;
 import org.apache.isis.core.metamodel.commons.ClassUtil;