You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/05/23 12:33:04 UTC

[isis] branch master updated: ISIS-2513: Demo/JPA: work on provisioning issues

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 5e4f727  ISIS-2513: Demo/JPA: work on provisioning issues
5e4f727 is described below

commit 5e4f727e4de092ca34cfb4274e620a557375a3a4
Author: andi-huber <ah...@apache.org>
AuthorDate: Sun May 23 14:32:49 2021 +0200

    ISIS-2513: Demo/JPA: work on provisioning issues
    
    properly register JPA type converters using Spring
---
 .../dom/types/isis/blobs/jdo/IsisBlobJdo.java      |  3 ++
 .../dom/types/isis/clobs/jdo/IsisClobJdo.java      |  3 ++
 .../jdo/IsisLocalResourcePathJdo.java              |  3 ++
 .../dom/types/isis/markups/jdo/IsisMarkupJdo.java  |  5 ++-
 .../dom/types/isis/markups/jpa/IsisMarkupJpa.java  |  5 +--
 .../types/isis/passwords/jdo/IsisPasswordJdo.java  |  3 ++
 .../isisext/asciidocs/jdo/IsisAsciiDocJdo.java     |  5 ++-
 .../isisext/asciidocs/jpa/IsisAsciiDocJpa.java     |  5 +--
 .../isisext/markdowns/jdo/IsisMarkdownJdo.java     |  3 ++
 .../images/jdo/JavaAwtBufferedImageJdo.java        |  9 ++----
 .../images/jpa/JavaAwtBufferedImageJpa.java        |  8 ++---
 .../persistence/JavaAwtBufferedImageEntity.java    | 37 +++++++++++++++++++---
 .../jpa/integration/IsisModuleJpaIntegration.java  |  9 ++++--
 .../JavaAwtBufferedImageByteArrayConverter.java    |  5 +--
 .../jpa/IsisModuleValAsciidocPersistenceJpa.java   |  7 ++++
 .../jpa/converters/IsisAsciiDocConverter.java      |  2 +-
 .../jpa/IsisModuleValMarkdownPersistenceJpa.java   |  7 ++++
 .../jpa/converters/IsisMarkdownConverter.java      |  2 +-
 18 files changed, 91 insertions(+), 30 deletions(-)

diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java
index fa3d0a0..ba38a1c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/jdo/IsisBlobJdo.java
@@ -25,6 +25,8 @@ import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 import javax.jdo.annotations.Persistent;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -37,6 +39,7 @@ import demoapp.dom.types.isis.blobs.persistence.IsisBlobEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java
index 07ec34d..87846c5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/jdo/IsisClobJdo.java
@@ -25,6 +25,8 @@ import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 import javax.jdo.annotations.Persistent;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -37,6 +39,7 @@ import demoapp.dom.types.isis.clobs.persistence.IsisClobEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo.java
index f495033..4f8d186 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/jdo/IsisLocalResourcePathJdo.java
@@ -25,6 +25,8 @@ import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.NotPersistent;
 import javax.jdo.annotations.PersistenceCapable;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -37,6 +39,7 @@ import demoapp.dom.types.isis.localresourcepaths.persistence.IsisLocalResourcePa
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
index 48ee3b8..0cf27f1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
@@ -25,6 +25,8 @@ import javax.jdo.annotations.IdGeneratorStrategy;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -38,6 +40,7 @@ import demoapp.dom.types.isis.markups.persistence.IsisMarkupEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
@@ -83,6 +86,6 @@ public class IsisMarkupJdo                                          // <.>
     private Markup readWriteOptionalProperty;
 
     @Inject
-    private BookmarkService bookmarkService;
+    private transient BookmarkService bookmarkService;
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java
index fabc964..f355177 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java
@@ -28,6 +28,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Lob;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 
 import org.springframework.context.annotation.Profile;
 
@@ -100,7 +101,7 @@ public class IsisMarkupJpa
     @Getter @Setter
     private Markup readWriteOptionalProperty;
 
-    @Inject
-    private BookmarkService bookmarkService;
+    @Inject @Transient
+    private transient BookmarkService bookmarkService;
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo.java
index fca61c1..7366fa1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/jdo/IsisPasswordJdo.java
@@ -24,6 +24,8 @@ import javax.jdo.annotations.IdGeneratorStrategy;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -36,6 +38,7 @@ import demoapp.dom.types.isis.passwords.persistence.IsisPasswordEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo.java
index 12510fa..3d732be 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jdo/IsisAsciiDocJdo.java
@@ -25,6 +25,8 @@ import javax.jdo.annotations.IdGeneratorStrategy;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -38,6 +40,7 @@ import demoapp.dom.types.isisext.asciidocs.persistence.IsisAsciiDocEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
@@ -83,6 +86,6 @@ public class IsisAsciiDocJdo                                          // <.>
     private AsciiDoc readWriteOptionalProperty;
 
     @Inject
