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 2022/09/30 10:22:52 UTC

[isis-app-simpleapp] branch jdo-SNAPSHOT updated: updates menus in line with ISIS-3230

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

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


The following commit(s) were added to refs/heads/jdo-SNAPSHOT by this push:
     new c3264c1  updates menus in line with ISIS-3230
     new 33a41f3  Merge branch 'jpa-SNAPSHOT' into jdo-SNAPSHOT
c3264c1 is described below

commit c3264c113d8d0c0d480066fba875be5115ce3e6a
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Sep 30 10:58:34 2022 +0100

    updates menus in line with ISIS-3230
    
    minor improvement to builder
---
 .../simple/fixture/SimpleObjectBuilder.java        | 69 ----------------------
 .../simple/fixture/SimpleObject_persona.java       | 69 ++++++++++++++++++----
 webapp/src/main/resources/menubars.layout.xml      |  6 +-
 3 files changed, 60 insertions(+), 84 deletions(-)

diff --git a/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObjectBuilder.java b/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObjectBuilder.java
deleted file mode 100644
index ac9ad03..0000000
--- a/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObjectBuilder.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package domainapp.modules.simple.fixture;
-
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-
-import javax.inject.Inject;
-
-import org.springframework.core.io.ClassPathResource;
-
-import org.apache.isis.applib.services.clock.ClockService;
-import org.apache.isis.applib.value.Blob;
-import org.apache.isis.testing.fakedata.applib.services.FakeDataService;
-import org.apache.isis.testing.fixtures.applib.personas.BuilderScriptWithResult;
-
-import domainapp.modules.simple.dom.so.SimpleObject;
-import domainapp.modules.simple.dom.so.SimpleObjects;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.SneakyThrows;
-import lombok.val;
-import lombok.experimental.Accessors;
-
-@Accessors(chain = true)
-public class SimpleObjectBuilder extends BuilderScriptWithResult<SimpleObject> {
-
-    @Getter @Setter private String name;
-    @Getter @Setter private String contentFileName;
-
-    @Override
-    protected SimpleObject buildResult(final ExecutionContext ec) {
-
-        checkParam("name", ec, String.class);
-
-        SimpleObject simpleObject = wrap(simpleObjects).create(name);
-
-        if (contentFileName != null) {
-            val bytes = toBytes(contentFileName);
-            val attachment = new Blob(contentFileName, "application/pdf", bytes);
-            simpleObject.updateAttachment(attachment);
-        }
-
-        simpleObject.setLastCheckedIn(clockService.getClock().nowAsLocalDate().plusDays(fakeDataService.ints().between(-10, +10)));
-
-        return simpleObject;
-    }
-
-    @SneakyThrows
-    private byte[] toBytes(String fileName){
-        InputStream inputStream = new ClassPathResource(fileName, getClass()).getInputStream();
-        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
-
-        int nRead;
-        byte[] data = new byte[16384];
-
-        while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
-            buffer.write(data, 0, nRead);
-        }
-
-        return buffer.toByteArray();
-    }
-
-    // -- DEPENDENCIES
-
-    @Inject SimpleObjects simpleObjects;
-    @Inject ClockService clockService;
-    @Inject FakeDataService fakeDataService;
-
-
-}
diff --git a/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java b/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java
index 8fc5df2..34615ef 100644
--- a/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/fixture/SimpleObject_persona.java
@@ -1,25 +1,28 @@
 package domainapp.modules.simple.fixture;
 
-import java.time.LocalDate;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
 
 import javax.inject.Inject;
 
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.applib.value.Blob;
 import org.apache.isis.testing.fakedata.applib.services.FakeDataService;
+import org.apache.isis.testing.fixtures.applib.personas.BuilderScriptWithResult;
 import org.apache.isis.testing.fixtures.applib.personas.Persona;
 import org.apache.isis.testing.fixtures.applib.setup.PersonaEnumPersistAll;
+import org.springframework.core.io.ClassPathResource;
 
-import lombok.AllArgsConstructor;
-import lombok.RequiredArgsConstructor;
-import lombok.val;
+import lombok.*;
+import lombok.experimental.Accessors;
 
 import domainapp.modules.simple.dom.so.SimpleObject;
 import domainapp.modules.simple.dom.so.SimpleObjects;
 
 @RequiredArgsConstructor
 public enum SimpleObject_persona
