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 2021/03/15 06:34:46 UTC
[isis-app-simpleapp] branch jpa updated (2e6b201 -> 68f4fd0)
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a change to branch jpa
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git.
from 2e6b201 minor update for M5
add 41377f8 updates for M5, resurrecting flyway config
new 2a29eea Merge branch 'jdo' into jpa
add 186f4e3 fixes stale integ test
new 68f4fd0 Merge branch 'jdo' into jpa
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../integtests/SimpleModuleIntegTestAbstract.java | 37 +++++++++++++-
.../integtests/SimpleModuleTestConfiguration.java | 59 ----------------------
.../integtests/tests/SimpleObject_IntegTest.java | 19 -------
.../modules/simple/dom/so/SimpleObject.java | 22 +++-----
.../modules/simple/dom/so/SimpleObjects.java | 10 ++--
.../main/java/domainapp/webapp/AppManifest.java | 2 -
.../fixture/scenarios/DomainAppDemo.java | 5 +-
.../services/homepage/HomePageViewModel.java | 4 +-
.../webapp/custom/restapi/CustomController.java | 4 +-
webapp/src/main/resources/application.yml | 2 +
.../config/application-SQLSERVER.properties | 40 +++++++++++++++
.../config/todo~application-POSTGRESQL.properties | 34 -------------
.../config/todo~application-SQLSERVER.properties | 34 -------------
13 files changed, 97 insertions(+), 175 deletions(-)
delete mode 100644 module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleTestConfiguration.java
create mode 100644 webapp/src/main/resources/config/application-SQLSERVER.properties
delete mode 100644 webapp/src/main/resources/config/todo~application-POSTGRESQL.properties
delete mode 100644 webapp/src/main/resources/config/todo~application-SQLSERVER.properties
[isis-app-simpleapp] 02/02: Merge branch 'jdo' into jpa
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch jpa
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git
commit 68f4fd0532e3b860b675054ae41380d93f81402d
Merge: 2a29eea 186f4e3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 15 06:30:47 2021 +0000
Merge branch 'jdo' into jpa
.../integtests/tests/SimpleObject_IntegTest.java | 19 -------------------
1 file changed, 19 deletions(-)
[isis-app-simpleapp] 01/02: Merge branch 'jdo' into jpa
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch jpa
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git
commit 2a29eea5dd94cdac2b0447cf05ff2509cb8c61f9
Merge: 2e6b201 41377f8
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Mar 15 06:21:26 2021 +0000
Merge branch 'jdo' into jpa
.../integtests/SimpleModuleIntegTestAbstract.java | 37 +++++++++++++-
.../integtests/SimpleModuleTestConfiguration.java | 59 ----------------------
.../modules/simple/dom/so/SimpleObject.java | 22 +++-----
.../modules/simple/dom/so/SimpleObjects.java | 10 ++--
.../main/java/domainapp/webapp/AppManifest.java | 2 -
.../fixture/scenarios/DomainAppDemo.java | 5 +-
.../services/homepage/HomePageViewModel.java | 4 +-
.../webapp/custom/restapi/CustomController.java | 4 +-
webapp/src/main/resources/application.yml | 2 +
.../config/application-SQLSERVER.properties | 40 +++++++++++++++
.../config/todo~application-POSTGRESQL.properties | 34 -------------
.../config/todo~application-SQLSERVER.properties | 34 -------------
12 files changed, 97 insertions(+), 156 deletions(-)
diff --cc module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
index dc42df0,ff7480e..b2f7721
--- a/module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
+++ b/module-simple-tests/src/test/java/domainapp/modules/simple/integtests/SimpleModuleIntegTestAbstract.java
@@@ -1,9 -1,21 +1,21 @@@
package domainapp.modules.simple.integtests;
+ import org.springframework.boot.SpringBootConfiguration;
+ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
+ import org.springframework.context.annotation.Import;
+ import org.springframework.context.annotation.PropertySource;
+ import org.springframework.context.annotation.PropertySources;
import org.springframework.test.context.ActiveProfiles;
+ import org.apache.isis.core.config.presets.IsisPresets;
+ import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
-import org.apache.isis.persistence.jdo.datanucleus.IsisModuleJdoDatanucleus;
++import org.apache.isis.persistence.jpa.eclipselink.IsisModuleJpaEclipselink;
+ import org.apache.isis.security.bypass.IsisModuleSecurityBypass;
import org.apache.isis.testing.fixtures.applib.IsisIntegrationTestAbstractWithFixtures;
+ import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
+
+ import domainapp.modules.simple.SimpleModule;
@SpringBootTest(
@@@ -12,4 -24,28 +24,27 @@@
@ActiveProfiles("test")
public abstract class SimpleModuleIntegTestAbstract extends IsisIntegrationTestAbstractWithFixtures {
+ /**
+ * Compared to the production app manifest <code>domainapp.webapp.AppManifest</code>,
+ * here we in effect disable security checks, and we exclude any web/UI modules.
+ */
+ @SpringBootConfiguration
+ @EnableAutoConfiguration
+ @Import({
+
+ IsisModuleCoreRuntimeServices.class,
+ IsisModuleSecurityBypass.class,
- IsisModuleJdoDatanucleus.class,
++ IsisModuleJpaEclipselink.class,
+ IsisModuleTestingFixturesApplib.class,
+
+ SimpleModule.class
+ })
+ @PropertySources({
+ @PropertySource(IsisPresets.H2InMemory_withUniqueSchema),
- @PropertySource(IsisPresets.DatanucleusAutocreateNoValidate),
+ @PropertySource(IsisPresets.UseLog4j2Test),
+ })
+ public static class TestApp {
+
+ }
+
}
diff --cc module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
index 97ce057,ff0b6d5..6cb6e8a
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
@@@ -8,9 -11,7 +8,8 @@@ import javax.xml.bind.annotation.adapte
import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.DomainObjectLayout;
-import org.apache.isis.applib.annotation.Publishing;
+import org.apache.isis.applib.annotation.Programmatic;
- import org.apache.isis.applib.annotation.Publishing;
+import org.apache.isis.applib.jaxb.PersistentEntityAdapter;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.applib.services.repository.RepositoryService;
import org.apache.isis.applib.services.title.TitleService;
@@@ -19,27 -20,35 +18,26 @@@ import org.apache.isis.persistence.jpa.
import static org.apache.isis.applib.annotation.SemanticsOf.IDEMPOTENT;
import static org.apache.isis.applib.annotation.SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE;
-import domainapp.modules.simple.SimpleModule;
+ import domainapp.modules.simple.types.Name;
+ import domainapp.modules.simple.types.Notes;
+
import lombok.Getter;
+import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.val;
- import domainapp.modules.simple.SimpleModule;
- import domainapp.modules.simple.types.Name;
- import domainapp.modules.simple.types.Notes;
-
-@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE, schema = "simple")
-@javax.jdo.annotations.DatastoreIdentity(strategy=IdGeneratorStrategy.IDENTITY, column="id")
-@javax.jdo.annotations.Queries({
- @javax.jdo.annotations.Query(
- name = "findByName",
- value = "SELECT " +
- "FROM domainapp.modules.simple.dom.so.SimpleObject " +
- "WHERE name.indexOf(:name) >= 0"
- ),
- @javax.jdo.annotations.Query(
- name = "findByNameExact",
- value = "SELECT " +
- "FROM domainapp.modules.simple.dom.so.SimpleObject " +
- "WHERE name == :name"
- )
-})
-@javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, column="version")
-@javax.jdo.annotations.Unique(name="SimpleObject_name_UNQ", members = {"name"})
-@DomainObject()
+@javax.persistence.Entity
+@javax.persistence.Table(
+ schema="simple",
+ uniqueConstraints = {
+ @javax.persistence.UniqueConstraint(name = "SimpleObject_name_UNQ", columnNames = {"name"})
+ }
+)
+@javax.persistence.EntityListeners(JpaEntityInjectionPointResolver.class) // injection support
+@DomainObject(objectType = "simple.SimpleObject")
@DomainObjectLayout()
+@NoArgsConstructor
@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
@ToString(onlyExplicitlyIncluded = true)
public class SimpleObject implements Comparable<SimpleObject> {
@@@ -62,12 -59,12 +60,10 @@@
return simpleObject;
}
- public static class ActionDomainEvent extends SimpleModule.ActionDomainEvent<SimpleObject> {}
-
- @Inject RepositoryService repositoryService;
- @Inject TitleService titleService;
- @Inject MessageService messageService;
+ @Inject @javax.persistence.Transient RepositoryService repositoryService;
+ @Inject @javax.persistence.Transient TitleService titleService;
+ @Inject @javax.persistence.Transient MessageService messageService;
- private SimpleObject() {
- }
public String title() {
return "Object: " + getName();
diff --cc module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
index 3eb9a5c,04407a9..711dee4
--- a/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObjects.java
@@@ -27,34 -28,36 +27,34 @@@ import domainapp.modules.simple.types.N
public class SimpleObjects {
private final RepositoryService repositoryService;
- private final JdoSupportService jdoSupportService;
+ private final JpaSupportService jpaSupportService;
+ private final SimpleObjectRepository simpleObjectRepository;
+ public static class ActionDomainEvent extends SimpleModule.ActionDomainEvent<SimpleObjects> {}
- public static class CreateActionDomainEvent extends ActionDomainEvent {}
- @Action(semantics = SemanticsOf.NON_IDEMPOTENT, domainEvent = CreateActionDomainEvent.class)
+ @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@ActionLayout(promptStyle = PromptStyle.DIALOG_SIDEBAR)
public SimpleObject create(
@Name final String name) {
return repositoryService.persist(SimpleObject.withName(name));
}
- public static class FindByNameActionDomainEvent extends ActionDomainEvent {}
- @Action(semantics = SemanticsOf.SAFE, domainEvent = FindByNameActionDomainEvent.class)
++
+ @Action(semantics = SemanticsOf.SAFE)
@ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT, promptStyle = PromptStyle.DIALOG_SIDEBAR)
public List<SimpleObject> findByName(
@Name final String name
) {
- return repositoryService.allMatches(
- Query.named(SimpleObject.class, "findByName")
- .withParameter("name", name));
+ return simpleObjectRepository.findByNameContaining(name);
}
++
@Programmatic
public SimpleObject findByNameExact(final String name) {
- return repositoryService.firstMatch(
- Query.named(SimpleObject.class, "findByNameExact")
- .withParameter("name", name))
- .orElse(null);
+ return simpleObjectRepository.findByName(name);
}
- public static class ListAllActionDomainEvent extends ActionDomainEvent {}
+
-
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT)
public List<SimpleObject> listAll() {