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 <[email protected]>
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

Reply via email to