-    private BookmarkService bookmarkService;
+    private transient BookmarkService bookmarkService;
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jpa/IsisAsciiDocJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jpa/IsisAsciiDocJpa.java
index edbec7d..7f98fb5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jpa/IsisAsciiDocJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/jpa/IsisAsciiDocJpa.java
@@ -28,6 +28,7 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.Lob;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 
 import org.springframework.context.annotation.Profile;
 
@@ -100,7 +101,7 @@ public class IsisAsciiDocJpa
     @Getter @Setter
     private AsciiDoc readWriteOptionalProperty;
 
-    @Inject
-    private BookmarkService bookmarkService;
+    @Inject @Transient
+    private transient BookmarkService bookmarkService;
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
index d7d0bfa..9b70486 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
@@ -25,6 +25,8 @@ import javax.jdo.annotations.IdGeneratorStrategy;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Optionality;
@@ -38,6 +40,7 @@ import demoapp.dom.types.isisext.markdowns.persistence.IsisMarkdownEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtBufferedImageJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtBufferedImageJdo.java
index b50c07a..66a37f6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtBufferedImageJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jdo/JavaAwtBufferedImageJdo.java
@@ -26,6 +26,8 @@ import javax.jdo.annotations.IdGeneratorStrategy;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.PersistenceCapable;
 
+import org.springframework.context.annotation.Profile;
+
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
@@ -35,6 +37,7 @@ import demoapp.dom.types.javaawt.images.persistence.JavaAwtBufferedImageEntity;
 import lombok.Getter;
 import lombok.Setter;
 
+@Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
@@ -67,12 +70,6 @@ public class JavaAwtBufferedImageJdo
     private BufferedImage readOnlyProperty;
 
 //end::class[]
-
-    @Override // once JavaAwtBufferedImageHolder2 is implemented by this class, move this up to JavaAwtBufferedImageEntity
-    public java.awt.image.BufferedImage value() {
-        return getReadOnlyProperty();
-    }
-
 // editable properties not yet supported:
 //    @Property(editing = Editing.ENABLED)                          // <.>
 //    @PropertyLayout(group = "editable-properties", sequence = "1")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jpa/JavaAwtBufferedImageJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jpa/JavaAwtBufferedImageJpa.java
index 583c1a2..34e98bd 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jpa/JavaAwtBufferedImageJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/jpa/JavaAwtBufferedImageJpa.java
@@ -85,12 +85,6 @@ public class JavaAwtBufferedImageJpa
     private BufferedImage readOnlyProperty;
 
 //end::class[]
-
-    @Override // once JavaAwtBufferedImageHolder2 is implemented by this class, move this up to JavaAwtBufferedImageEntity
-    public java.awt.image.BufferedImage value() {
-        return getReadOnlyProperty();
-    }
-
 // editable properties not yet supported:
 //    @Property(editing = Editing.ENABLED)                          // <.>
 //    @PropertyLayout(group = "editable-properties", sequence = "1")
@@ -117,3 +111,5 @@ public class JavaAwtBufferedImageJpa
 //tag::class[]
 }
 //end::class[]
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/persistence/JavaAwtBufferedImageEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/persistence/JavaAwtBufferedImageEntity.java
index 07649cb..10894eb 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/persistence/JavaAwtBufferedImageEntity.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/persistence/JavaAwtBufferedImageEntity.java
@@ -18,10 +18,13 @@
  */
 package demoapp.dom.types.javaawt.images.persistence;
 
+import java.awt.image.BufferedImage;
+
 import org.apache.isis.applib.annotation.DomainObject;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolder;
