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() {