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 5ec32722aac920a798e49ed0d45eeb53e956800a Merge: ab7806d 33aa3d4 Author: Dan Haywood <[email protected]> AuthorDate: Mon Aug 29 23:47:31 2022 +0100 Merge branch 'jpa-SNAPSHOT' into jdo-SNAPSHOT module-simple-tests/pom.xml | 6 ++-- module-simple/pom.xml | 5 +++ .../domainapp/modules/simple/SimpleModule.java | 7 +++++ .../modules/simple/dom/so/SimpleObject.java | 35 +++++++++++++++++++-- .../modules/simple/dom/so/SimpleObject.layout.xml | 5 +++ .../modules/simple/dom/so/SimpleObjects.java | 1 - .../simple/fixture/SimpleObjectBuilder.java | 34 +++++++++++++++++++- .../simple/fixture/SimpleObject_persona.java | 23 +++++++------- .../domainapp/modules/simple/fixture/Bang.docx | Bin 0 -> 13071 bytes .../domainapp/modules/simple/fixture/Bang.pdf | Bin 0 -> 48548 bytes .../domainapp/modules/simple/fixture/Bar.docx | Bin 0 -> 12936 bytes .../domainapp/modules/simple/fixture/Bar.pdf | Bin 0 -> 47488 bytes .../domainapp/modules/simple/fixture/Fizz.docx | Bin 0 -> 12869 bytes .../domainapp/modules/simple/fixture/Fizz.pdf | Bin 0 -> 46833 bytes .../domainapp/modules/simple/fixture/Foo.docx | Bin 0 -> 13069 bytes .../domainapp/modules/simple/fixture/Foo.pdf | Bin 0 -> 47185 bytes .../domainapp/modules/simple/fixture/Frodo.docx | Bin 0 -> 12969 bytes .../domainapp/modules/simple/fixture/Frodo.pdf | Bin 0 -> 47587 bytes webapp/pom.xml | 10 ++++++ .../main/java/domainapp/webapp/AppManifest.java | 6 +++- 20 files changed, 112 insertions(+), 20 deletions(-) diff --cc module-simple-tests/pom.xml index 746b7b6,3ec4c63..a7a48a4 --- a/module-simple-tests/pom.xml +++ b/module-simple-tests/pom.xml @@@ -69,8 -69,8 +69,8 @@@ </dependency> <dependency> - <groupId>org.apache.isis.testing</groupId> - <artifactId>isis-testing-fixtures-applib</artifactId> + <groupId>org.apache.isis.persistence</groupId> - <artifactId>isis-persistence-jpa-eclipselink</artifactId> ++ <artifactId>isis-persistence-jdo-datanucleus</artifactId> <scope>test</scope> </dependency> diff --cc module-simple/pom.xml index 76a4964,aeb7cb5..a8bdf1f --- a/module-simple/pom.xml +++ b/module-simple/pom.xml @@@ -40,9 -40,14 +40,14 @@@ <artifactId>isis-applib</artifactId> </dependency> + <dependency> + <groupId>org.apache.isis.extensions</groupId> + <artifactId>isis-extensions-pdfjs-applib</artifactId> + </dependency> + <dependency> <groupId>org.apache.isis.persistence</groupId> - <artifactId>isis-persistence-jpa-applib</artifactId> + <artifactId>isis-persistence-jdo-datanucleus</artifactId> </dependency> <dependency> diff --cc module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java index 1a27b37,8379b42..a600a94 --- a/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java +++ b/module-simple/src/main/java/domainapp/modules/simple/SimpleModule.java @@@ -1,16 -1,27 +1,23 @@@ package domainapp.modules.simple; -import org.springframework.boot.autoconfigure.domain.EntityScan; 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.pdfjs.applib.IsisModuleExtPdfjsApplibModel; -import org.apache.isis.persistence.jpa.applib.IsisModulePersistenceJpaApplib; ++import org.apache.isis.persistence.jdo.applib.IsisModulePersistenceJdoApplib; 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, - 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 b1ac97f,bda401d..8b12f84 --- 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 @@@ -4,22 -4,30 +4,25 @@@ import java.util.Comparator import javax.inject.Inject; import javax.inject.Named; -import javax.persistence.AttributeOverride; -import javax.persistence.AttributeOverrides; -import javax.persistence.Column; -import javax.persistence.Embedded; -import javax.persistence.Entity; -import javax.persistence.EntityListeners; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.Table; -import javax.persistence.Transient; -import javax.persistence.UniqueConstraint; -import javax.persistence.Version; ++import javax.jdo.annotations.Column; +import javax.jdo.annotations.DatastoreIdentity; +import javax.jdo.annotations.IdGeneratorStrategy; +import javax.jdo.annotations.IdentityType; ++import javax.jdo.annotations.PersistenceCapable; ++import javax.jdo.annotations.Persistent; +import javax.jdo.annotations.Queries; +import javax.jdo.annotations.Query; - import javax.jdo.annotations.PersistenceCapable; +import javax.jdo.annotations.Unique; +import javax.jdo.annotations.Version; +import javax.jdo.annotations.VersionStrategy; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + import org.springframework.lang.Nullable; + import org.apache.isis.applib.annotation.Action; import org.apache.isis.applib.annotation.ActionLayout; - import org.apache.isis.applib.annotation.Domain; import org.apache.isis.applib.annotation.DomainObject; import org.apache.isis.applib.annotation.DomainObjectLayout; -import org.apache.isis.applib.annotation.Editing; import org.apache.isis.applib.annotation.MemberSupport; import org.apache.isis.applib.annotation.PromptStyle; import org.apache.isis.applib.annotation.Property; @@@ -31,6 -39,10 +34,8 @@@ import org.apache.isis.applib.layout.La 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.value.Blob; + 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; @@@ -105,7 -122,26 +109,19 @@@ public class SimpleObject implements Co @PropertyLayout(fieldSetId = LayoutConstants.FieldSetId.DETAILS, sequence = "2") private String notes; - private org.apache.isis.applib.value.Blob attachment; - - @AttributeOverrides({ - @AttributeOverride(name="name", column=@Column(name="readOnlyProperty_name")), - @AttributeOverride(name="mimeType",column=@Column(name="readOnlyProperty_mimeType")), - @AttributeOverride(name="bytes", column=@Column(name="readOnlyProperty_bytes")) - }) - @Embedded - private BlobJpaEmbeddable attachmentEmbedded; + @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(attachmentEmbedded); - } - public void setAttachment(final Blob attachment) { - this.attachmentEmbedded = BlobJpaEmbeddable.fromBlob(attachment); - } ++ private Blob attachment; ++ + @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 a3e62aa,f5892e4..ac72c1d --- a/webapp/src/main/java/domainapp/webapp/AppManifest.java +++ b/webapp/src/main/java/domainapp/webapp/AppManifest.java @@@ -9,16 -9,17 +9,18 @@@ 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.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; @@@ -49,14 -49,17 +51,17 @@@ 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, + IsisModuleExtPdfjsWicketUi.class, + IsisModuleValAsciidocMetaModel.class, // for pretty rendering of DTO objects such as CommandDto, InteractionDto IsisModuleValAsciidocUiWkt.class,
