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/01/13 18:17:00 UTC

[isis] branch master updated: ISIS-2942: secman: provide more informal metadata

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 4cc62f1  ISIS-2942: secman: provide more informal metadata
4cc62f1 is described below

commit 4cc62f1e71a054ba24f80a94db1b7aa9835452b4
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 13 19:16:51 2022 +0100

    ISIS-2942: secman: provide more informal metadata
    
    - also some minor fixes
---
 .../specloader/SpecificationLoaderDefault.java      |  2 +-
 .../applib/role/man/ApplicationRoleManager.java     | 21 +++++++++++++++++++++
 .../dom/ApplicationTenancyRepositoryAbstract.java   |  2 +-
 .../tenancy/man/ApplicationTenancyManager.java      | 21 +++++++++++++++++++++
 .../applib/user/man/ApplicationUserManager.java     | 21 +++++++++++++++++++++
 5 files changed, 65 insertions(+), 2 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
index c16b75c..9863227 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderDefault.java
@@ -584,7 +584,7 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
             }
 
             if(sort.isToBeIntrospected()) {
-                log.error("Introspecting class '{}' of sort {}, after the metamodel had been fully introspected and is now locked. " +
+                log.warn("Introspecting class '{}' of sort {}, after the metamodel had been fully introspected and is now locked. " +
                       "One reason this can happen is if you are attempting to invoke an action through the WrapperFactory " +
                       "on a service class incorrectly annotated with Spring's @Service annotation instead of " +
                       "@DomainService.",
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/man/ApplicationRoleManager.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/man/ApplicationRoleManager.java
index 1f2cbd9..4db41fd 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/man/ApplicationRoleManager.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/role/man/ApplicationRoleManager.java
@@ -18,10 +18,17 @@
  */
 package org.apache.isis.extensions.secman.applib.role.man;
 
+import javax.inject.Inject;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.extensions.secman.applib.IsisModuleExtSecmanApplib;
+import org.apache.isis.extensions.secman.applib.role.dom.ApplicationRole;
 
 @DomainObject(
         nature = Nature.VIEW_MODEL,
@@ -35,6 +42,20 @@ public class ApplicationRoleManager {
         return "Application Role Manager";
     }
 
+    // -- INFORMAL METADATA
+
+    @Inject private SpecificationLoader specLoader;
+
+    @Property @PropertyLayout(fieldSetId = "metadata")
+    public String getRoleType() {
+        return specLoader.specForLogicalTypeName(ApplicationRole.LOGICAL_TYPE_NAME)
+                .map(ObjectSpecification::getCorrespondingClass)
+                .map(Class::getName)
+                .orElse("not found");
+    }
+
+    // --
+
     // behaviour provided by mixins
 
 }
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java
index b180790..24c9193 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/dom/ApplicationTenancyRepositoryAbstract.java
@@ -144,7 +144,7 @@ implements ApplicationTenancyRepository {
     // --
 
     @Override
-    public final Collection<ApplicationTenancy> allTenancies() {
+    public Collection<ApplicationTenancy> allTenancies() {
         return queryResultsCacheProvider.get().execute(
                 () -> allTenanciesNoCache(),
                 ApplicationTenancyRepositoryAbstract.class, "allTenancies");
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java
index 7c5eb46..56381c4 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/tenancy/man/ApplicationTenancyManager.java
@@ -18,10 +18,17 @@
  */
 package org.apache.isis.extensions.secman.applib.tenancy.man;
 
+import javax.inject.Inject;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.extensions.secman.applib.IsisModuleExtSecmanApplib;
+import org.apache.isis.extensions.secman.applib.tenancy.dom.ApplicationTenancy;
 
 @DomainObject(
         nature = Nature.VIEW_MODEL,
@@ -35,6 +42,20 @@ public class ApplicationTenancyManager {
         return "Application Tenancy Manager";
     }
 
+    // -- INFORMAL METADATA
+
+    @Inject private SpecificationLoader specLoader;
+
+    @Property @PropertyLayout(fieldSetId = "metadata")
+    public String getTenancyType() {
+        return specLoader.specForLogicalTypeName(ApplicationTenancy.LOGICAL_TYPE_NAME)
+                .map(ObjectSpecification::getCorrespondingClass)
+                .map(Class::getName)
+                .orElse("not found");
+    }
+
+    // --
+
     // behaviour provided by mixins
 
 }
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/ApplicationUserManager.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/ApplicationUserManager.java
index 770697b..3f8fd4e 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/ApplicationUserManager.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/ApplicationUserManager.java
@@ -18,10 +18,17 @@
  */
 package org.apache.isis.extensions.secman.applib.user.man;
 
+import javax.inject.Inject;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.extensions.secman.applib.IsisModuleExtSecmanApplib;
+import org.apache.isis.extensions.secman.applib.user.dom.ApplicationUser;
 
 @DomainObject(
         nature = Nature.VIEW_MODEL,
@@ -35,6 +42,20 @@ public class ApplicationUserManager {
         return "Application User Manager";
     }
 
+    // -- INFORMAL METADATA
+
+    @Inject private SpecificationLoader specLoader;
+
+    @Property @PropertyLayout(fieldSetId = "metadata")
+    public String getUserType() {
+        return specLoader.specForLogicalTypeName(ApplicationUser.LOGICAL_TYPE_NAME)
+                .map(ObjectSpecification::getCorrespondingClass)
+                .map(Class::getName)
+                .orElse("not found");
+    }
+
+    // --
+
     // behaviour provided by mixins
 
 }