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/30 20:30:29 UTC

[isis-app-simpleapp] branch jdo-SNAPSHOT updated (39d7437 -> 5397357)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch jdo-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git


    from 39d7437  Merge branch 'jpa-SNAPSHOT' into jdo-SNAPSHOT
     add bddbed6  adds in fullcalendar
     new 5397357  Merge branch 'jpa-SNAPSHOT' into jdo-SNAPSHOT

The 1 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:
 .run/SimpleApp.run.xml                             |  1 +
 module-simple/pom.xml                              | 10 ++++++
 .../domainapp/modules/simple/SimpleModule.java     |  4 +++
 .../simple/dom/so/SimpleObject.columnOrder.txt     |  3 +-
 .../modules/simple/dom/so/SimpleObject.java        | 41 +++++++++++++++++++++-
 .../simple/fixture/SimpleObjectBuilder.java        | 14 +++++---
 .../simple/fixture/SimpleObject_persona.java       | 15 ++++++--
 webapp/pom.xml                                     | 11 ++++--
 .../main/java/domainapp/webapp/AppManifest.java    |  2 ++
 .../src/main/resources/static/css/application.css  |  5 +++
 webapp/src/main/resources/static/index.html        |  2 +-
 11 files changed, 96 insertions(+), 12 deletions(-)


[isis-app-simpleapp] 01/01: Merge branch 'jpa-SNAPSHOT' into jdo-SNAPSHOT

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch jdo-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/isis-app-simpleapp.git

commit 53973572f5f2009929cf2a8b8b9be43a617707f6
Merge: 39d7437 bddbed6
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Aug 30 20:07:53 2022 +0100

    Merge branch 'jpa-SNAPSHOT' into jdo-SNAPSHOT

 .run/SimpleApp.run.xml                             |  1 +
 module-simple/pom.xml                              | 10 ++++++
 .../domainapp/modules/simple/SimpleModule.java     |  4 +++
 .../simple/dom/so/SimpleObject.columnOrder.txt     |  3 +-
 .../modules/simple/dom/so/SimpleObject.java        | 41 +++++++++++++++++++++-
 .../simple/fixture/SimpleObjectBuilder.java        | 14 +++++---
 .../simple/fixture/SimpleObject_persona.java       | 15 ++++++--
 webapp/pom.xml                                     | 11 ++++--
 .../main/java/domainapp/webapp/AppManifest.java    |  2 ++
 .../src/main/resources/static/css/application.css  |  5 +++
 webapp/src/main/resources/static/index.html        |  2 +-
 11 files changed, 96 insertions(+), 12 deletions(-)

diff --cc .run/SimpleApp.run.xml
index 1b6062f,52eb874..b86b545
--- a/.run/SimpleApp.run.xml
+++ b/.run/SimpleApp.run.xml
@@@ -1,8 -1,10 +1,9 @@@
  <component name="ProjectRunConfigurationManager">
    <configuration default="false" name="SimpleApp" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
      <option name="ACTIVE_PROFILES" />
 -    <module name="simpleapp-jpa-webapp" />
 +    <module name="simpleapp-jdo-webapp" />
+     <option name="SHORTEN_COMMAND_LINE" value="ARGS_FILE" />
      <option name="SPRING_BOOT_MAIN_CLASS" value="domainapp.webapp.SimpleApp" />
 -    <option name="VM_PARAMETERS" value="-javaagent:lib/spring-instrument.jar" />
      <method v="2">
        <option name="Make" enabled="true" />
      </method>
diff --cc module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
index a600a94,56ece4b..8a09d34
--- a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
+++ b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java
@@@ -3,21 -3,29 +3,25 @@@ package domainapp.modules.simple
  import org.springframework.context.annotation.ComponentScan;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.context.annotation.Import;
 -import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
  
+ import org.apache.isis.extensions.fullcalendar.applib.IsisModuleExtFullCalendarApplib;
  import org.apache.isis.extensions.pdfjs.applib.IsisModuleExtPdfjsApplibModel;
 -import org.apache.isis.persistence.jpa.applib.IsisModulePersistenceJpaApplib;
 +import org.apache.isis.persistence.jdo.applib.IsisModulePersistenceJdoApplib;
