You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/04/14 04:20:21 UTC
[isis] branch master updated: ISIS-3003: decouples primary replay rest and ui domain objects from each other
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new b13615b750 ISIS-3003: decouples primary replay rest and ui domain objects from each other
b13615b750 is described below
commit b13615b750b952193398c2bca6408b0f512c23b2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Apr 14 06:20:16 2022 +0200
ISIS-3003: decouples primary replay rest and ui domain objects from each
other
- also moving them back into the primary replay module
---
.../model/command/CommandModelRepository.java | 30 ++++++++++++++--
.../commandlog/jdo/IsisModuleExtCommandLogJdo.java | 4 ---
.../primary/IsisModuleExtCommandReplayPrimary.java | 4 +++
.../restapi}/CommandRetrievalOnPrimaryService.java | 40 ++++++----------------
.../primary}/ui/CommandReplayOnPrimaryService.java | 25 ++++----------
5 files changed, 48 insertions(+), 55 deletions(-)
diff --git a/extensions/core/command-log/applib/src/main/java/org/apache/isis/extensions/commandlog/model/command/CommandModelRepository.java b/extensions/core/command-log/applib/src/main/java/org/apache/isis/extensions/commandlog/model/command/CommandModelRepository.java
index 668e8a2b8b..0a0767ef4e 100644
--- a/extensions/core/command-log/applib/src/main/java/org/apache/isis/extensions/commandlog/model/command/CommandModelRepository.java
+++ b/extensions/core/command-log/applib/src/main/java/org/apache/isis/extensions/commandlog/model/command/CommandModelRepository.java
@@ -23,10 +23,15 @@ import java.util.List;
import java.util.Optional;
import java.util.UUID;
+import org.springframework.lang.Nullable;
+
+import org.apache.isis.applib.exceptions.RecoverableException;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.schema.cmd.v2.CommandDto;
import org.apache.isis.schema.cmd.v2.CommandsDto;
+import lombok.Getter;
+
public interface CommandModelRepository<C extends CommandModel> {
Optional<C> findByInteractionId(UUID interactionId);
@@ -70,7 +75,7 @@ public interface CommandModelRepository<C extends CommandModel> {
* the primary.
*
* @param interactionId - the identifier of the {@link CommandModel command} being
- * the replay hwm (using {@link #findMostRecentReplayed()} on the
+ * the replay HWM (using {@link #findMostRecentReplayed()} on the
* secondary), or null if no HWM was found there.
* @param batchSize - to restrict the number returned (so that replay
* commands can be batched).
@@ -113,6 +118,27 @@ public interface CommandModelRepository<C extends CommandModel> {
void truncateLog();
-
+ // --
+
+ public static class NotFoundException extends RecoverableException {
+ private static final long serialVersionUID = 1L;
+ @Getter
+ private final UUID interactionId;
+ public NotFoundException(final UUID interactionId) {
+ super("Command not found");
+ this.interactionId = interactionId;
+ }
+ }
+
+ default List<C> findCommandsOnPrimaryElseFail(
+ final @Nullable UUID interactionId,
+ final @Nullable Integer batchSize) throws NotFoundException {
+
+ final List<C> commands = findSince(interactionId, batchSize);
+ if(commands == null) {
+ throw new NotFoundException(interactionId);
+ }
+ return commands;
+ }
}
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/IsisModuleExtCommandLogJdo.java b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/IsisModuleExtCommandLogJdo.java
index fd58a50e86..c83447f223 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/IsisModuleExtCommandLogJdo.java
+++ b/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/IsisModuleExtCommandLogJdo.java
@@ -24,9 +24,7 @@ import org.springframework.context.annotation.Import;
import org.apache.isis.extensions.commandlog.jdo.entities.CommandJdo;
import org.apache.isis.extensions.commandlog.jdo.entities.CommandJdoRepository;
-import org.apache.isis.extensions.commandlog.jdo.ui.CommandReplayOnPrimaryService;
import org.apache.isis.extensions.commandlog.jdo.ui.CommandServiceMenu;
-import org.apache.isis.extensions.commandlog.jdo.ui.rest.CommandRetrievalOnPrimaryService;
import org.apache.isis.extensions.commandlog.model.command.CommandModel;
import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
import org.apache.isis.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
@@ -41,8 +39,6 @@ import org.apache.isis.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAb
, CommandServiceMenu.class
// @Service's
- , CommandReplayOnPrimaryService.class
- , CommandRetrievalOnPrimaryService.class
, CommandJdo.TableColumnOrderDefault.class
// entities
diff --git a/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/IsisModuleExtCommandReplayPrimary.java b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/IsisModuleExtCommandReplayPrimary.java
index 0bb7ff920b..264d059030 100644
--- a/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/IsisModuleExtCommandReplayPrimary.java
+++ b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/IsisModuleExtCommandReplayPrimary.java
@@ -25,7 +25,9 @@ import org.springframework.context.annotation.Profile;
import org.apache.isis.extensions.commandlog.model.IsisModuleExtCommandLogApplib;
import org.apache.isis.extensions.commandreplay.primary.config.PrimaryConfig;
import org.apache.isis.extensions.commandreplay.primary.mixins.Object_openOnSecondary;
+import org.apache.isis.extensions.commandreplay.primary.restapi.CommandRetrievalOnPrimaryService;
import org.apache.isis.extensions.commandreplay.primary.spiimpl.CaptureResultOfCommand;
+import org.apache.isis.extensions.commandreplay.primary.ui.CommandReplayOnPrimaryService;
/**
* @since 2.0 {@index}
@@ -36,6 +38,8 @@ import org.apache.isis.extensions.commandreplay.primary.spiimpl.CaptureResultOfC
// @Service's
CaptureResultOfCommand.class,
+ CommandRetrievalOnPrimaryService.class,
+ CommandReplayOnPrimaryService.class,
PrimaryConfig.class,
// mixins
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/rest/CommandRetrievalOnPrimaryService.java b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.java
similarity index 72%
rename from extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/rest/CommandRetrievalOnPrimaryService.java
rename to extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.java
index 54c8bb1092..27628dae62 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/rest/CommandRetrievalOnPrimaryService.java
+++ b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/restapi/CommandRetrievalOnPrimaryService.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.extensions.commandlog.jdo.ui.rest;
+package org.apache.isis.extensions.commandreplay.primary.restapi;
import java.util.List;
import java.util.UUID;
@@ -26,7 +26,6 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.springframework.context.annotation.Profile;
-import org.springframework.lang.Nullable;
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.DomainService;
@@ -37,21 +36,20 @@ import org.apache.isis.applib.annotation.Parameter;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.exceptions.RecoverableException;
-import org.apache.isis.extensions.commandlog.jdo.entities.CommandJdo;
import org.apache.isis.extensions.commandlog.model.IsisModuleExtCommandLogApplib;
+import org.apache.isis.extensions.commandlog.model.command.CommandModel;
import org.apache.isis.extensions.commandlog.model.command.CommandModelRepository;
+import org.apache.isis.extensions.commandlog.model.command.CommandModelRepository.NotFoundException;
+import org.apache.isis.extensions.commandreplay.primary.IsisModuleExtCommandReplayPrimary;
import org.apache.isis.schema.cmd.v2.CommandDto;
-import lombok.Getter;
-
/**
* @since 2.0 {@index}
*/
@DomainService(
nature = NatureOfService.REST
)
-@Named(IsisModuleExtCommandLogApplib.NAMESPACE_REPLAY_PRIMARY + ".CommandRetrievalOnPrimaryService")
+@Named(IsisModuleExtCommandReplayPrimary.NAMESPACE + ".CommandRetrievalOnPrimaryService")
@javax.annotation.Priority(PriorityPrecedence.EARLY)
@Profile("command-replay-primary")
public class CommandRetrievalOnPrimaryService {
@@ -60,15 +58,8 @@ public class CommandRetrievalOnPrimaryService {
extends IsisModuleExtCommandLogApplib.ActionDomainEvent<CommandRetrievalOnPrimaryService> { }
public static class FindCommandsOnPrimaryFromDomainEvent extends ActionDomainEvent { }
- public static class NotFoundException extends RecoverableException {
- private static final long serialVersionUID = 1L;
- @Getter
- private final UUID interactionId;
- public NotFoundException(final UUID interactionId) {
- super("Command not found");
- this.interactionId = interactionId;
- }
- }
+
+ @Inject CommandModelRepository<? extends CommandModel> commandModelRepository;
/**
* TODO: outdated info ...
@@ -93,25 +84,14 @@ public class CommandRetrievalOnPrimaryService {
@ParameterLayout(named="Batch size")
final Integer batchSize) throws NotFoundException {
- return findCommandsOnPrimary(interactionId, batchSize).stream()
- .map(CommandJdo::getCommandDto)
+ return commandModelRepository.findCommandsOnPrimaryElseFail(interactionId, batchSize)
+ .stream()
+ .map(CommandModel::getCommandDto)
.collect(Collectors.toList());
}
@MemberSupport public Integer default1FindCommandsOnPrimaryAsDto() {
return 25;
}
- public List<CommandJdo> findCommandsOnPrimary(
- final @Nullable UUID interactionId,
- final @Nullable Integer batchSize) throws NotFoundException {
-
- final List<CommandJdo> commands = commandModelRepository.findSince(interactionId, batchSize);
- if(commands == null) {
- throw new NotFoundException(interactionId);
- }
- return commands;
- }
-
- @Inject CommandModelRepository<CommandJdo> commandModelRepository;
}
diff --git a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandReplayOnPrimaryService.java b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.java
similarity index 88%
rename from extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandReplayOnPrimaryService.java
rename to extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.java
index 06c5d3e55c..bfdad16219 100644
--- a/extensions/core/command-log/jdo/src/main/java/org/apache/isis/extensions/commandlog/jdo/ui/CommandReplayOnPrimaryService.java
+++ b/extensions/core/command-replay/primary/src/main/java/org/apache/isis/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.extensions.commandlog.jdo.ui;
+package org.apache.isis.extensions.commandreplay.primary.ui;
import java.util.List;
import java.util.UUID;
@@ -36,20 +36,18 @@ import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.PriorityPrecedence;
import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.exceptions.RecoverableException;
import org.apache.isis.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto;
import org.apache.isis.applib.services.jaxb.JaxbService;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.value.Clob;
-import org.apache.isis.extensions.commandlog.jdo.IsisModuleExtCommandLogJdo;
-import org.apache.isis.extensions.commandlog.jdo.ui.rest.CommandRetrievalOnPrimaryService;
import org.apache.isis.extensions.commandlog.model.IsisModuleExtCommandLogApplib;
import org.apache.isis.extensions.commandlog.model.command.CommandModel;
import org.apache.isis.extensions.commandlog.model.command.CommandModelRepository;
+import org.apache.isis.extensions.commandlog.model.command.CommandModelRepository.NotFoundException;
+import org.apache.isis.extensions.commandreplay.primary.IsisModuleExtCommandReplayPrimary;
import org.apache.isis.schema.cmd.v2.CommandDto;
import org.apache.isis.schema.cmd.v2.CommandsDto;
-import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
@@ -62,7 +60,7 @@ import lombok.RequiredArgsConstructor;
named = "Activity",
menuBar = DomainServiceLayout.MenuBar.SECONDARY
)
-@Named(IsisModuleExtCommandLogJdo.NAMESPACE + ".CommandReplayOnPrimaryService")
+@Named(IsisModuleExtCommandReplayPrimary.NAMESPACE + ".CommandReplayOnPrimaryService")
@javax.annotation.Priority(PriorityPrecedence.EARLY)
@Profile("command-replay-primary")
@RequiredArgsConstructor
@@ -73,22 +71,11 @@ public class CommandReplayOnPrimaryService {
@Inject final JaxbService jaxbService;
@Inject final MessageService messageService;
@Inject final ContentMappingServiceForCommandsDto contentMappingServiceForCommandsDto;
- @Inject final CommandRetrievalOnPrimaryService commandRetrievalOnPrimaryService;
public static abstract class ActionDomainEvent<T>
extends IsisModuleExtCommandLogApplib.ActionDomainEvent<T> { }
- public static class NotFoundException extends RecoverableException {
- private static final long serialVersionUID = 1L;
- @Getter
- private final UUID interactionId;
- public NotFoundException(final UUID interactionId) {
- super("Command not found");
- this.interactionId = interactionId;
- }
- }
-
@Action(domainEvent = findCommands.ActionEvent.class, semantics = SemanticsOf.SAFE)
@ActionLayout(cssClassFa = "fa-search", sequence="40")
public class findCommands{
@@ -111,10 +98,10 @@ public class CommandReplayOnPrimaryService {
@ParameterLayout(named="Batch size")
final Integer batchSize)
throws NotFoundException {
- return commandRetrievalOnPrimaryService.findCommandsOnPrimary(interactionId, batchSize);
+ return commandModelRepository.findCommandsOnPrimaryElseFail(interactionId, batchSize);
}
@MemberSupport public Integer default1Act() {
- return commandRetrievalOnPrimaryService.default1FindCommandsOnPrimaryAsDto();
+ return 25;
}
}