You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2023/05/22 06:25:39 UTC
[causeway] 01/04: CAUSEWAY-2485: cleans up Secman SPI example
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch CAUSEWAY-2485
in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 5e0b1f5375e1b2c93a85bad97167f13b57cdd048
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun May 21 16:47:50 2023 +0100
CAUSEWAY-2485: cleans up Secman SPI example
---
.../src/main/java/demoapp/dom/DemoModuleJpa.java | 2 +-
.../java/demoapp/dom/featured/FeaturedMenu.java | 2 +
.../causewayext/CausewayExtTypesMenu.java | 4 +-
.../cal/CausewayCalendarEvents-common.adoc | 0
.../cal/CausewayCalendarEvents-description.adoc | 0
.../causewayext/cal/CausewayCalendarEvents.java | 6 +--
.../cal/CausewayCalendarEvents.layout.xml | 0
.../cal/holder/CausewayCalendarEventHolder.java | 2 +-
.../cal/holder/CausewayCalendarEventHolder2.java | 2 +-
...ausewayCalendarEventHolder_actionReturning.java | 2 +-
...endarEventHolder_actionReturningCollection.java | 2 +-
.../CausewayCalendarEventHolder_mixinProperty.java | 2 +-
...EventHolder_updateReadOnlyOptionalProperty.java | 2 +-
..._updateReadOnlyOptionalPropertyWithChoices.java | 2 +-
...CalendarEventHolder_updateReadOnlyProperty.java | 2 +-
...ntHolder_updateReadOnlyPropertyWithChoices.java | 2 +-
.../jdo/CausewayCalendarEventJdo-description.adoc | 0
.../cal/jdo/CausewayCalendarEventJdo.java | 5 +-
.../cal/jdo/CausewayCalendarEventJdoEntities.java | 2 +-
.../jpa/CausewayCalendarEventJpa-description.adoc | 0
.../cal/jpa/CausewayCalendarEventJpa.java | 5 +-
.../cal/jpa/CausewayCalendarEventJpaEntities.java | 2 +-
.../persistence/CausewayCalendarEventEntity.java | 4 +-
.../CausewayCalendarEventEntity.layout.xml | 0
.../persistence/CausewayCalendarEventSeeding.java | 2 +-
.../cal/samples/CausewayCalendarEventSamples.java | 2 +-
.../vm/CausewayCalendarEventVm-description.adoc | 0
.../cal/vm/CausewayCalendarEventVm.java | 5 +-
.../cal/vm/CausewayCalendarEventVm.layout.xml | 0
.../sse/AsyncActionDemo-description.adoc | 0
.../causewayext/sse/AsyncActionDemo.java | 2 +-
.../causewayext/sse/AsyncActionDemo.layout.xml | 0
.../causewayext/sse/AsyncActionMenu.java | 2 +-
.../causewayext/sse/DemoTask.java | 2 +-
.../causewayext/sse/TaskProgress.java | 2 +-
.../dom/featured/causewayext/sse/package-info.java | 4 ++
.../dom/featured/layout/tabs/TabDemo.layout.xml | 13 ++---
.../src/main/java/demoapp/dom/menubars.layout.xml | 26 ++++-----
.../apptenancy/AppTenancyVm-description.adoc | 62 +++++++++++++---------
.../ApplicationTenancyEvaluatorForDemo.java | 9 +++-
.../dom/types/causewayext/sse/package-info.java | 4 --
41 files changed, 97 insertions(+), 88 deletions(-)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
index 50b6ec5486..9a8858bf77 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
@@ -66,7 +66,7 @@ import demoapp.dom.types.causeway.clobs.jpa.CausewayClobJpa;
import demoapp.dom.types.causeway.localresourcepaths.jpa.CausewayLocalResourcePathJpa;
import demoapp.dom.types.causeway.markups.jpa.CausewayMarkupJpa;
import demoapp.dom.types.causeway.passwords.jpa.CausewayPasswordJpa;
-import demoapp.dom.types.causewayext.cal.jpa.CausewayCalendarEventJpa;
+import demoapp.dom.featured.causewayext.cal.jpa.CausewayCalendarEventJpa;
import demoapp.dom.types.causewayval.asciidocs.jpa.CausewayAsciiDocJpa;
import demoapp.dom.types.causewayval.markdowns.jpa.CausewayMarkdownJpa;
import demoapp.dom.types.causewayval.vegas.jpa.CausewayVegaJpa;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java
index 524c5af568..17f6882a48 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/FeaturedMenu.java
@@ -85,6 +85,8 @@ public class FeaturedMenu {
return 14;
}
+
+
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(cssClassFa="fa-comment", describedAs="Opens the Tooltip-Demo page.")
public DescribedAsVm toolTips(){
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/CausewayExtTypesMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/CausewayExtTypesMenu.java
similarity index 93%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/CausewayExtTypesMenu.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/CausewayExtTypesMenu.java
index f5f4bd82fd..f8f27b6ef0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/CausewayExtTypesMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/CausewayExtTypesMenu.java
@@ -17,7 +17,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext;
+package demoapp.dom.featured.causewayext;
import javax.inject.Named;
@@ -29,7 +29,7 @@ import org.apache.causeway.applib.annotation.NatureOfService;
import org.apache.causeway.applib.annotation.PriorityPrecedence;
import org.apache.causeway.applib.annotation.SemanticsOf;
-import demoapp.dom.types.causewayext.cal.CausewayCalendarEvents;
+import demoapp.dom.featured.causewayext.cal.CausewayCalendarEvents;
@Named("demo.CausewayExtTypesMenu")
@DomainService(
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-common.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-common.adoc
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-common.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-common.adoc
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-description.adoc
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents-description.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents-description.adoc
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.java
similarity index 93%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.java
index d82ce3ea90..310fbed097 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal;
+package demoapp.dom.featured.causewayext.cal;
import java.util.List;
@@ -43,9 +43,9 @@ import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import demoapp.dom._infra.values.ValueHolderRepository;
+import demoapp.dom.featured.causewayext.cal.persistence.CausewayCalendarEventEntity;
+import demoapp.dom.featured.causewayext.cal.vm.CausewayCalendarEventVm;
import demoapp.dom.types.Samples;
-import demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventEntity;
-import demoapp.dom.types.causewayext.cal.vm.CausewayCalendarEventVm;
@XmlRootElement(name = "Demo")
@XmlType
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.layout.xml
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/CausewayCalendarEvents.layout.xml
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/CausewayCalendarEvents.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder.java
index 79fd41fb30..8c287691a3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import javax.inject.Named;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder2.java
similarity index 98%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder2.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder2.java
index 9611f51501..928170357c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder2.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder2.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import org.apache.causeway.applib.annotation.LabelPosition;
import org.apache.causeway.applib.annotation.Property;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java
index 942b312883..3cf8b6adb5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturning.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import org.apache.causeway.applib.annotation.Action;
import org.apache.causeway.applib.annotation.SemanticsOf;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java
index 76cefe8fc8..ed8a6d851f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_actionReturningCollection.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import java.util.Collection;
import java.util.stream.Collectors;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java
index aaca9d1362..2127865c4c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_mixinProperty.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import org.apache.causeway.applib.annotation.Property;
import org.apache.causeway.applib.annotation.PropertyLayout;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java
index 31d47fc3ab..a27999d700 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalProperty.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import org.apache.causeway.applib.annotation.Action;
import org.apache.causeway.applib.annotation.ActionLayout;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java
index 9a0028d99f..6786be8691 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyOptionalPropertyWithChoices.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java
index e8b2cbfa7e..8fd7fa0f78 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyProperty.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import org.apache.causeway.applib.annotation.Action;
import org.apache.causeway.applib.annotation.ActionLayout;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java
index a060f115ba..fff54990ab 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/holder/CausewayCalendarEventHolder_updateReadOnlyPropertyWithChoices.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.holder;
+package demoapp.dom.featured.causewayext.cal.holder;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo-description.adoc
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo.java
index c234fd6394..52b45c2944 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdo.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.jdo;
+package demoapp.dom.featured.causewayext.cal.jdo;
import javax.inject.Named;
import javax.jdo.annotations.Column;
@@ -36,11 +36,10 @@ import org.apache.causeway.applib.annotation.Title;
import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent;
+import demoapp.dom.featured.causewayext.cal.persistence.CausewayCalendarEventEntity;
import lombok.Getter;
import lombok.Setter;
-import demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventEntity;
-
@Profile("demo-jdo")
//tag::class[]
@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java
index f9608a2a34..c5b563ebbf 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jdo/CausewayCalendarEventJdoEntities.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.jdo;
+package demoapp.dom.featured.causewayext.cal.jdo;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa-description.adoc
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa.java
index c8ac538d0b..735ee8806e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpa.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.jpa;
+package demoapp.dom.featured.causewayext.cal.jpa;
import javax.inject.Named;
import javax.persistence.Column;
@@ -38,12 +38,11 @@ import org.apache.causeway.persistence.jpa.applib.integration.CausewayEntityList
import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent;
+import demoapp.dom.featured.causewayext.cal.persistence.CausewayCalendarEventEntity;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import demoapp.dom.types.causewayext.cal.persistence.CausewayCalendarEventEntity;
-
@Profile("demo-jpa")
//tag::class[]
@Entity
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java
index f685c186a6..92b08887b2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/jpa/CausewayCalendarEventJpaEntities.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.jpa;
+package demoapp.dom.featured.causewayext.cal.jpa;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.java
similarity index 91%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.java
index 657f7e450a..0ee658d8a9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.persistence;
+package demoapp.dom.featured.causewayext.cal.persistence;
import javax.inject.Named;
@@ -24,7 +24,7 @@ import org.apache.causeway.applib.annotation.DomainObject;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import demoapp.dom._infra.values.ValueHolder;
-import demoapp.dom.types.causewayext.cal.holder.CausewayCalendarEventHolder2;
+import demoapp.dom.featured.causewayext.cal.holder.CausewayCalendarEventHolder2;
import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventEntity.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventSeeding.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventSeeding.java
similarity index 95%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventSeeding.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventSeeding.java
index 9fafbaf3f1..1e1bd1f14d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/persistence/CausewayCalendarEventSeeding.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/persistence/CausewayCalendarEventSeeding.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.persistence;
+package demoapp.dom.featured.causewayext.cal.persistence;
import javax.inject.Inject;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/samples/CausewayCalendarEventSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/samples/CausewayCalendarEventSamples.java
similarity index 96%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/samples/CausewayCalendarEventSamples.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/samples/CausewayCalendarEventSamples.java
index 14b9d33947..11d31620f7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/samples/CausewayCalendarEventSamples.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/samples/CausewayCalendarEventSamples.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.samples;
+package demoapp.dom.featured.causewayext.cal.samples;
import java.util.stream.Stream;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm-description.adoc
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.java
similarity index 94%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.java
index d80581fcab..9ae401e803 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.cal.vm;
+package demoapp.dom.featured.causewayext.cal.vm;
import javax.inject.Named;
import javax.xml.bind.annotation.XmlAccessType;
@@ -24,7 +24,6 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.causeway.applib.annotation.DomainObject;
import org.apache.causeway.applib.annotation.Editing;
@@ -36,11 +35,11 @@ import org.apache.causeway.applib.annotation.Title;
import org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEvent;
+import demoapp.dom.featured.causewayext.cal.holder.CausewayCalendarEventHolder2;
import lombok.Getter;
import lombok.Setter;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.causewayext.cal.holder.CausewayCalendarEventHolder2;
//tag::class[]
@XmlRootElement(name = "root")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/cal/vm/CausewayCalendarEventVm.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo-description.adoc
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo-description.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo-description.adoc
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.java
similarity index 98%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.java
index 0ffbecb547..cc5a72ffb3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.sse;
+package demoapp.dom.featured.causewayext.sse;
import javax.inject.Inject;
import javax.inject.Named;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.layout.xml
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionDemo.layout.xml
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionDemo.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionMenu.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionMenu.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionMenu.java
index 398d3f31f4..fc07a055fb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/AsyncActionMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/AsyncActionMenu.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.sse;
+package demoapp.dom.featured.causewayext.sse;
import javax.inject.Inject;
import javax.inject.Named;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/DemoTask.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/DemoTask.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/DemoTask.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/DemoTask.java
index b2f613c958..0c1d802ec3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/DemoTask.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/DemoTask.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.sse;
+package demoapp.dom.featured.causewayext.sse;
import java.util.concurrent.atomic.LongAdder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/TaskProgress.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/TaskProgress.java
similarity index 97%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/TaskProgress.java
rename to examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/TaskProgress.java
index ce781d130a..b31a117e8b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/TaskProgress.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/TaskProgress.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.types.causewayext.sse;
+package demoapp.dom.featured.causewayext.sse;
import java.util.concurrent.atomic.LongAdder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/package-info.java b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/package-info.java
new file mode 100644
index 0000000000..6bad946df3
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/causewayext/sse/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * This files are NOT generated.
+ */
+package demoapp.dom.featured.causewayext.sse;
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml
index 6fd1d941e0..fbd48659eb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/featured/layout/tabs/TabDemo.layout.xml
@@ -13,16 +13,13 @@
xmlns:cpt="https://causeway.apache.org/applib/layout/component"
>
<bs3:row>
- <bs3:col span="12" unreferencedActions="true">
- <cpt:domainObject/>
- <cpt:action id="clearHints"/>
- <cpt:action id="downloadLayoutXml"/>
- <cpt:action id="openRestApi"/>
- <cpt:action id="rebuildMetamodel"/>
-
+ <bs3:col span="10" unreferencedActions="true">
+ <cpt:domainObject />
<cpt:action id="doHideField"/>
<cpt:action id="doShowField"/>
-
+ </bs3:col>
+ <bs3:col span="2">
+ <cpt:fieldSet name="" id="sources" />
</bs3:col>
</bs3:row>
<bs3:row>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
index 321aeffd60..5ede0a654e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/menubars.layout.xml
@@ -173,6 +173,10 @@ For latest we use: https://raw.githubusercontent.com/apache/causeway/master/anto
<mb3:named>Core SPIs</mb3:named>
<mb3:serviceAction objectType="demo.ServicesMenu" id="errorReportingService" />
</mb3:section>
+ <mb3:section>
+ <mb3:named>SecMan SPI</mb3:named>
+ <mb3:serviceAction objectType="demo.ExtSecManMenu" id="appTenancy"/>
+ </mb3:section>
</mb3:menu>
<mb3:menu>
@@ -284,28 +288,20 @@ For latest we use: https://raw.githubusercontent.com/apache/causeway/master/anto
</mb3:menu>
<mb3:menu>
- <mb3:named>Extensions</mb3:named>
+ <mb3:named>Featured</mb3:named>
<mb3:section>
- <mb3:named>Wicket Viewer</mb3:named>
+ <mb3:named>Layout</mb3:named>
+ <mb3:serviceAction objectType="demo.FeaturedMenu" id="toolTips" />
+ <mb3:serviceAction objectType="demo.FeaturedMenu" id="tabDemo" />
+ </mb3:section>
+ <mb3:section>
+ <mb3:named>Wicket Extensions</mb3:named>
<mb3:serviceAction objectType="demo.CausewayExtTypesMenu" id="calendarEvents"/>
<mb3:serviceAction objectType="demo.AsyncActionMenu" id="asyncActions">
<cpt:named>SSE</cpt:named>
<cpt:describedAs>Background (Async) Actions</cpt:describedAs>
</mb3:serviceAction>
</mb3:section>
- <mb3:section>
- <mb3:named>SecMan</mb3:named>
- <mb3:serviceAction objectType="demo.ExtSecManMenu" id="appTenancy"/>
- </mb3:section>
- </mb3:menu>
-
- <mb3:menu>
- <mb3:named>Featured</mb3:named>
- <mb3:section>
- <mb3:named>Layout</mb3:named>
- <mb3:serviceAction objectType="demo.FeaturedMenu" id="toolTips" />
- <mb3:serviceAction objectType="demo.FeaturedMenu" id="tabDemo" />
- </mb3:section>
<mb3:section>
<mb3:named>Custom UI</mb3:named>
<mb3:serviceAction objectType="demo.FeaturedMenu" id="whereInTheWorld" />
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc
index bf5191b2ca..85c4fbfb0f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/AppTenancyVm-description.adoc
@@ -2,27 +2,55 @@
Application Tenancy is the idea that certain information "belongs" to one party and should be either not visible or at least not modifiable by some other party.
-The SecMan extension provides a very flexible way of implementing this, through the `ApplicationTenancyEvaluator` SPI.
+The SecMan extension provides a very flexible way of implementing this, through the link:https://causeway.apache.org/refguide/2.0.0-RC1/extensions/index/secman/applib/tenancy/spi/ApplicationTenancyEvaluator.html#section-top[ApplicationTenancyEvaluator] SPI.
This allows a domain service to decide whether to hide or to disable each object for the current user.
-For example:
+[IMPORTANT]
+====
+This SPI is a presentation-layer concern only.
+It does not prevent the domain objects from being retrieved from the data store.
+In particular, there is nothing to prevent "malicious" code from retrieving and interacting with objects from another tenancy.
+====
+
+== How this demo works
+
+On the left hand side is a collection of objects, each with different names.
+There are also two properties that control an implementation of `ApplicationTenancyEvaluator`.
+* The "Hide Regex" determines which objects with a matching name should be hidden.
+For example, "M.\*" will hide those whose name starting "M", while ".*" will hide them all.
+* The "Disable Regex" determines which objects can no longer be modified (when you navigate into them).
+
+In terms of code:
+
+* the SPI implementation is:
++
[source,java]
+.ApplicationTenancyEvaluatorForDemo.java
----
include::ApplicationTenancyEvaluatorForDemo.java[tags=class]
----
<.> implements the SPI.
There can be multiple implementations; all will be checked.
-
<.> whether this implementation handles the type of the domain object being considered.
-This demo application deals only with the `TenantedJdo` entity type.
-
+<.> set by the page object
+This demo application deals only with the `TenantedEntity` entity type.
<.> whether the current user can view the domain object.
+<.> whether the current user can modify (invoke actions, edit the properties of) the domain object.
+
+* the page object has actions that set a pattern on the service.
++
+[source,java]
+.AppTenancyVm.java
+----
+include::AppTenancyVm.java[tags=hideRegex]
+----
+
-<.> whether the current user can interact (invoke actions, modify the properties of) the domain object.
+=== Leveraging User Tenancy
-This demo example doesn't in fact use the current `ApplicationUser` at all.
-A typical implementation though can exploit the fact that `ApplicationUser` implements `HasAtPath` and therefore can return an `atPath`: the "application tenancy path":
+This demo implementation doesn't in fact use the current `ApplicationUser` at all.
+A more realistic implementation would exploit the fact that `ApplicationUser` implements `HasAtPath` and therefore can return an `atPath`: the "application tenancy path":
[source,java]
----
@@ -34,20 +62,4 @@ public interface ApplicationUser extends HasAtPath {
The `atPath` is just a string and can take any format and be processed in any way that makes sense.
One algorithm is to use it to define a hierarchy path, for example "/GBR/LON" represents a user based in London, Great Britain while "/ITA/MIL" is a user based in Milan, Italy.
-If the domain object also implements `HasAtPath`, then the `ApplicationTenancyEvaluator` can compare the two ``atPath``s to determine if the location/tenancy of the user is compatible with the location/tenancy of the domain object.
-
-This particular demo though simply uses a regular expression to control visibility and usability, with two properties (to the left-hand side of this page) used to control the domain service.
-For example:
-
-[source,java]
-----
-include::AppTenancyVm.java[tags=hideRegex]
-----
-
-[IMPORTANT]
-====
-This SPI is a presentation-layer concern only.
-It does not prevent the domain objects from being retrieved from the data store.
-
-In particular, there is nothing to prevent "malicious" code from retrieving and interacting with objects from another tenancy.
-====
+If the domain object also implements `HasAtPath`, then the `ApplicationTenancyEvaluator` can compare the two ``atPath``s to determine if the location/tenancy of the user is should allow access to the location/tenancy of the domain object.
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java
index c3efcb9746..c0c79616f9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/services/extensions/secman/apptenancy/ApplicationTenancyEvaluatorForDemo.java
@@ -40,6 +40,7 @@ public class ApplicationTenancyEvaluatorForDemo
return TenantedEntity.class.isAssignableFrom(cls);
}
+ private Pattern hidePattern; // <.>
@Override
public String hides(Object domainObject, ApplicationUser applicationUser) { // <.>
if(hidePattern == null) {
@@ -53,6 +54,7 @@ public class ApplicationTenancyEvaluatorForDemo
: null;
}
+ private Pattern disablePattern; // <3>
@Override
public String disables(Object domainObject, ApplicationUser applicationUser) { // <.>
if(disablePattern == null) {
@@ -65,7 +67,10 @@ public class ApplicationTenancyEvaluatorForDemo
? String.format("disabled, because name matches '%s'", disablePattern)
: null;
}
+ // ...
+//end::class[]
+//tag::hideRegex[]
@Getter
private String hideRegex;
public void setHideRegex(String hideRegex) {
@@ -74,7 +79,7 @@ public class ApplicationTenancyEvaluatorForDemo
? Pattern.compile(hideRegex)
: null;
}
- private Pattern hidePattern;
+//end::hideRegex[]
@Getter
private String disableRegex;
@@ -84,7 +89,7 @@ public class ApplicationTenancyEvaluatorForDemo
? Pattern.compile(disableRegex)
: null;
}
- private Pattern disablePattern;
+//tag::class[]
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/package-info.java b/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/package-info.java
deleted file mode 100644
index 674db93f96..0000000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/causewayext/sse/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * This files are NOT generated.
- */
-package demoapp.dom.types.causewayext.sse;
\ No newline at end of file