+import demoapp.dom.types.javaawt.images.holder.JavaAwtBufferedImageHolder2;
 
 @DomainObject(
         objectType = "demo.JavaAwtBufferedImageEntity" // shared permissions with concrete sub class
@@ -29,12 +32,36 @@ import demoapp.dom._infra.values.ValueHolder;
 public abstract class JavaAwtBufferedImageEntity
 implements
     HasAsciiDocDescription,
-    //JavaAwtBufferedImageHolder2,
+    JavaAwtBufferedImageHolder2,
     ValueHolder<java.awt.image.BufferedImage> {
 
-//    @Override
-//    public java.awt.image.BufferedImage value() {
-//        return getReadOnlyProperty();
-//    }
+    @Override
+    public java.awt.image.BufferedImage value() {
+        return getReadOnlyProperty();
+    }
+
+    // -- TODO R/W SUPPORT (actually implement in sub classes)
+
+    @Override
+    public BufferedImage getReadWriteProperty() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void setReadWriteProperty(BufferedImage c) {
+        // TODO Auto-generated method stub
+    }
+
+    @Override
+    public BufferedImage getReadWriteOptionalProperty() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void setReadWriteOptionalProperty(BufferedImage c) {
+        // TODO Auto-generated method stub
+    }
 
 }
diff --git a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/IsisModuleJpaIntegration.java b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/IsisModuleJpaIntegration.java
index 37ffaa6..df7537a 100644
--- a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/IsisModuleJpaIntegration.java
+++ b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/IsisModuleJpaIntegration.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.persistence.jpa.integration;
 
+import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
@@ -38,9 +39,6 @@ import org.apache.isis.persistence.jpa.integration.typeconverters.JavaAwtBuffere
         // @Service's
         JpaSupportServiceUsingSpring.class,
 
-        // @Converter's
-        JavaAwtBufferedImageByteArrayConverter.class,
-
 //        DataNucleusSettings.class,
 //        ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException.class,
 //        ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException.class,
@@ -58,6 +56,11 @@ import org.apache.isis.persistence.jpa.integration.typeconverters.JavaAwtBuffere
 //        Persistable_datanucleusVersionTimestamp.class,
 //        Persistable_downloadJdoMetadata.class,
 })
+@EntityScan(basePackageClasses = {
+
+        // @Converter's
+        JavaAwtBufferedImageByteArrayConverter.class
+})
 public class IsisModuleJpaIntegration {
 
 }
diff --git a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/typeconverters/JavaAwtBufferedImageByteArrayConverter.java b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/typeconverters/JavaAwtBufferedImageByteArrayConverter.java
index e34a80e..2803f21 100644
--- a/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/typeconverters/JavaAwtBufferedImageByteArrayConverter.java
+++ b/persistence/jpa/integration/src/main/java/org/apache/isis/persistence/jpa/integration/typeconverters/JavaAwtBufferedImageByteArrayConverter.java
@@ -11,8 +11,9 @@ import org.apache.isis.commons.internal.image._Images;
 /**
  * @since 2.0 {@index}
  */
-@Converter
-public class JavaAwtBufferedImageByteArrayConverter implements AttributeConverter<BufferedImage, byte[]> {
+@Converter(autoApply = true)
+public class JavaAwtBufferedImageByteArrayConverter
+implements AttributeConverter<BufferedImage, byte[]> {
 
     @Override
     public byte[] convertToDatabaseColumn(BufferedImage memberValue) {
diff --git a/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java
index d3b7f33..c7435e7 100644
--- a/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java
+++ b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java
@@ -18,10 +18,12 @@
  */
 package org.apache.isis.valuetypes.asciidoc.persistence.jpa;
 
+import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib;
+import org.apache.isis.valuetypes.asciidoc.persistence.jpa.converters.IsisAsciiDocConverter;
 
 /**
  * @since 2.0 {@index}
@@ -30,5 +32,10 @@ import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib;
 @Import({
     IsisModuleValAsciidocApplib.class
 })
+@EntityScan(basePackageClasses = {
+
+        // @Converter's
+        IsisAsciiDocConverter.class
+})
 public class IsisModuleValAsciidocPersistenceJpa {
 }
diff --git a/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java
index 8aac4e8..ce41359 100644
--- a/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java
+++ b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java
@@ -26,7 +26,7 @@ import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
 /**
  * @since 2.0 {@index}
  */
-@Converter
+@Converter(autoApply = true)
 public class IsisAsciiDocConverter implements AttributeConverter<AsciiDoc, String>{
 
     @Override
diff --git a/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java
index f133132..8021cf6 100644
--- a/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java
+++ b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java
@@ -18,10 +18,12 @@
  */
 package org.apache.isis.valuetypes.markdown.persistence.jpa;
 
+import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.valuetypes.markdown.applib.IsisModuleValMarkdownApplib;
+import org.apache.isis.valuetypes.markdown.persistence.jpa.converters.IsisMarkdownConverter;
 
 /**
  * @since 2.0 {@index}
@@ -30,5 +32,10 @@ import org.apache.isis.valuetypes.markdown.applib.IsisModuleValMarkdownApplib;
 @Import({
     IsisModuleValMarkdownApplib.class
 })
+@EntityScan(basePackageClasses = {
+
+        // @Converter's
+        IsisMarkdownConverter.class
+})
 public class IsisModuleValMarkdownPersistenceJpa {
 }
diff --git a/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java
index cb47de6..9bd65ab 100644
--- a/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java
+++ b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java
@@ -26,7 +26,7 @@ import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 /**
  * @since 2.0 {@index}
  */
-@Converter
+@Converter(autoApply = true)
 public class IsisMarkdownConverter implements AttributeConverter<Markdown, String>{
 
     @Override