You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/08/02 07:46:15 UTC

[isis-app-simpleapp] 01/02: ISIS-2329: quick demo

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

danhaywood pushed a commit to branch ISIS-2329
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit 6385b78c297cb9ab7b3321c4621f2f5ff52ddb3d
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Jul 26 16:55:23 2021 +0100

    ISIS-2329: quick demo
---
 .../modules/simple/dom/so/SimpleObject.java        | 34 +++++++++++++---------
 .../modules/simple/dom/so/SimpleObjects.java       |  8 ++++-
 pom.xml                                            |  4 +--
 3 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
index 094b99b..c1ef563 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
@@ -14,6 +14,7 @@ import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Publishing;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.events.domain.ActionDomainEvent;
 import org.apache.isis.applib.jaxb.PersistentEntityAdapter;
 import org.apache.isis.applib.services.message.MessageService;
 import org.apache.isis.applib.services.repository.RepositoryService;
@@ -97,23 +98,28 @@ public class SimpleObject implements Comparable<SimpleObject> {
     private String notes;
 
 
-    @Action(semantics = IDEMPOTENT, commandPublishing = Publishing.ENABLED, executionPublishing = Publishing.ENABLED)
+
+    @Action(semantics = IDEMPOTENT, commandPublishing = Publishing.ENABLED, executionPublishing = Publishing.ENABLED, domainEvent = UpdateName.ActionEvent.class)
     @ActionLayout(associateWith = "name", promptStyle = PromptStyle.INLINE)
-    public SimpleObject updateName(
-            @Name final String name) {
-        setName(name);
-        return this;
-    }
-    public String default0UpdateName() {
-        return getName();
-    }
-    public String validate0UpdateName(String newName) {
-        for (char prohibitedCharacter : "&%$!".toCharArray()) {
-            if( newName.contains(""+prohibitedCharacter)) {
-                return "Character '" + prohibitedCharacter + "' is not allowed.";
+    public class UpdateName {
+
+        public class ActionEvent extends ActionDomainEvent<UpdateName> {}
+        public SimpleObject act(
+                @Name final String name) {
+            setName(name);
+            return SimpleObject.this;
+        }
+        public String default0Act() {
+            return getName();
+        }
+        public String validate0Act(String newName) {
+            for (char prohibitedCharacter : "&%$!".toCharArray()) {
+                if( newName.contains(""+prohibitedCharacter)) {
+                    return "Character '" + prohibitedCharacter + "' is not allowed.";
+                }
             }
+            return null;
         }
-        return null;
     }
 
 
diff --git a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
index e67d9bb..0e3eccb 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
@@ -18,11 +18,13 @@ import org.apache.isis.applib.query.Query;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.persistence.jpa.applib.services.JpaSupportService;
 
+import org.springframework.context.event.EventListener;
+
 import domainapp.modules.simple.types.Name;
 
 @DomainService(
         nature = NatureOfService.VIEW,
-        objectType = "simple.SimpleObjects"
+        logicalTypeName = "simple.SimpleObjects"
 )
 @javax.annotation.Priority(PriorityPrecedence.EARLY)
 @lombok.RequiredArgsConstructor(onConstructor_ = {@Inject} )
@@ -88,5 +90,9 @@ public class SimpleObjects {
             });
     }
 
+    @EventListener(SimpleObject.UpdateName.ActionEvent.class)
+    public void on(SimpleObject.UpdateName.ActionEvent ev) {
+        System.out.println(ev.getIdentifier());
+    }
 
 }
diff --git a/pom.xml b/pom.xml
index fdecb38..71fd836 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
     <parent>
         <groupId>org.apache.isis.app</groupId>
         <artifactId>isis-app-starter-parent</artifactId>
-        <version>2.0.0-M5.20210724-1447-cdcc665b</version>
+        <version>2.0.0-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
@@ -19,7 +19,7 @@
     <packaging>pom</packaging>
 
     <properties>
-        <isis.version>2.0.0-M5.20210724-1447-cdcc665b</isis.version>
+        <isis.version>2.0.0-SNAPSHOT</isis.version>
         <java.version>11</java.version>
         <maven-cucumber-reporting.version>5.3.0</maven-cucumber-reporting.version>
         <archunit.version>0.14.1</archunit.version>