+ import org.apache.isis.testing.fakedata.applib.IsisModuleTestingFakeDataApplib;
  import org.apache.isis.testing.fixtures.applib.fixturescripts.FixtureScript;
  import org.apache.isis.testing.fixtures.applib.modules.ModuleWithFixtures;
 -import org.apache.isis.testing.fixtures.applib.teardown.jpa.TeardownFixtureJpaAbstract;
 +import org.apache.isis.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
  
  import domainapp.modules.simple.dom.so.SimpleObject;
  
  @Configuration
  @Import({
          IsisModuleExtPdfjsApplibModel.class,
+         IsisModuleExtFullCalendarApplib.class,
+         IsisModuleTestingFakeDataApplib.class,
 -        IsisModulePersistenceJpaApplib.class,
 +        IsisModulePersistenceJdoApplib.class
  })
  @ComponentScan
 -@EnableJpaRepositories
 -@EntityScan(basePackageClasses = {SimpleModule.class})
  public class SimpleModule implements ModuleWithFixtures {
  
      public static final String NAMESPACE = "simple";
diff --cc module-simple/src/main/java/domainapp/modules/simple/dom/so/SimpleObject.java
index 8b12f84,31d21b8..3905815
--- 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
@@@ -34,8 -48,14 +44,12 @@@ import org.apache.isis.applib.services.
  import org.apache.isis.applib.services.message.MessageService;
  import org.apache.isis.applib.services.repository.RepositoryService;
  import org.apache.isis.applib.services.title.TitleService;
+ import org.apache.isis.applib.services.user.UserCurrentSessionTimeZoneHolder;
+ import org.apache.isis.applib.services.user.UserService;
  import org.apache.isis.applib.value.Blob;
+ import org.apache.isis.extensions.fullcalendar.applib.CalendarEventable;
+ import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEvent;
  import org.apache.isis.extensions.pdfjs.applib.annotations.PdfJsViewer;
 -import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
 -import org.apache.isis.persistence.jpa.applib.types.BlobJpaEmbeddable;
  
  import static org.apache.isis.applib.annotation.SemanticsOf.IDEMPOTENT;
  import static org.apache.isis.applib.annotation.SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE;
@@@ -80,10 -94,20 +94,10 @@@ import domainapp.modules.simple.types.N
  @NoArgsConstructor(access = AccessLevel.PUBLIC)
  @XmlJavaTypeAdapter(PersistentEntityAdapter.class)
  @ToString(onlyExplicitlyIncluded = true)
- public class SimpleObject implements Comparable<SimpleObject> {
+ public class SimpleObject implements Comparable<SimpleObject>, CalendarEventable {
  
      static final String NAMED_QUERY__FIND_BY_NAME_LIKE = "SimpleObject.findByNameLike";
 -
 -    @Id
 -    @GeneratedValue(strategy = GenerationType.AUTO)
 -    @Column(name = "id", nullable = false)
 -    private Long id;
 -
 -    @Version
 -    @Column(name = "version", nullable = false)
 -    @PropertyLayout(fieldSetId = "metadata", sequence = "999")
 -    @Getter @Setter
 -    private long version;
 +    static final String NAMED_QUERY__FIND_BY_NAME_EXACT = "SimpleObject.findByNameExact";
  
      public static SimpleObject withName(String name) {
          val simpleObject = new SimpleObject();
@@@ -109,19 -135,49 +123,44 @@@
      @PropertyLayout(fieldSetId = LayoutConstants.FieldSetId.DETAILS, sequence = "2")
      private String notes;
  
 -    @AttributeOverrides({
 -            @AttributeOverride(name="name",    column=@Column(name="attachment_name")),
 -            @AttributeOverride(name="mimeType",column=@Column(name="attachment_mimeType")),
 -            @AttributeOverride(name="bytes",   column=@Column(name="attachment_bytes"))
 -    })
 -    @Embedded
 -    private BlobJpaEmbeddable attachment;
  
      @PdfJsViewer
 +    @Getter @Setter
 +    @Persistent(defaultFetchGroup="false", columns = {
 +            @Column(name = "attachment_name"),
 +            @Column(name = "attachment_mimetype"),
 +            @Column(name = "attachment_bytes")
 +    })
      @Property()
      @PropertyLayout(fieldSetId = "content", sequence = "1")
 -    public Blob getAttachment() {
 -        return BlobJpaEmbeddable.toBlob(attachment);
 -    }
 -    public void setAttachment(final Blob attachment) {
 -        this.attachment = BlobJpaEmbeddable.fromBlob(attachment);
 -    }
 +    private Blob attachment;
 +
  
+ 
+ 
+     @Property(optionality = Optionality.OPTIONAL, editing = Editing.ENABLED)
+     @PropertyLayout(fieldSetId = LayoutConstants.FieldSetId.DETAILS, sequence = "3")
 -    @Column(nullable = true)
++    @Column(allowsNull = "true")
+     @Getter @Setter
+     private java.time.LocalDate lastCheckedIn;
+ 
+ 
+     @Override
+     public String getCalendarName() {
+         return "Last checked-in";
+     }
+ 
+     @Override
+     public CalendarEvent toCalendarEvent() {
+         if (getLastCheckedIn() != null) {
+             long epochMillis = getLastCheckedIn().toEpochSecond(LocalTime.MIDNIGHT, ZoneOffset.systemDefault().getRules().getOffset(getLastCheckedIn().atStartOfDay())) * 1000L;
+             return new CalendarEvent(epochMillis, getCalendarName(), titleService.titleOf(this), getNotes());
+         } else {
+             return null;
+         }
+     }
+ 
+ 
      @Action(semantics = IDEMPOTENT, commandPublishing = Publishing.ENABLED, executionPublishing = Publishing.ENABLED)
      @ActionLayout(
              associateWith = "name", promptStyle = PromptStyle.INLINE,
diff --cc webapp/src/main/java/domainapp/webapp/AppManifest.java
index ac72c1d,4329382..c037fba
--- a/webapp/src/main/java/domainapp/webapp/AppManifest.java
+++ b/webapp/src/main/java/domainapp/webapp/AppManifest.java
@@@ -9,18 -9,18 +9,19 @@@ import org.apache.isis.applib.IsisModul
  import org.apache.isis.applib.IsisModuleApplibMixins;
  import org.apache.isis.core.config.presets.IsisPresets;
  import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
 -import org.apache.isis.extensions.audittrail.jpa.IsisModuleExtAuditTrailPersistenceJpa;
 -import org.apache.isis.extensions.commandlog.jpa.IsisModuleExtCommandLogPersistenceJpa;
 -import org.apache.isis.extensions.executionlog.jpa.IsisModuleExtExecutionLogPersistenceJpa;
 -import org.apache.isis.extensions.executionoutbox.jpa.IsisModuleExtExecutionOutboxPersistenceJpa;
 +import org.apache.isis.extensions.audittrail.jdo.IsisModuleExtAuditTrailPersistenceJdo;
 +import org.apache.isis.extensions.commandlog.jdo.IsisModuleExtCommandLogPersistenceJdo;
 +import org.apache.isis.extensions.executionlog.jdo.IsisModuleExtExecutionLogPersistenceJdo;
 +import org.apache.isis.extensions.executionoutbox.jdo.IsisModuleExtExecutionOutboxPersistenceJdo;
  import org.apache.isis.extensions.flyway.impl.IsisModuleExtFlywayImpl;
+ import org.apache.isis.extensions.fullcalendar.wkt.viewer.IsisModuleExtFullCalendarWicketUi;
  import org.apache.isis.extensions.pdfjs.wkt.ui.IsisModuleExtPdfjsWicketUi;
  import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleExtSecmanEncryptionJbcrypt;
 -import org.apache.isis.extensions.secman.jpa.IsisModuleExtSecmanPersistenceJpa;
 -import org.apache.isis.extensions.sessionlog.jpa.IsisModuleExtSessionLogPersistenceJpa;
 +import org.apache.isis.extensions.secman.jdo.IsisModuleExtSecmanPersistenceJdo;
 +import org.apache.isis.extensions.sessionlog.jdo.IsisModuleExtSessionLogPersistenceJdo;
 +import org.apache.isis.persistence.jdo.datanucleus.IsisModulePersistenceJdoDatanucleus;
  import org.apache.isis.extensions.viewer.wicket.exceldownload.ui.IsisModuleExtExcelDownloadWicketUi;
 -import org.apache.isis.persistence.jpa.eclipselink.IsisModulePersistenceJpaEclipselink;
 +import org.apache.isis.persistence.jdo.datanucleus.IsisModulePersistenceJdoDatanucleusMixins;
  import org.apache.isis.testing.fixtures.applib.IsisModuleTestingFixturesApplib;
  import org.apache.isis.testing.h2console.ui.IsisModuleTestingH2ConsoleUi;
  import org.apache.isis.valuetypes.asciidoc.metamodel.IsisModuleValAsciidocMetaModel;
@@@ -51,15 -50,16 +52,16 @@@ import domainapp.webapp.quartz.QuartzMo
  
          IsisModuleExtFlywayImpl.class,
  
 -        IsisModuleExtSecmanPersistenceJpa.class,
 +        IsisModuleExtSecmanPersistenceJdo.class,
          IsisModuleExtSecmanEncryptionJbcrypt.class,
 -        IsisModuleExtSessionLogPersistenceJpa.class,
 -        IsisModuleExtAuditTrailPersistenceJpa.class,
 -        IsisModuleExtCommandLogPersistenceJpa.class,
 -        IsisModuleExtExecutionLogPersistenceJpa.class,
 -        IsisModuleExtExecutionOutboxPersistenceJpa.class,
 +        IsisModuleExtSessionLogPersistenceJdo.class,
 +        IsisModuleExtAuditTrailPersistenceJdo.class,
 +        IsisModuleExtCommandLogPersistenceJdo.class,
 +        IsisModuleExtExecutionLogPersistenceJdo.class,
 +        IsisModuleExtExecutionOutboxPersistenceJdo.class,
  
          IsisModuleExtExcelDownloadWicketUi.class,
+         IsisModuleExtFullCalendarWicketUi.class,
          IsisModuleExtPdfjsWicketUi.class,
  
          IsisModuleValAsciidocMetaModel.class, // for pretty rendering of DTO objects such as CommandDto, InteractionDto