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>