-implements Persona<SimpleObject, SimpleObjectBuilder> {
+implements Persona<SimpleObject, SimpleObject_persona.Builder> {
 
     FOO("Foo", "Foo.pdf"),
     BAR("Bar", "Bar.pdf"),
@@ -36,24 +39,64 @@ implements Persona<SimpleObject, SimpleObjectBuilder> {
     private final String contentFileName;
 
     @Override
-    public SimpleObjectBuilder builder() {
-                return new SimpleObjectBuilder()
-                    .setName(name)
-                    .setContentFileName(contentFileName);
+    public Builder builder() {
+        return new Builder().setPersona(this);
     }
 
     @Override
     public SimpleObject findUsing(final ServiceRegistry serviceRegistry) {
-        SimpleObjects simpleObjects = serviceRegistry.lookupService(SimpleObjects.class).orElse(null);
-        return simpleObjects.findByNameExact(name);
+        return serviceRegistry.lookupService(SimpleObjects.class).map(x -> x.findByNameExact(name)).orElseThrow();
     }
 
-    public static class PersistAll
-    extends PersonaEnumPersistAll<SimpleObject, SimpleObject_persona, SimpleObjectBuilder> {
+    @Accessors(chain = true)
+    public static class Builder extends BuilderScriptWithResult<SimpleObject> {
+
+        @Getter @Setter private SimpleObject_persona persona;
+
+        @Override
+        protected SimpleObject buildResult(final ExecutionContext ec) {
+
+            val simpleObject = wrap(simpleObjects).create(persona.name);
+
+            if (persona.contentFileName != null) {
+                val bytes = toBytes(persona.contentFileName);
+                val attachment = new Blob(persona.contentFileName, "application/pdf", bytes);
+                simpleObject.updateAttachment(attachment);
+            }
+
+            simpleObject.setLastCheckedIn(clockService.getClock().nowAsLocalDate().plusDays(fakeDataService.ints().between(-10, +10)));
+
+            return simpleObject;
+        }
+
+        @SneakyThrows
+        private byte[] toBytes(String fileName){
+            InputStream inputStream = new ClassPathResource(fileName, getClass()).getInputStream();
+            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
 
+            int nRead;
+            byte[] data = new byte[16384];
+
+            while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
+                buffer.write(data, 0, nRead);
+            }
+
+            return buffer.toByteArray();
+        }
+
+        // -- DEPENDENCIES
+
+        @Inject SimpleObjects simpleObjects;
+        @Inject ClockService clockService;
+        @Inject FakeDataService fakeDataService;
+    }
+
+    public static class PersistAll
+            extends PersonaEnumPersistAll<SimpleObject, SimpleObject_persona, Builder> {
         public PersistAll() {
             super(SimpleObject_persona.class);
         }
     }
 
+
 }
diff --git a/webapp/src/main/resources/menubars.layout.xml b/webapp/src/main/resources/menubars.layout.xml
index a7ac932..3d38f6d 100644
--- a/webapp/src/main/resources/menubars.layout.xml
+++ b/webapp/src/main/resources/menubars.layout.xml
@@ -73,10 +73,10 @@
             </mb3:section>
             <mb3:section>
                 <mb3:named>Commands</mb3:named>
-                <mb3:serviceAction id="findCommandById" objectType="isis.ext.commandLog.CommandLogMenu"/>
                 <mb3:serviceAction id="activeCommands" objectType="isis.ext.commandLog.CommandLogMenu"/>
+                <mb3:serviceAction id="findMostRecent" objectType="isis.ext.commandLog.CommandLogMenu"/>
                 <mb3:serviceAction id="findCommands" objectType="isis.ext.commandLog.CommandLogMenu"/>
-                <mb3:serviceAction id="truncateLog" objectType="isis.ext.commandLog.CommandLogMenu"/>
+                <mb3:serviceAction id="findAll" objectType="isis.ext.commandLog.CommandLogMenu"/>
             </mb3:section>
             <mb3:section>
                 <mb3:named>Execution Log</mb3:named>
@@ -85,7 +85,9 @@
             </mb3:section>
             <mb3:section>
                 <mb3:named>Audit Trail</mb3:named>
+                <mb3:serviceAction id="findMostRecent" objectType="isis.ext.audittrail.AuditTrailMenu"/>
                 <mb3:serviceAction id="findAuditEntries" objectType="isis.ext.audittrail.AuditTrailMenu"/>
+                <mb3:serviceAction id="findAll" objectType="isis.ext.audittrail.AuditTrailMenu"/>
             </mb3:section>
             <mb3:section>
                 <mb3:named>Execution Outbox</mb3:named>