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 2021/05/27 10:20:34 UTC
[isis] branch master updated: ISIS-2513: Demo: add JPA support for
ActionExecutionPublishing
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 f55e9e1 ISIS-2513: Demo: add JPA support for ActionExecutionPublishing
f55e9e1 is described below
commit f55e9e119d41b39d6fee2ab628b9f45dbc166ad1
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu May 27 12:20:23 2021 +0200
ISIS-2513: Demo: add JPA support for ActionExecutionPublishing
---
.../src/main/java/demoapp/dom/DemoModuleJpa.java | 2 +
.../dom/domain/actions/Action/ActionMenu.java | 9 ++--
.../ActionCommandPublishingEntity.java | 11 +++--
.../jdo/ActionCommandPublishingJdo.java | 2 +-
.../jpa/ActionCommandPublishingJpa.java | 2 +-
.../ActionExecutionPublishingEntity.java} | 20 ++++----
... => ActionExecutionPublishingEntity.layout.xml} | 0
...utionPublishingEntity_mixinUpdateProperty.java} | 18 ++++---
...gEntity_mixinUpdatePropertyMetaAnnotation.java} | 18 ++++---
...xinUpdatePropertyMetaAnnotationOverridden.java} | 20 ++++----
.../ActionExecutionPublishingJdoSeedService.java | 57 ----------------------
....java => ActionExecutionPublishingSeeding.java} | 26 +++-------
.../ActionExecutionPublishingJdo-description.adoc | 8 +--
.../{ => jdo}/ActionExecutionPublishingJdo.java | 17 ++++---
.../ActionExecutionPublishingJdoEntities.java | 31 +++++-------
.../ActionExecutionPublishingJpa-description.adoc} | 14 +++---
.../ActionExecutionPublishingJpa.java} | 55 +++++++++++++--------
.../ActionExecutionPublishingJpaEntities.java} | 31 +++++-------
18 files changed, 141 insertions(+), 200 deletions(-)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
index 3948c48..36762b1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/DemoModuleJpa.java
@@ -27,6 +27,7 @@ import org.apache.isis.extensions.commandlog.jpa.IsisModuleExtCommandLogJpa;
import org.apache.isis.persistence.jpa.eclipselink.IsisModuleJpaEclipselink;
import demoapp.dom.domain.actions.Action.commandPublishing.jpa.ActionCommandPublishingJpa;
+import demoapp.dom.domain.actions.Action.executionPublishing.jpa.ActionExecutionPublishingJpa;
import demoapp.dom.services.core.wrapperFactory.jpa.WrapperFactoryJpa;
import demoapp.dom.services.extensions.secman.apptenancy.jpa.TenantedJpa;
import demoapp.dom.types.isis.blobs.jpa.IsisBlobJpa;
@@ -123,6 +124,7 @@ import demoapp.dom.types.primitive.shorts.jpa.PrimitiveShortJpa;
WrapperFactoryJpa.class,
ActionCommandPublishingJpa.class,
+ ActionExecutionPublishingJpa.class,
})
public class DemoModuleJpa {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/ActionMenu.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/ActionMenu.java
index ebb3da2..094e7e9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/ActionMenu.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/ActionMenu.java
@@ -35,8 +35,7 @@ import demoapp.dom.domain.actions.Action.associateWith.ActionAssociateWithVm;
import demoapp.dom.domain.actions.Action.associateWith.child.ActionAssociateWithChildVm;
import demoapp.dom.domain.actions.Action.commandPublishing.ActionCommandPublishingEntity;
import demoapp.dom.domain.actions.Action.domainEvent.ActionDomainEventVm;
-import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdo;
-import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingJdoEntities;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingEntity;
import demoapp.dom.domain.actions.Action.hidden.ActionHiddenVm;
import demoapp.dom.domain.actions.Action.restrictTo.ActionRestrictToVm;
import demoapp.dom.domain.actions.Action.semantics.ActionSemanticsVm;
@@ -48,7 +47,7 @@ import demoapp.dom.domain.actions.Action.typeOf.child.ActionTypeOfChildVm;
public class ActionMenu {
final ValueHolderRepository<String, ? extends ActionCommandPublishingEntity> actionCommandEntities;
- final ActionExecutionPublishingJdoEntities actionPublishingJdoEntities;
+ final ValueHolderRepository<String, ? extends ActionExecutionPublishingEntity> actionPublishingEntities;
final NameSamples samples;
@Action(semantics = SemanticsOf.SAFE)
@@ -84,8 +83,8 @@ public class ActionMenu {
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(cssClassFa="fa-book", describedAs = "Action invocation events as XML")
- public ActionExecutionPublishingJdo executionPublishing(){
- return actionPublishingJdoEntities.first();
+ public ActionExecutionPublishingEntity executionPublishing(){
+ return actionPublishingEntities.first().orElse(null);
}
@Action(semantics = SemanticsOf.SAFE)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java
index 823a28d..5b69c3c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java
@@ -33,17 +33,20 @@ implements
ExposePersistedCommands,
ValueHolder<String> {
- public abstract String getProperty();
- public abstract void setProperty(String value);
-
@Override
public String value() {
return getProperty();
}
- protected abstract void setPropertyCommandDisabled(String value);
+
+ protected abstract String getProperty();
+ protected abstract void setProperty(String value);
+
protected abstract String getPropertyCommandDisabled();
+ protected abstract void setPropertyCommandDisabled(String value);
+
protected abstract String getPropertyMetaAnnotated();
protected abstract void setPropertyMetaAnnotated(String value);
+
protected abstract String getPropertyMetaAnnotatedOverridden();
protected abstract void setPropertyMetaAnnotatedOverridden(String value);
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jdo/ActionCommandPublishingJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jdo/ActionCommandPublishingJdo.java
index 469bd89..ba2b94d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jdo/ActionCommandPublishingJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jdo/ActionCommandPublishingJdo.java
@@ -64,7 +64,7 @@ public class ActionCommandPublishingJdo
}
public String title() {
- return "Action#command";
+ return "Action#commandPublishing (JDO)";
}
//tag::property[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jpa/ActionCommandPublishingJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jpa/ActionCommandPublishingJpa.java
index d80b8ee..00f7bb0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jpa/ActionCommandPublishingJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/jpa/ActionCommandPublishingJpa.java
@@ -68,7 +68,7 @@ public class ActionCommandPublishingJpa
}
public String title() {
- return "Action#command";
+ return "Action#commandPublishing (JPA)";
}
@Id
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity.java
similarity index 72%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity.java
index 823a28d..9b5db11 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/commandPublishing/ActionCommandPublishingEntity.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity.java
@@ -16,34 +16,34 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.actions.Action.commandPublishing;
+package demoapp.dom.domain.actions.Action.executionPublishing;
import org.apache.isis.applib.annotation.DomainObject;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import demoapp.dom._infra.values.ValueHolder;
-import demoapp.dom.domain._commands.ExposePersistedCommands;
+import demoapp.dom.domain._interactions.ExposeCapturedInteractions;
@DomainObject(
- logicalTypeName = "demo.ActionCommandPublishingEntity" // shared permissions with concrete sub class
+ logicalTypeName = "demo.ActionExecutionPublishingEntity" // shared permissions with concrete sub class
)
-public abstract class ActionCommandPublishingEntity
+public abstract class ActionExecutionPublishingEntity
implements
HasAsciiDocDescription,
- ExposePersistedCommands,
+ ExposeCapturedInteractions,
ValueHolder<String> {
- public abstract String getProperty();
- public abstract void setProperty(String value);
-
@Override
public String value() {
return getProperty();
}
- protected abstract void setPropertyCommandDisabled(String value);
- protected abstract String getPropertyCommandDisabled();
+
+ protected abstract String getProperty();
+ protected abstract void setProperty(String value);
+
protected abstract String getPropertyMetaAnnotated();
protected abstract void setPropertyMetaAnnotated(String value);
+
protected abstract String getPropertyMetaAnnotatedOverridden();
protected abstract void setPropertyMetaAnnotatedOverridden(String value);
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity.layout.xml
similarity index 100%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.layout.xml
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity.layout.xml
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdateProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdateProperty.java
similarity index 70%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdateProperty.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdateProperty.java
index 8152e1a..9671cb5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdateProperty.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdateProperty.java
@@ -23,6 +23,8 @@ import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Publishing;
import org.apache.isis.applib.annotation.SemanticsOf;
+import demoapp.dom.domain.actions.Action.executionPublishing.jdo.ActionExecutionPublishingJdo;
+
//tag::class[]
@Action(
executionPublishing = Publishing.ENABLED // <.>
@@ -34,23 +36,23 @@ import org.apache.isis.applib.annotation.SemanticsOf;
, associateWith = "property"
, sequence = "2"
)
-public class ActionExecutionPublishingJdo_mixinUpdateProperty {
+public class ActionExecutionPublishingEntity_mixinUpdateProperty {
// ...
//end::class[]
- private final ActionExecutionPublishingJdo actionPublishingJdo;
+ private final ActionExecutionPublishingEntity actionPublishingEntity;
- public ActionExecutionPublishingJdo_mixinUpdateProperty(ActionExecutionPublishingJdo actionPublishingJdo) {
- this.actionPublishingJdo = actionPublishingJdo;
+ public ActionExecutionPublishingEntity_mixinUpdateProperty(ActionExecutionPublishingJdo actionPublishingJdo) {
+ this.actionPublishingEntity = actionPublishingJdo;
}
//tag::class[]
- public ActionExecutionPublishingJdo act(final String value) {
- actionPublishingJdo.setProperty(value);
- return actionPublishingJdo;
+ public ActionExecutionPublishingEntity act(final String value) {
+ actionPublishingEntity.setProperty(value);
+ return actionPublishingEntity;
}
public String default0Act() {
- return actionPublishingJdo.getProperty();
+ return actionPublishingEntity.getProperty();
}
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation.java
similarity index 68%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation.java
index 64b0127..9e015cb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation.java
@@ -22,6 +22,8 @@ import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.SemanticsOf;
+import demoapp.dom.domain.actions.Action.executionPublishing.jdo.ActionExecutionPublishingJdo;
+
//tag::class[]
@ActionExecutionPublishingEnabledMetaAnnotation // <.>
@Action(
@@ -33,23 +35,23 @@ import org.apache.isis.applib.annotation.SemanticsOf;
, associateWith = "propertyMetaAnnotated"
, sequence = "2"
)
-public class ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation {
+public class ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation {
// ...
//end::class[]
- private final ActionExecutionPublishingJdo actionPublishingJdo;
+ private final ActionExecutionPublishingEntity actionPublishingEntity;
- public ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation(ActionExecutionPublishingJdo actionPublishingJdo) {
- this.actionPublishingJdo = actionPublishingJdo;
+ public ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation(ActionExecutionPublishingJdo actionPublishingJdo) {
+ this.actionPublishingEntity = actionPublishingJdo;
}
//tag::class[]
- public ActionExecutionPublishingJdo act(final String value) {
- actionPublishingJdo.setPropertyMetaAnnotated(value);
- return actionPublishingJdo;
+ public ActionExecutionPublishingEntity act(final String value) {
+ actionPublishingEntity.setPropertyMetaAnnotated(value);
+ return actionPublishingEntity;
}
public String default0Act() {
- return actionPublishingJdo.getPropertyMetaAnnotated();
+ return actionPublishingEntity.getPropertyMetaAnnotated();
}
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java
similarity index 67%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java
index 63e6971..bc015c3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java
@@ -23,10 +23,12 @@ import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.Publishing;
import org.apache.isis.applib.annotation.SemanticsOf;
+import demoapp.dom.domain.actions.Action.executionPublishing.jdo.ActionExecutionPublishingJdo;
+
//tag::class[]
@ActionExecutionPublishingDisabledMetaAnnotation // <.>
@Action(
- executionPublishing = Publishing.ENABLED // <.>
+ executionPublishing = Publishing.ENABLED // <.>
, semantics = SemanticsOf.IDEMPOTENT
)
@ActionLayout(
@@ -37,23 +39,23 @@ import org.apache.isis.applib.annotation.SemanticsOf;
, associateWith = "propertyMetaAnnotatedOverridden"
, sequence = "2"
)
-public class ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden {
+public class ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden {
// ...
//end::class[]
- private final ActionExecutionPublishingJdo actionPublishingJdo;
+ private final ActionExecutionPublishingEntity actionPublishingEntity;
- public ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden(ActionExecutionPublishingJdo actionPublishingJdo) {
- this.actionPublishingJdo = actionPublishingJdo;
+ public ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden(ActionExecutionPublishingJdo actionPublishingJdo) {
+ this.actionPublishingEntity = actionPublishingJdo;
}
//tag::class[]
- public ActionExecutionPublishingJdo act(final String value) {
- actionPublishingJdo.setPropertyMetaAnnotatedOverridden(value);
- return actionPublishingJdo;
+ public ActionExecutionPublishingEntity act(final String value) {
+ actionPublishingEntity.setPropertyMetaAnnotatedOverridden(value);
+ return actionPublishingEntity;
}
public String default0Act() {
- return actionPublishingJdo.getPropertyMetaAnnotatedOverridden();
+ return actionPublishingEntity.getPropertyMetaAnnotatedOverridden();
}
}
//end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoSeedService.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoSeedService.java
deleted file mode 100644
index e5b45ca..0000000
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoSeedService.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * 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.actions.Action.executionPublishing;
-
-import javax.inject.Inject;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
-
-import demoapp.dom._infra.seed.SeedServiceAbstract;
-import demoapp.dom.types.Samples;
-
-@Service
-public class ActionExecutionPublishingJdoSeedService extends SeedServiceAbstract {
-
- public ActionExecutionPublishingJdoSeedService() {
- super(PropertyPublishingJdoEntityFixture::new);
- }
-
- static class PropertyPublishingJdoEntityFixture extends FixtureScript {
-
- @Override
- protected void execute(ExecutionContext executionContext) {
- samples.stream()
- .map(ActionExecutionPublishingJdo::new)
- .forEach(domainObject -> {
- repositoryService.persist(domainObject);
- executionContext.addResult(this, domainObject);
- });
-
- }
-
- @Inject
- RepositoryService repositoryService;
-
- @Inject
- Samples<String> samples;
- }
-}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingSeeding.java
similarity index 59%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingSeeding.java
index cade649..dde2486 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingSeeding.java
@@ -18,32 +18,20 @@
*/
package demoapp.dom.domain.actions.Action.executionPublishing;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
import javax.inject.Inject;
import org.springframework.stereotype.Service;
-import org.apache.isis.applib.services.repository.RepositoryService;
+import demoapp.dom._infra.seed.SeedServiceAbstract;
+import demoapp.dom._infra.values.ValueHolderRepository;
@Service
-public class ActionExecutionPublishingJdoEntities {
-
- public Optional<ActionExecutionPublishingJdo> find(final String value) {
- return repositoryService.firstMatch(ActionExecutionPublishingJdo.class, x -> Objects.equals(x.getProperty(), value));
- }
-
- public List<ActionExecutionPublishingJdo> all() {
- return repositoryService.allInstances(ActionExecutionPublishingJdo.class);
- }
-
- public ActionExecutionPublishingJdo first() {
- return all().stream().findFirst().get();
- }
+public class ActionExecutionPublishingSeeding
+extends SeedServiceAbstract {
@Inject
- RepositoryService repositoryService;
+ public ActionExecutionPublishingSeeding(ValueHolderRepository<String, ? extends ActionExecutionPublishingEntity> entities) {
+ super(entities);
+ }
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdo-description.adoc
similarity index 92%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo-description.adoc
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdo-description.adoc
index 6371dcf..575ee6f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdo-description.adoc
@@ -30,7 +30,7 @@ include::ActionExecutionPublishingJdo.java[tags=annotation]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo_mixinUpdateProperty.java[tags=class]
+include::../ActionExecutionPublishingEntity_mixinUpdateProperty.java[tags=class]
----
<.> explicitly specifies that invoking the mixin action should be published.
@@ -43,7 +43,7 @@ The `publishing` element can also be specified using a custom meta-annotation:
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingEnabledMetaAnnotation.java[tags=class]
+include::../ActionExecutionPublishingEnabledMetaAnnotation.java[tags=class]
----
<.> annotated for an action
<.> annotation can be applied to an action method or to a mixin
@@ -60,7 +60,7 @@ include::ActionExecutionPublishingJdo.java[tags=meta-annotation]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation.java[tags=class]
+include::../ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation.java[tags=class]
----
<.> semantic is inherited from the meta-annotation
@@ -82,7 +82,7 @@ include::ActionExecutionPublishingJdo.java[tags=meta-annotation-overridden]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java[tags=class]
+include::../ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java[tags=class]
----
<.> semantic from meta-annotation ...
<.> \... is overridden by the `@Action` annotation
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdo.java
similarity index 88%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdo.java
index 856b3d3..e4bdbed 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdo.java
@@ -16,13 +16,15 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.actions.Action.executionPublishing;
+package demoapp.dom.domain.actions.Action.executionPublishing.jdo;
import javax.jdo.annotations.DatastoreIdentity;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
+import org.springframework.context.annotation.Profile;
+
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.DomainObject;
@@ -33,21 +35,24 @@ import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Publishing;
import org.apache.isis.applib.annotation.SemanticsOf;
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.domain._interactions.ExposeCapturedInteractions;
import lombok.Getter;
import lombok.Setter;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingDisabledMetaAnnotation;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingEnabledMetaAnnotation;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingEntity;
+
+@Profile("demo-jdo")
//tag::class[]
@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
@DomainObject(
nature=Nature.ENTITY
- , logicalTypeName = "demo.ActionPublishingJdo"
+ , logicalTypeName = "demo.ActionExecutionPublishingEntity"
, editing = Editing.DISABLED
)
public class ActionExecutionPublishingJdo
- implements HasAsciiDocDescription, ExposeCapturedInteractions {
+ extends ActionExecutionPublishingEntity {
// ...
//end::class[]
@@ -58,7 +63,7 @@ public class ActionExecutionPublishingJdo
}
public String title() {
- return "Action#publishing";
+ return "Action#executionPublishing (JDO)";
}
//tag::property[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdoEntities.java
similarity index 54%
copy from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java
copy to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdoEntities.java
index cade649..8b13ea7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jdo/ActionExecutionPublishingJdoEntities.java
@@ -16,34 +16,25 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.actions.Action.executionPublishing;
-
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-import javax.inject.Inject;
+package demoapp.dom.domain.actions.Action.executionPublishing.jdo;
+import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
-import org.apache.isis.applib.services.repository.RepositoryService;
+import demoapp.dom._infra.values.ValueHolderRepository;
+@Profile("demo-jdo")
@Service
-public class ActionExecutionPublishingJdoEntities {
+public class ActionExecutionPublishingJdoEntities
+extends ValueHolderRepository<String, ActionExecutionPublishingJdo> {
- public Optional<ActionExecutionPublishingJdo> find(final String value) {
- return repositoryService.firstMatch(ActionExecutionPublishingJdo.class, x -> Objects.equals(x.getProperty(), value));
+ protected ActionExecutionPublishingJdoEntities() {
+ super(ActionExecutionPublishingJdo.class);
}
- public List<ActionExecutionPublishingJdo> all() {
- return repositoryService.allInstances(ActionExecutionPublishingJdo.class);
+ @Override
+ protected ActionExecutionPublishingJdo newDetachedEntity(String value) {
+ return new ActionExecutionPublishingJdo(value);
}
- public ActionExecutionPublishingJdo first() {
- return all().stream().findFirst().get();
- }
-
- @Inject
- RepositoryService repositoryService;
-
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpa-description.adoc
similarity index 89%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo-description.adoc
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpa-description.adoc
index 6371dcf..73210e6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpa-description.adoc
@@ -22,7 +22,7 @@ The `publisher` element can be specified explicitly using an annotation through
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo.java[tags=annotation]
+include::ActionExecutionPublishingJpa.java[tags=annotation]
----
<.> explicitly specifies that invoking the action should be published.
@@ -30,7 +30,7 @@ include::ActionExecutionPublishingJdo.java[tags=annotation]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo_mixinUpdateProperty.java[tags=class]
+include::../ActionExecutionPublishingEntity_mixinUpdateProperty.java[tags=class]
----
<.> explicitly specifies that invoking the mixin action should be published.
@@ -43,7 +43,7 @@ The `publishing` element can also be specified using a custom meta-annotation:
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingEnabledMetaAnnotation.java[tags=class]
+include::../ActionExecutionPublishingEnabledMetaAnnotation.java[tags=class]
----
<.> annotated for an action
<.> annotation can be applied to an action method or to a mixin
@@ -52,7 +52,7 @@ include::ActionExecutionPublishingEnabledMetaAnnotation.java[tags=class]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo.java[tags=meta-annotation]
+include::ActionExecutionPublishingJpa.java[tags=meta-annotation]
----
<.> semantic is inherited from the meta-annotation
@@ -60,7 +60,7 @@ include::ActionExecutionPublishingJdo.java[tags=meta-annotation]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotation.java[tags=class]
+include::../ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotation.java[tags=class]
----
<.> semantic is inherited from the meta-annotation
@@ -73,7 +73,7 @@ The meta-annotation can itself be overridden:
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo.java[tags=meta-annotation-overridden]
+include::ActionExecutionPublishingJpa.java[tags=meta-annotation-overridden]
----
<.> semantic from meta-annotation ...
<.> \... is overridden by the `@Action` annotation
@@ -82,7 +82,7 @@ include::ActionExecutionPublishingJdo.java[tags=meta-annotation-overridden]
+
[source,java,indent=0]
----
-include::ActionExecutionPublishingJdo_mixinUpdatePropertyMetaAnnotationOverridden.java[tags=class]
+include::../ActionExecutionPublishingEntity_mixinUpdatePropertyMetaAnnotationOverridden.java[tags=class]
----
<.> semantic from meta-annotation ...
<.> \... is overridden by the `@Action` annotation
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpa.java
similarity index 73%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpa.java
index 856b3d3..dcb4801 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpa.java
@@ -16,51 +16,64 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.actions.Action.executionPublishing;
+package demoapp.dom.domain.actions.Action.executionPublishing.jpa;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.PersistenceCapable;
+import javax.persistence.Entity;
+import javax.persistence.EntityListeners;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+import org.springframework.context.annotation.Profile;
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
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.SemanticsOf;
+import org.apache.isis.persistence.jpa.applib.integration.JpaEntityInjectionPointResolver;
-import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.domain._interactions.ExposeCapturedInteractions;
import lombok.Getter;
+import lombok.NoArgsConstructor;
import lombok.Setter;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingDisabledMetaAnnotation;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingEnabledMetaAnnotation;
+import demoapp.dom.domain.actions.Action.executionPublishing.ActionExecutionPublishingEntity;
+
+@Profile("demo-jpa")
//tag::class[]
-@PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
+@Entity
+@Table(
+ schema = "demo",
+ name = "ActionExecutionPublishingJpa"
+)
+@EntityListeners(JpaEntityInjectionPointResolver.class)
@DomainObject(
- nature=Nature.ENTITY
- , logicalTypeName = "demo.ActionPublishingJdo"
- , editing = Editing.DISABLED
+ logicalTypeName = "demo.ActionExecutionPublishingEntity"
)
-public class ActionExecutionPublishingJdo
- implements HasAsciiDocDescription, ExposeCapturedInteractions {
+@NoArgsConstructor
+public class ActionExecutionPublishingJpa
+ extends ActionExecutionPublishingEntity {
// ...
//end::class[]
- public ActionExecutionPublishingJdo(String initialValue) {
+ public ActionExecutionPublishingJpa(String initialValue) {
this.property = initialValue;
this.propertyMetaAnnotated = initialValue;
this.propertyMetaAnnotatedOverridden = initialValue;
}
public String title() {
- return "Action#publishing";
+ return "Action#executionPublishing (JPA)";
}
+ @Id
+ @GeneratedValue
+ private Long id;
+
//tag::property[]
@Property()
@PropertyLayout(fieldSetId = "annotation", sequence = "1")
@@ -89,7 +102,7 @@ public class ActionExecutionPublishingJdo
, associateWith = "property"
, sequence = "1"
)
- public ActionExecutionPublishingJdo updatePropertyUsingAnnotation(final String value) {
+ public ActionExecutionPublishingJpa updatePropertyUsingAnnotation(final String value) {
setProperty(value);
return this;
}
@@ -110,7 +123,7 @@ public class ActionExecutionPublishingJdo
, associateWith = "propertyMetaAnnotated"
, sequence = "1"
)
- public ActionExecutionPublishingJdo updatePropertyUsingMetaAnnotation(final String value) {
+ public ActionExecutionPublishingJpa updatePropertyUsingMetaAnnotation(final String value) {
setPropertyMetaAnnotated(value);
return this;
}
@@ -133,7 +146,7 @@ public class ActionExecutionPublishingJdo
, associateWith = "propertyMetaAnnotatedOverridden"
, sequence = "1"
)
- public ActionExecutionPublishingJdo updatePropertyUsingMetaAnnotationButOverridden(final String value) {
+ public ActionExecutionPublishingJpa updatePropertyUsingMetaAnnotationButOverridden(final String value) {
setPropertyMetaAnnotatedOverridden(value);
return this;
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpaEntities.java
similarity index 54%
rename from examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java
rename to examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpaEntities.java
index cade649..6f71972 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/ActionExecutionPublishingJdoEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/executionPublishing/jpa/ActionExecutionPublishingJpaEntities.java
@@ -16,34 +16,25 @@
* specific language governing permissions and limitations
* under the License.
*/
-package demoapp.dom.domain.actions.Action.executionPublishing;
-
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-import javax.inject.Inject;
+package demoapp.dom.domain.actions.Action.executionPublishing.jpa;
+import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;
-import org.apache.isis.applib.services.repository.RepositoryService;
+import demoapp.dom._infra.values.ValueHolderRepository;
+@Profile("demo-jpa")
@Service
-public class ActionExecutionPublishingJdoEntities {
+public class ActionExecutionPublishingJpaEntities
+extends ValueHolderRepository<String, ActionExecutionPublishingJpa> {
- public Optional<ActionExecutionPublishingJdo> find(final String value) {
- return repositoryService.firstMatch(ActionExecutionPublishingJdo.class, x -> Objects.equals(x.getProperty(), value));
+ protected ActionExecutionPublishingJpaEntities() {
+ super(ActionExecutionPublishingJpa.class);
}
- public List<ActionExecutionPublishingJdo> all() {
- return repositoryService.allInstances(ActionExecutionPublishingJdo.class);
+ @Override
+ protected ActionExecutionPublishingJpa newDetachedEntity(String value) {
+ return new ActionExecutionPublishingJpa(value);
}
- public ActionExecutionPublishingJdo first() {
- return all().stream().findFirst().get();
- }
-
- @Inject
- RepositoryService repositoryService;
-
}