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/08/04 16:22:14 UTC
[isis] 15/15: ISIS-3110: polishing
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-3110
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 48424716839091776faf640499efef164ece12f0
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Aug 4 17:16:14 2022 +0100
ISIS-3110: polishing
---
.../applib/services/commanddto/HasCommandDto.java | 2 +
.../applib/services/iactn/HasInteractionDto.java | 2 +
.../manager/AuthorizationManager.java | 1 -
examples/demo/.run/DemoAppWicketJpa.run.xml | 2 +-
.../demoapp/dom/domain/_changes/ChangesVm.java | 85 ++++++++++++++++
...va => ExposeCapturedChanges_recentChanges.java} | 8 +-
.../demo/domain/src/main/resources/application.yml | 2 +-
.../config/application-port9090.properties | 20 ++++
.../main/java/demoapp/web/DemoAppManifestJdo.java | 2 +
.../main/java/demoapp/web/DemoAppManifestJpa.java | 3 +
.../HasInteractionId_commandLogEntry.java | 5 +-
.../HasUsername_recentCommandsByUser.java | 6 +-
.../contributions/Object_recentCommands.java | 2 +-
.../commandlog/applib/dom/CommandLogEntry.java | 1 +
.../applib/dom/CommandLogEntry.layout.fallback.xml | 111 +++++++++++----------
.../applib/dom/CommandLogEntryRepository.java | 12 ++-
.../commandlog/jdo/dom/CommandLogEntry.java | 8 ++
.../commandlog/jpa/dom/CommandLogEntry.java | 7 ++
.../HasInteractionId_executionLogEntries.java | 6 +-
.../HasUsername_recentExecutionsByUser.java} | 26 ++---
.../dom/ExecutionLogEntry.layout.fallback.xml | 87 ++++++++--------
.../ExecutionLogEntry_siblingExecutions.java | 3 +-
.../HasUsername_recentSessionsForUser.java | 4 +-
.../applib/dom/SessionLogEntry.layout.fallback.xml | 23 +++--
.../applib/dom/SessionLogEntryRepository.java | 3 +
.../asciidoc/applib/value/Converter.java | 26 -----
.../bootstrap/css/bootstrap-overrides-all-v2.css | 1 +
27 files changed, 298 insertions(+), 160 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java b/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
index c6d986ac30..1fb1617079 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/HasCommandDto.java
@@ -26,6 +26,7 @@ import java.lang.annotation.Target;
import org.apache.isis.applib.annotation.Editing;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.ValueSemantics;
/**
* Objects implementing this interface will be processed automatically by
@@ -40,6 +41,7 @@ public interface HasCommandDto {
@PropertyLayout(
multiLine = 9
)
+ @ValueSemantics(provider = "pretty-render")
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@interface CommandDtoAnnot {
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
index 909fc68408..4d22248081 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/iactn/HasInteractionDto.java
@@ -26,6 +26,7 @@ import java.lang.annotation.Target;
import org.apache.isis.applib.annotation.Editing;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.ValueSemantics;
public interface HasInteractionDto {
@@ -35,6 +36,7 @@ public interface HasInteractionDto {
@PropertyLayout(
multiLine = 9
)
+ @ValueSemantics(provider = "pretty-render")
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@interface InteractionDtoAnnot {
diff --git a/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java b/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
index d5b86f9ab4..78f07dcdb0 100644
--- a/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
+++ b/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
@@ -50,7 +50,6 @@ public class AuthorizationManager {
@Inject
public AuthorizationManager(
final List<Authorizor> authorizors,
- // TODO: elsewhere we inject an Optional<X>, should use the same technique throughout...
@org.springframework.lang.Nullable final AuthorizorChooser authorizorChooser) {
this.authorizors = authorizors;
val authorizorPrecedenceChooserToUse = authorizorChooser != null
diff --git a/examples/demo/.run/DemoAppWicketJpa.run.xml b/examples/demo/.run/DemoAppWicketJpa.run.xml
index 85f254d347..f768659871 100644
--- a/examples/demo/.run/DemoAppWicketJpa.run.xml
+++ b/examples/demo/.run/DemoAppWicketJpa.run.xml
@@ -1,6 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="DemoAppWicketJpa" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
- <option name="ACTIVE_PROFILES" />
+ <option name="ACTIVE_PROFILES" value="port9090" />
<module name="demo-wicket-jpa" />
<option name="SHORTEN_COMMAND_LINE" value="ARGS_FILE" />
<option name="SPRING_BOOT_MAIN_CLASS" value="demoapp.webapp.wicket.jpa.DemoAppWicketJpa" />
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ChangesVm.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ChangesVm.java
new file mode 100644
index 0000000000..a4c2c92af0
--- /dev/null
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ChangesVm.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package demoapp.dom.domain._changes;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import javax.inject.Named;
+import javax.xml.bind.annotation.XmlAccessType;
+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 org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.MemberSupport;
+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.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.ValueSemantics;
+import org.apache.isis.applib.jaxb.JavaTimeXMLGregorianCalendarMarshalling;
+import org.apache.isis.applib.jaxb.JavaUtilJaxbAdapters;
+import org.apache.isis.applib.util.JaxbUtil;
+import org.apache.isis.applib.util.schema.ChangesDtoUtils;
+import org.apache.isis.schema.chg.v2.ChangesDto;
+import org.apache.isis.schema.common.v2.OidsDto;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.val;
+
+import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+import demoapp.dom.domain.actions.Action.associateWith.child.ActionAssociateWithChildVm;
+
+@XmlRootElement(name = "root")
+@XmlType
+@XmlAccessorType(XmlAccessType.FIELD)
+@Named("demo.ChangesVm")
+@DomainObject(
+ nature=Nature.VIEW_MODEL
+)
+@NoArgsConstructor
+public class ChangesVm {
+
+ public String title() {
+ int numCreated = changesDto.getObjects().getCreated().getOid().size();
+ int numUpdated = changesDto.getObjects().getUpdated().getOid().size();
+ int numDeleted = changesDto.getObjects().getDeleted().getOid().size();
+ LocalDateTime completedAt = JavaTimeXMLGregorianCalendarMarshalling.toLocalDateTime(changesDto.getCompletedAt());
+ return String.format("%s: %d created, %d updated, %d deleted", completedAt, numCreated, numUpdated, numDeleted);
+ }
+
+ @ValueSemantics(provider = "pretty-render")
+ @Getter @Setter
+ private ChangesDto changesDto;
+
+ public ChangesVm(ChangesDto dto) {
+ this.changesDto = dto;
+ }
+}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ExposeCapturedChanges_changes.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ExposeCapturedChanges_recentChanges.java
similarity index 90%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ExposeCapturedChanges_changes.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ExposeCapturedChanges_recentChanges.java
index 59ee9b38b1..38a98ac3ff 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ExposeCapturedChanges_changes.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/_changes/ExposeCapturedChanges_recentChanges.java
@@ -34,7 +34,7 @@ import lombok.val;
//tag::class[]
@Collection
@RequiredArgsConstructor
-public class ExposeCapturedChanges_changes {
+public class ExposeCapturedChanges_recentChanges {
// ...
//end::class[]
@@ -42,12 +42,12 @@ public class ExposeCapturedChanges_changes {
private final ExposeCapturedChanges exposeCapturedChanges;
@MemberSupport
- @ValueSemantics(provider = "pretty-render")
//tag::class[]
- public List<ChangesDto> coll() {
- val list = new LinkedList<ChangesDto>();
+ public List<ChangesVm> coll() {
+ val list = new LinkedList<ChangesVm>();
entityChangesSubscriberToCaptureChangesInMemory
.streamChangedEntities()
+ .map(ChangesVm::new)
.forEach(list::push); // reverse order
return list;
}
diff --git a/examples/demo/domain/src/main/resources/application.yml b/examples/demo/domain/src/main/resources/application.yml
index a64074828d..679497e67e 100644
--- a/examples/demo/domain/src/main/resources/application.yml
+++ b/examples/demo/domain/src/main/resources/application.yml
@@ -107,7 +107,7 @@ isis:
# schema auto creation etc. ...
persistence:
schema:
- autoCreateSchemas: isisExtSecman,isisExtCommandLog,isisExtExecutionLog,demo
+ autoCreateSchemas: isisExtSecman,isisExtCommandLog,isisExtExecutionLog,isisExtExecutionOutbox,isisExtSessionLog,isisExtAuditTrail,demo
extensions:
secman:
diff --git a/examples/demo/domain/src/main/resources/config/application-port9090.properties b/examples/demo/domain/src/main/resources/config/application-port9090.properties
new file mode 100644
index 0000000000..a3e498f865
--- /dev/null
+++ b/examples/demo/domain/src/main/resources/config/application-port9090.properties
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+server.port=9090
diff --git a/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJdo.java b/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJdo.java
index 0b4c8c6713..599961d44a 100644
--- a/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJdo.java
+++ b/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJdo.java
@@ -24,6 +24,7 @@ import org.apache.isis.extensions.commandlog.jdo.IsisModuleExtCommandLogPersiste
import org.apache.isis.extensions.executionlog.jdo.IsisModuleExtExecutionLogPersistenceJdo;
import org.apache.isis.extensions.executionoutbox.jdo.IsisModuleExtExecutionOutboxPersistenceJdo;
import org.apache.isis.extensions.secman.jdo.IsisModuleExtSecmanPersistenceJdo;
+import org.apache.isis.extensions.sessionlog.jdo.IsisModuleExtSessionLogPersistenceJdo;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -40,6 +41,7 @@ import demoapp.dom.DemoModuleJdo;
// Security Manager Extension (secman)
IsisModuleExtSecmanPersistenceJdo.class,
+ IsisModuleExtSessionLogPersistenceJdo.class,
IsisModuleExtCommandLogPersistenceJdo.class,
IsisModuleExtExecutionLogPersistenceJdo.class,
IsisModuleExtExecutionOutboxPersistenceJdo.class,
diff --git a/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJpa.java b/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJpa.java
index ecd4188761..3d5ba0ea9b 100644
--- a/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJpa.java
+++ b/examples/demo/web/src/main/java/demoapp/web/DemoAppManifestJpa.java
@@ -23,6 +23,8 @@ import org.apache.isis.extensions.commandlog.jpa.IsisModuleExtCommandLogPersiste
import org.apache.isis.extensions.executionlog.jpa.IsisModuleExtExecutionLogPersistenceJpa;
import org.apache.isis.extensions.executionoutbox.jpa.IsisModuleExtExecutionOutboxPersistenceJpa;
import org.apache.isis.extensions.secman.jpa.IsisModuleExtSecmanPersistenceJpa;
+import org.apache.isis.extensions.sessionlog.jpa.IsisModuleExtSessionLogPersistenceJpa;
+
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@@ -38,6 +40,7 @@ import demoapp.dom.DemoModuleJpa;
// Security Manager Extension (secman)
IsisModuleExtSecmanPersistenceJpa.class,
+ IsisModuleExtSessionLogPersistenceJpa.class,
IsisModuleExtCommandLogPersistenceJpa.class,
IsisModuleExtExecutionLogPersistenceJpa.class,
IsisModuleExtExecutionOutboxPersistenceJpa.class,
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
index 9961cb3ac7..646a02e90c 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasInteractionId_commandLogEntry.java
@@ -23,6 +23,7 @@ package org.apache.isis.extensions.commandlog.applib.contributions;
import javax.inject.Inject;
import javax.inject.Provider;
+import org.apache.isis.applib.annotation.MemberSupport;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.mixins.system.HasInteractionId;
import org.apache.isis.applib.services.command.Command;
@@ -48,7 +49,7 @@ public class HasInteractionId_commandLogEntry {
extends IsisModuleExtCommandLogApplib.PropertyDomainEvent<HasInteractionId_commandLogEntry, CommandLogEntry> { }
- public CommandLogEntry prop() {
+ @MemberSupport public CommandLogEntry prop() {
return queryResultsCacheProvider.get().execute(this::doProp, getClass(), "prop");
}
@@ -60,7 +61,7 @@ public class HasInteractionId_commandLogEntry {
* Hide if the contributee is a {@link CommandLogEntry}, because we don't want to navigate to ourselves, and there
* are other ways to navigate to the parent or child commands.
*/
- public boolean hideProp() {
+ @MemberSupport public boolean hideProp() {
return (hasInteractionId instanceof CommandLogEntry);
}
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java
index 7bc8064de9..10528cccbb 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java
@@ -25,6 +25,7 @@ import javax.inject.Inject;
import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
import org.apache.isis.applib.mixins.security.HasUsername;
import org.apache.isis.extensions.commandlog.applib.IsisModuleExtCommandLogApplib;
import org.apache.isis.extensions.commandlog.applib.dom.CommandLogEntry;
@@ -41,6 +42,7 @@ import lombok.val;
)
@CollectionLayout(
defaultView = "table",
+ paged = 5,
sequence = "3"
)
public class HasUsername_recentCommandsByUser {
@@ -53,13 +55,13 @@ public class HasUsername_recentCommandsByUser {
this.hasUsername = hasUsername;
}
- public List<? extends CommandLogEntry> coll() {
+ @MemberSupport public List<? extends CommandLogEntry> coll() {
val username = hasUsername.getUsername();
return username != null
? commandLogEntryRepository.findRecentByUsername(username)
: Collections.emptyList();
}
- public boolean hideColl() {
+ @MemberSupport public boolean hideColl() {
return hasUsername.getUsername() == null;
}
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
index 8438b6e94e..ba1dea549d 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/Object_recentCommands.java
@@ -67,7 +67,7 @@ public class Object_recentCommands {
@MemberSupport public List<? extends CommandLogEntry> act() {
return bookmarkService.bookmarkFor(domainObject)
- .map(commandLogEntryRepository::findRecentByTarget)
+ .map(commandLogEntryRepository::findRecentByTargetOrResult)
.orElse(Collections.emptyList());
}
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
index 3e1bedd8c3..a52aaea8d2 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.java
@@ -118,6 +118,7 @@ implements Comparable<CommandLogEntry>, DomainChangeRecord, HasCommandDto {
public static final String FIND_CURRENT = LOGICAL_TYPE_NAME + ".findCurrent";
public static final String FIND_COMPLETED = LOGICAL_TYPE_NAME + ".findCompleted";
public static final String FIND_RECENT_BY_TARGET = LOGICAL_TYPE_NAME + ".findRecentByTarget";
+ public static final String FIND_RECENT_BY_TARGET_OR_RESULT = LOGICAL_TYPE_NAME + ".findRecentByTargetOrResult";
public static final String FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN = LOGICAL_TYPE_NAME + ".findByTargetAndTimestampBetween";
public static final String FIND_BY_TARGET_AND_TIMESTAMP_AFTER = LOGICAL_TYPE_NAME + ".findByTargetAndTimestampAfter";
public static final String FIND_BY_TARGET_AND_TIMESTAMP_BEFORE = LOGICAL_TYPE_NAME + ".findByTargetAndTimestampBefore";
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.layout.fallback.xml b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.layout.fallback.xml
index 8ea038505b..0abef03d20 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.layout.fallback.xml
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntry.layout.fallback.xml
@@ -26,65 +26,66 @@
</bs3:col>
</bs3:row>
<bs3:row>
- <bs3:col span="4">
- <bs3:row>
- <bs3:col span="12">
- <cpt:fieldSet name="Identifiers" id="identifiers">
- <cpt:action id="clearHints" position="PANEL"/>
- <cpt:action id="rebuildMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentExecutions" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentAuditTrailEntries" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN"/>
- <cpt:property id="interactionId"/>
- <cpt:property id="type"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Target" id="target">
- <cpt:property id="target"/>
- <cpt:property id="targetLogicalTypeName"/>
- <cpt:property id="logicalMemberIdentifier"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Who and When">
- <cpt:property id="username"/>
- <cpt:property id="timestamp"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- </bs3:row>
+ <bs3:col span="3">
+ <bs3:tabGroup>
+ <bs3:tab name="Identity">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Identity" id="identity">
+ <cpt:property id="interactionId"/>
+ <cpt:property id="type"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Metadata" id="metadata"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
+ <cpt:fieldSet name="Target" id="target">
+ <cpt:property id="target"/>
+ <cpt:property id="targetLogicalTypeName">
+ <cpt:named>Logical Type Name</cpt:named>
+ </cpt:property>
+ <cpt:property id="logicalMemberIdentifier">
+ <cpt:named>member Identifier</cpt:named>
+ </cpt:property>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="Who and When">
+ <cpt:property id="username"/>
+ <cpt:property id="timestamp"/>
+ </cpt:fieldSet>
</bs3:col>
- <bs3:col span="4">
+ <bs3:col span="6">
<cpt:fieldSet name="Command DTO" id="commandDto">
- <cpt:property id="commandDto" labelPosition="NONE" multiLine="20"/>
+ <cpt:property id="commandDto" multiLine="30" labelPosition="TOP"/>
</cpt:fieldSet>
</bs3:col>
- <bs3:col span="4">
- <bs3:row>
- <bs3:col span="12">
- <cpt:fieldSet name="Execution" id="execution">
- <cpt:action id="retry" cssClassFa="fa-repeat" cssClass="btn-warning"/>
- <cpt:action id="exclude" cssClassFa="fa-ban" cssClass="btn-warning"/>
- <cpt:property id="executeIn"/>
- <cpt:property id="parent"/>
- <cpt:property id="replayState"/>
- <cpt:property id="replayStateFailureReason"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Timings" id="timings">
- <cpt:property id="startedAt"/>
- <cpt:property id="completedAt"/>
- <cpt:property id="duration"/>
- <cpt:property id="complete"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Results" id="results">
- <cpt:property id="resultSummary"/>
- <cpt:property id="result"/>
- <cpt:property id="exception" labelPosition="TOP"/>
- </cpt:fieldSet>
- </bs3:col>
- </bs3:row>
+ <bs3:col span="3">
+ <cpt:fieldSet name="Execution" id="execution">
+ <cpt:action id="retry" cssClassFa="fa-repeat" cssClass="btn-warning"/>
+ <cpt:action id="exclude" cssClassFa="fa-ban" cssClass="btn-warning"/>
+ <cpt:property id="executeIn"/>
+ <cpt:property id="parent"/>
+ <cpt:property id="replayState"/>
+ <cpt:property id="replayStateFailureReason"/>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="Timings" id="timings">
+ <cpt:property id="startedAt"/>
+ <cpt:property id="completedAt"/>
+ <cpt:property id="duration"/>
+ <cpt:property id="complete"/>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="Results" id="results">
+ <cpt:property id="resultSummary"/>
+ <cpt:property id="result"/>
+ <cpt:property id="exception" labelPosition="TOP"/>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
</bs3:col>
</bs3:row>
<bs3:row>
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntryRepository.java b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntryRepository.java
index fbc603c489..f4a139a48d 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntryRepository.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/dom/CommandLogEntryRepository.java
@@ -181,7 +181,17 @@ public abstract class CommandLogEntryRepository<C extends CommandLogEntry> {
public List<C> findRecentByTarget(final Bookmark target) {
return repositoryService().allMatches(
Query.named(commandLogEntryClass, CommandLogEntry.Nq.FIND_RECENT_BY_TARGET)
- .withParameter("target", target));
+ .withParameter("target", target)
+ .withLimit(30L)
+ );
+ }
+
+ public List<C> findRecentByTargetOrResult(final Bookmark targetOrResult) {
+ return repositoryService().allMatches(
+ Query.named(commandLogEntryClass, CommandLogEntry.Nq.FIND_RECENT_BY_TARGET_OR_RESULT)
+ .withParameter("targetOrResult", targetOrResult)
+ .withLimit(30L)
+ );
}
diff --git a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/dom/CommandLogEntry.java b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/dom/CommandLogEntry.java
index 85c9432994..176145e2d7 100644
--- a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/dom/CommandLogEntry.java
+++ b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/dom/CommandLogEntry.java
@@ -67,6 +67,14 @@ import lombok.Setter;
+ " WHERE target == :target "
+ " ORDER BY this.timestamp DESC "
+ " RANGE 0,30"),
+ @Query(
+ name = Nq.FIND_RECENT_BY_TARGET_OR_RESULT,
+ value = "SELECT "
+ + " FROM " + CommandLogEntry.FQCN + " "
+ + " WHERE target == :targetOrResult "
+ + " || result == :targetOrResult "
+ + " ORDER BY this.timestamp DESC "
+ + " RANGE 0,30"),
@Query(
name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN,
value = "SELECT "
diff --git a/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntry.java b/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntry.java
index f97f9ab4eb..a86eedd845 100644
--- a/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntry.java
+++ b/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/isis/extensions/commandlog/jpa/dom/CommandLogEntry.java
@@ -97,6 +97,13 @@ import lombok.Setter;
+ " FROM CommandLogEntry cl "
+ " WHERE cl.target = :target "
+ " ORDER BY cl.timestamp DESC"), // programmatic LIMIT 30
+ @NamedQuery(
+ name = Nq.FIND_RECENT_BY_TARGET_OR_RESULT,
+ query = "SELECT cl "
+ + " FROM CommandLogEntry cl "
+ + " WHERE cl.target = :targetOrResult "
+ + " OR cl.result = :targetOrResult "
+ + " ORDER BY cl.timestamp DESC"), // programmatic LIMIT 30
@NamedQuery(
name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN,
query = "SELECT cl "
diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasInteractionId_executionLogEntries.java b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasInteractionId_executionLogEntries.java
index 9c3b783c77..15984fd8ff 100644
--- a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasInteractionId_executionLogEntries.java
+++ b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasInteractionId_executionLogEntries.java
@@ -23,6 +23,7 @@ import java.util.List;
import javax.inject.Inject;
import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.MemberSupport;
import org.apache.isis.applib.mixins.system.HasInteractionId;
import org.apache.isis.extensions.executionlog.applib.IsisModuleExtExecutionLogApplib;
import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntry;
@@ -44,12 +45,11 @@ public class HasInteractionId_executionLogEntries {
public static class CollectionDomainEvent
extends IsisModuleExtExecutionLogApplib.CollectionDomainEvent<HasInteractionId_executionLogEntries, ExecutionLogEntry> { }
-
- public List<? extends ExecutionLogEntry> act() {
+ @MemberSupport public List<? extends ExecutionLogEntry> coll() {
return executionLogEntryRepository.findByInteractionId(hasInteractionId.getInteractionId());
}
- public boolean hideAct() {
+ @MemberSupport public boolean hideColl() {
// for the ELE itself, we provide the 'siblingExecutions' mixin.
return hasInteractionId instanceof ExecutionLogEntry;
}
diff --git a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasUsername_recentExecutionsByUser.java
similarity index 60%
copy from extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java
copy to extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasUsername_recentExecutionsByUser.java
index 7bc8064de9..4a7ad1f661 100644
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/contributions/HasUsername_recentCommandsByUser.java
+++ b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/contributions/HasUsername_recentExecutionsByUser.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.extensions.commandlog.applib.contributions;
+package org.apache.isis.extensions.executionlog.applib.contributions;
import java.util.Collections;
import java.util.List;
@@ -25,10 +25,11 @@ import javax.inject.Inject;
import org.apache.isis.applib.annotation.Collection;
import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.applib.annotation.MemberSupport;
import org.apache.isis.applib.mixins.security.HasUsername;
-import org.apache.isis.extensions.commandlog.applib.IsisModuleExtCommandLogApplib;
-import org.apache.isis.extensions.commandlog.applib.dom.CommandLogEntry;
-import org.apache.isis.extensions.commandlog.applib.dom.CommandLogEntryRepository;
+import org.apache.isis.extensions.executionlog.applib.IsisModuleExtExecutionLogApplib;
+import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntry;
+import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntryRepository;
import lombok.val;
@@ -37,31 +38,32 @@ import lombok.val;
* @since 2.0 {@index}
*/
@Collection(
- domainEvent = HasUsername_recentCommandsByUser.CollectionDomainEvent.class
+ domainEvent = HasUsername_recentExecutionsByUser.CollectionDomainEvent.class
)
@CollectionLayout(
defaultView = "table",
+ paged = 5,
sequence = "3"
)
-public class HasUsername_recentCommandsByUser {
+public class HasUsername_recentExecutionsByUser {
public static class CollectionDomainEvent
- extends IsisModuleExtCommandLogApplib.CollectionDomainEvent<HasUsername_recentCommandsByUser, CommandLogEntry> { }
+ extends IsisModuleExtExecutionLogApplib.CollectionDomainEvent<HasUsername_recentExecutionsByUser, ExecutionLogEntry> { }
private final HasUsername hasUsername;
- public HasUsername_recentCommandsByUser(final HasUsername hasUsername) {
+ public HasUsername_recentExecutionsByUser(final HasUsername hasUsername) {
this.hasUsername = hasUsername;
}
- public List<? extends CommandLogEntry> coll() {
+ @MemberSupport public List<? extends ExecutionLogEntry> coll() {
val username = hasUsername.getUsername();
return username != null
- ? commandLogEntryRepository.findRecentByUsername(username)
+ ? executionLogEntryRepository.findRecentByUsername(username)
: Collections.emptyList();
}
- public boolean hideColl() {
+ @MemberSupport public boolean hideColl() {
return hasUsername.getUsername() == null;
}
- @Inject CommandLogEntryRepository<? extends CommandLogEntry> commandLogEntryRepository;
+ @Inject ExecutionLogEntryRepository<? extends ExecutionLogEntry> executionLogEntryRepository;
}
diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
index 887d2dee14..50c5ff8819 100644
--- a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
+++ b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/ExecutionLogEntry.layout.fallback.xml
@@ -16,51 +16,58 @@
</bs3:col>
</bs3:row>
<bs3:row>
- <bs3:col span="4">
- <bs3:row>
- <bs3:col span="12">
- <cpt:fieldSet name="Identifiers" id="identifiers" unreferencedProperties="true">
- <cpt:action id="clearHints" position="PANEL"/>
- <cpt:action id="rebuildMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentCommands" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentExecutions" position="PANEL_DROPDOWN"/>
- <cpt:action id="recentAuditTrailEntries" position="PANEL_DROPDOWN"/>
- <cpt:action id="openRestApi" position="PANEL_DROPDOWN"/>
- <cpt:property id="interactionId">
- <!-- if executionrepublisher module included -->
- <cpt:action id="copyToOutbox"/>
- </cpt:property>
- <cpt:property id="sequence"/>
- <cpt:property id="type"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Target" id="target">
- <cpt:property id="target"/>
- <cpt:property id="targetLogicalTypeName"/>
- <cpt:property id="logicalMemberIdentifier"/>
- <cpt:property id="executionType"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Who and When">
- <cpt:property id="username"/>
- <cpt:property id="timestamp"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Timings" id="timings">
- <cpt:property id="startedAt"/>
- <cpt:property id="completedAt"/>
- <cpt:property id="duration"/>
- </cpt:fieldSet>
- <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
- </bs3:col>
- </bs3:row>
+ <bs3:col span="3">
+ <bs3:tabGroup>
+ <bs3:tab name="Identity">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Identity" id="identity">
+ <cpt:property id="interactionId">
+ <!-- if executionoutbox module included -->
+ <cpt:action id="copyToOutbox"/>
+ </cpt:property>
+ <cpt:property id="sequence"/>
+ <cpt:property id="type"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Metadata">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Metadata" id="metadata"/>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ </bs3:tabGroup>
+ <cpt:fieldSet name="Target" id="target">
+ <cpt:property id="target"/>
+ <cpt:property id="targetLogicalTypeName">
+ <cpt:named>Logical Type Name</cpt:named>
+ </cpt:property>
+ <cpt:property id="logicalMemberIdentifier">
+ <cpt:named>member Identifier</cpt:named>
+ </cpt:property>
+ <cpt:property id="executionType"/>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="Who and When">
+ <cpt:property id="username"/>
+ <cpt:property id="timestamp"/>
+ </cpt:fieldSet>
</bs3:col>
- <bs3:col span="8">
+ <bs3:col span="6">
<cpt:fieldSet name="Interaction DTO" id="interactionDto">
<cpt:property id="interactionDto" multiLine="30" labelPosition="TOP"/>
</cpt:fieldSet>
</bs3:col>
+ <bs3:col span="3">
+ <cpt:fieldSet name="Timings" id="timings">
+ <cpt:property id="startedAt"/>
+ <cpt:property id="completedAt"/>
+ <cpt:property id="duration"/>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
+ </bs3:col>
</bs3:row>
<bs3:row>
<bs3:col span="12">
diff --git a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
index 70204bf098..6f56d7211b 100644
--- a/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
+++ b/extensions/core/executionlog/applib/src/main/java/org/apache/isis/extensions/executionlog/applib/dom/mixins/ExecutionLogEntry_siblingExecutions.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import org.apache.isis.applib.annotation.Collection;
+import org.apache.isis.applib.annotation.MemberSupport;
import org.apache.isis.extensions.executionlog.applib.IsisModuleExtExecutionLogApplib;
import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntry;
import org.apache.isis.extensions.executionlog.applib.dom.ExecutionLogEntryRepository;
@@ -43,7 +44,7 @@ public class ExecutionLogEntry_siblingExecutions {
extends IsisModuleExtExecutionLogApplib.CollectionDomainEvent<ExecutionLogEntry_siblingExecutions, ExecutionLogEntry> { }
- public List<ExecutionLogEntry> coll() {
+ @MemberSupport public List<ExecutionLogEntry> coll() {
val entries = executionLogEntryRepository.findByInteractionId(executionLogEntry.getInteractionId());
entries.remove(executionLogEntry);
return entries;
diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java
index 93fb4ea29e..1c90b91849 100644
--- a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java
+++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/contributions/HasUsername_recentSessionsForUser.java
@@ -52,7 +52,7 @@ public class HasUsername_recentSessionsForUser {
private final HasUsername hasUsername;
- @MemberSupport public List<SessionLogEntry> act() {
+ @MemberSupport public List<? extends SessionLogEntry> act() {
if(hasUsername == null || hasUsername.getUsername() == null) {
return Collections.emptyList();
}
@@ -62,6 +62,6 @@ public class HasUsername_recentSessionsForUser {
return hasUsername == null || hasUsername.getUsername() == null;
}
- @Inject SessionLogEntryRepository sessionLogEntryRepository;
+ @Inject SessionLogEntryRepository<? extends SessionLogEntry> sessionLogEntryRepository;
}
diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.layout.fallback.xml b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.layout.fallback.xml
index f4e3849ea4..823f013980 100644
--- a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.layout.fallback.xml
+++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntry.layout.fallback.xml
@@ -35,12 +35,25 @@
<bs3:tab name="Identifier">
<bs3:row>
<bs3:col span="12">
- <cpt:fieldSet name="Identifiers" id="identifiers" unreferencedProperties="true">
+ <cpt:fieldSet name="Identity" id="identity">
<cpt:action id="previous"/>
<cpt:action id="next"/>
+ <cpt:property id="httpSessionGuid"/>
+ </cpt:fieldSet>
+ <cpt:fieldSet name="" id="who-and-when">
<cpt:property id="username"/>
<cpt:property id="loginTimestamp"/>
</cpt:fieldSet>
+ <cpt:fieldSet name="" id="http-id">
+ <cpt:property id="sessionGuid"/>
+ </cpt:fieldSet>
+ </bs3:col>
+ </bs3:row>
+ </bs3:tab>
+ <bs3:tab name="Other">
+ <bs3:row>
+ <bs3:col span="12">
+ <cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
</bs3:col>
</bs3:row>
</bs3:tab>
@@ -48,12 +61,6 @@
<bs3:row>
<bs3:col span="12">
<cpt:fieldSet name="Metadata" id="metadata">
- <cpt:action id="recentAuditTrailEntries" position="PANEL_DROPDOWN"/>
- <cpt:action id="clearHints" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL_DROPDOWN"/>
- <cpt:property id="sessionId"/>
</cpt:fieldSet>
</bs3:col>
</bs3:row>
@@ -68,7 +75,7 @@
<cpt:fieldSet name="Timestamps" id="logout">
<cpt:property id="loginTimestamp"/>
<cpt:property id="logoutTimestamp"/>
- <cpt:property id="causedBy2"/>
+ <cpt:property id="causedBy"/>
</cpt:fieldSet>
</bs3:col>
</bs3:row>
diff --git a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java
index a7727e0351..6c2665e298 100644
--- a/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java
+++ b/extensions/security/sessionlog/applib/src/main/java/org/apache/isis/extensions/sessionlog/applib/dom/SessionLogEntryRepository.java
@@ -32,6 +32,7 @@ import org.apache.isis.applib.query.Query;
import org.apache.isis.applib.services.factory.FactoryService;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.session.SessionSubscriber;
+import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.core.config.environment.IsisSystemEnvironment;
import lombok.NonNull;
@@ -43,6 +44,7 @@ import lombok.val;
public abstract class SessionLogEntryRepository<E extends SessionLogEntry> {
@Inject RepositoryService repositoryService;
+ @Inject TransactionService transactionService;
@Inject FactoryService factoryService;
@Inject IsisSystemEnvironment isisSystemEnvironment;
@@ -59,6 +61,7 @@ public abstract class SessionLogEntryRepository<E extends SessionLogEntry> {
activeEntry.setCausedBy(SessionSubscriber.CausedBy.RESTART);
activeEntry.setLogoutTimestamp(logoutTimestamp);
}
+ transactionService.flushTransaction();
}
public SessionLogEntry create(
diff --git a/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java b/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
index 366be92c7f..ff7cc44a38 100644
--- a/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
+++ b/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
@@ -32,32 +32,6 @@ import lombok.Getter;
final class Converter {
- /**
- * For syntax highlighting to work, the client/browser needs to load specific
- * java-script and css.
- * <p>
- * 1) In your web-app's {@code scripts/application.js} include the bundled
- * {@code src/main/resources/prism1.14.js}.
- * <pre>
- * function includeJs(jsFilePath) {
- * var js = document.createElement("script");
- * js.type = "text/javascript";
- * js.src = jsFilePath;
- * document.body.appendChild(js);
- * }
- *
- * includeJs("/scripts/prism1.14.js");
- * </pre>
- * <p>
- * 2) In your web-app's {@code css/application.css} include the bundled
- * {@code src/main/resources/prism.css}.
- * <pre>
- * {@code @import "prism.css"}.
- * </pre>
- *
- * @param adoc - formatted input to be converted to HTML
- * @param options - if {@code null} uses built-in default options
- */
public static String adocToHtml(final @Nullable String adoc, final @Nullable Options options) {
return _Strings.isEmpty(adoc)
? ""
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
index 8c1d534993..c8b3083c4f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
@@ -761,6 +761,7 @@ div.label-right .scalarValueWrapper .feedback-links-below-wrapper {
.form-horizontal.actionParametersForm .form-group,
.form-horizontal.propertyEditForm .form-group {
margin-left: -5px;
+ margin-top: 5px;
}
.form-horizontal.inputForm .form-group {