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/01 09:01:39 UTC

[isis] branch master updated: ISIS-2620: add JPA converters for asciidoc/markdown

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 4a15720  ISIS-2620: add JPA converters for asciidoc/markdown
4a15720 is described below

commit 4a15720320c7531bef28b056572d07d104669bdc
Author: ahuber@apache.org <ah...@luna>
AuthorDate: Sat May 1 11:01:24 2021 +0200

    ISIS-2620: add JPA converters for asciidoc/markdown
---
 examples/demo/pom.xml                              |  8 ++++++
 .../webapp/wicket/jpa/DemoAppWicketJpa.java        | 12 ++++-----
 valuetypes/asciidoc/persistence/jdo-dn5/pom.xml    |  1 -
 .../jdo/dn5/converters/IsisAsciiDocConverter.java  |  4 +--
 .../asciidoc/persistence/{jdo-dn5 => jpa}/pom.xml  | 14 ++++------
 .../jpa/IsisModuleValAsciidocPersistenceJpa.java}  | 30 +++++++---------------
 .../jpa}/converters/IsisAsciiDocConverter.java     | 18 ++++++-------
 valuetypes/asciidoc/persistence/pom.xml            |  1 +
 valuetypes/markdown/persistence/jdo-dn5/pom.xml    |  1 -
 .../jdo/dn5/converters/IsisMarkdownConverter.java  |  7 +++--
 .../markdown/persistence/{jdo-dn5 => jpa}/pom.xml  | 14 ++++------
 .../jpa/IsisModuleValMarkdownPersistenceJpa.java}  | 30 +++++++---------------
 .../jpa}/converters/IsisMarkdownConverter.java     | 16 +++++-------
 valuetypes/markdown/persistence/pom.xml            |  1 +
 valuetypes/pom.xml                                 | 10 ++++++++
 15 files changed, 77 insertions(+), 90 deletions(-)

diff --git a/examples/demo/pom.xml b/examples/demo/pom.xml
index 94bc549..a4daf29 100644
--- a/examples/demo/pom.xml
+++ b/examples/demo/pom.xml
@@ -175,6 +175,10 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.isis.valuetypes</groupId>
+			<artifactId>isis-valuetypes-asciidoc-persistence-jpa</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.isis.valuetypes</groupId>
 			<artifactId>isis-valuetypes-markdown-metamodel</artifactId>
 		</dependency>
 		<dependency>
@@ -183,6 +187,10 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.isis.valuetypes</groupId>
+			<artifactId>isis-valuetypes-markdown-persistence-jpa</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.isis.valuetypes</groupId>
 			<artifactId>isis-valuetypes-sse-applib</artifactId>
 		</dependency>
 		<dependency>
diff --git a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
index b759f4b..f75cc5e 100644
--- a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
+++ b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
@@ -25,9 +25,9 @@ import org.springframework.context.annotation.Import;
 
 import org.apache.isis.extensions.viewer.wicket.pdfjs.ui.IsisModuleExtPdfjsUi;
 import org.apache.isis.valuetypes.asciidoc.metamodel.IsisModuleValAsciidocMetaModel;
-import org.apache.isis.valuetypes.asciidoc.persistence.jdo.dn5.IsisModuleValAsciidocPersistenceJdoDn5;
+import org.apache.isis.valuetypes.asciidoc.persistence.jpa.IsisModuleValAsciidocPersistenceJpa;
 import org.apache.isis.valuetypes.asciidoc.ui.wkt.IsisModuleValAsciidocUiWkt;
-import org.apache.isis.valuetypes.markdown.persistence.jdo.dn5.IsisModuleValMarkdownPersistenceJdoDn5;
+import org.apache.isis.valuetypes.markdown.persistence.jpa.IsisModuleValMarkdownPersistenceJpa;
 import org.apache.isis.valuetypes.markdown.ui.wkt.IsisModuleValMarkdownUiWkt;
 import org.apache.isis.valuetypes.sse.ui.wkt.IsisModuleValSseUiWkt;
 import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
@@ -40,7 +40,7 @@ import demoapp.webapp.wicket.common.ui.custom.WhereInTheWorldPanelFactory;
  */
 @SpringBootApplication
 @Import({
-    DemoAppManifest.class,
+    DemoAppManifest.class, // TODO we gonna need 2 variants JDO/JPA
 
     // Metamodel
     IsisModuleValAsciidocMetaModel.class,
@@ -55,9 +55,9 @@ import demoapp.webapp.wicket.common.ui.custom.WhereInTheWorldPanelFactory;
     // Custom Demo UI (Wicket Viewer)
     WhereInTheWorldPanelFactory.class,
 
-    // Persistence (JDO/DN5)
-    IsisModuleValAsciidocPersistenceJdoDn5.class,
-    IsisModuleValMarkdownPersistenceJdoDn5.class,
+    // Persistence/Converters (JPA)
+    IsisModuleValAsciidocPersistenceJpa.class,
+    IsisModuleValMarkdownPersistenceJpa.class,
     
     //XrayEnable.class // for debugging only
 })
diff --git a/valuetypes/asciidoc/persistence/jdo-dn5/pom.xml b/valuetypes/asciidoc/persistence/jdo-dn5/pom.xml
index 0b6afb3..47fe92e 100644
--- a/valuetypes/asciidoc/persistence/jdo-dn5/pom.xml
+++ b/valuetypes/asciidoc/persistence/jdo-dn5/pom.xml
@@ -22,7 +22,6 @@
 
 	<artifactId>isis-valuetypes-asciidoc-persistence-jdo-dn5</artifactId>
 	<name>Apache Isis Val - Asciidoctor (persistence jdo DN5)</name>
-	<version>2.0.0-SNAPSHOT</version>
 
 	<properties>
 		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.asciidoc.persistence.jdo.dn5</jar-plugin.automaticModuleName>
diff --git a/valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java b/valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java
index e7a2dcc..c23471e 100644
--- a/valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java
+++ b/valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java
@@ -33,14 +33,14 @@ public class IsisAsciiDocConverter implements TypeConverter<AsciiDoc, String>{
     public String toDatastoreType(final AsciiDoc memberValue) {
         return memberValue != null
                 ? memberValue.asHtml()
-                        : null;
+                : null;
     }
 
     @Override
     public AsciiDoc toMemberType(final String datastoreValue) {
         return datastoreValue != null
                 ? AsciiDoc.valueOfHtml(datastoreValue)
-                        : null;
+                : null;
     }
 
 }
diff --git a/valuetypes/asciidoc/persistence/jdo-dn5/pom.xml b/valuetypes/asciidoc/persistence/jpa/pom.xml
similarity index 78%
copy from valuetypes/asciidoc/persistence/jdo-dn5/pom.xml
copy to valuetypes/asciidoc/persistence/jpa/pom.xml
index 0b6afb3..eef7371 100644
--- a/valuetypes/asciidoc/persistence/jdo-dn5/pom.xml
+++ b/valuetypes/asciidoc/persistence/jpa/pom.xml
@@ -20,20 +20,16 @@
 		<version>2.0.0-SNAPSHOT</version>
 	</parent>
 
-	<artifactId>isis-valuetypes-asciidoc-persistence-jdo-dn5</artifactId>
-	<name>Apache Isis Val - Asciidoctor (persistence jdo DN5)</name>
-	<version>2.0.0-SNAPSHOT</version>
+	<artifactId>isis-valuetypes-asciidoc-persistence-jpa</artifactId>
+	<name>Apache Isis Val - Asciidoctor (persistence jpa)</name>
 
 	<properties>
-		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.asciidoc.persistence.jdo.dn5</jar-plugin.automaticModuleName>
-		<git-plugin.propertiesDir>org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5</git-plugin.propertiesDir>
+		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.asciidoc.persistence.jpa</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/valuetypes/asciidoc/persistence/jpa</git-plugin.propertiesDir>
 	</properties>
 
 	<dependencies>
-		<dependency>
-			<groupId>org.datanucleus</groupId>
-			<artifactId>datanucleus-core</artifactId>
-		</dependency>
+		
 	</dependencies>
 
 </project>
diff --git a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java
similarity index 53%
copy from valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
copy to valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java
index 33fb2ea..d3b7f33 100644
--- a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
+++ b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/IsisModuleValAsciidocPersistenceJpa.java
@@ -16,31 +16,19 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.valuetypes.markdown.persistence.jdo.dn5.converters;
+package org.apache.isis.valuetypes.asciidoc.persistence.jpa;
 
-import org.datanucleus.store.types.converters.TypeConverter;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
+import org.apache.isis.valuetypes.asciidoc.applib.IsisModuleValAsciidocApplib;
 
 /**
  * @since 2.0 {@index}
  */
-public class IsisMarkdownConverter implements TypeConverter<Markdown, String>{
-
-    private static final long serialVersionUID = 1L;
-
-    @Override
-    public String toDatastoreType(final Markdown memberValue) {
-        return memberValue != null
-                ? memberValue.asHtml()
-                        : null;
-    }
-
-    @Override
-    public Markdown toMemberType(final String datastoreValue) {
-        return datastoreValue != null
-                ? Markdown.valueOfHtml(datastoreValue)
-                        : null;
-    }
-
+@Configuration
+@Import({
+    IsisModuleValAsciidocApplib.class
+})
+public class IsisModuleValAsciidocPersistenceJpa {
 }
diff --git a/valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java
similarity index 71%
copy from valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java
copy to valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java
index e7a2dcc..8aac4e8 100644
--- a/valuetypes/asciidoc/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jdo/dn5/converters/IsisAsciiDocConverter.java
+++ b/valuetypes/asciidoc/persistence/jpa/src/main/java/org/apache/isis/valuetypes/asciidoc/persistence/jpa/converters/IsisAsciiDocConverter.java
@@ -16,31 +16,31 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.valuetypes.asciidoc.persistence.jdo.dn5.converters;
+package org.apache.isis.valuetypes.asciidoc.persistence.jpa.converters;
 
-import org.datanucleus.store.types.converters.TypeConverter;
+import javax.persistence.AttributeConverter;
+import javax.persistence.Converter;
 
 import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
 
 /**
  * @since 2.0 {@index}
  */
-public class IsisAsciiDocConverter implements TypeConverter<AsciiDoc, String>{
-
-    private static final long serialVersionUID = 1L;
+@Converter
+public class IsisAsciiDocConverter implements AttributeConverter<AsciiDoc, String>{
 
     @Override
-    public String toDatastoreType(final AsciiDoc memberValue) {
+    public String convertToDatabaseColumn(final AsciiDoc memberValue) {
         return memberValue != null
                 ? memberValue.asHtml()
-                        : null;
+                : null;
     }
 
     @Override
-    public AsciiDoc toMemberType(final String datastoreValue) {
+    public AsciiDoc convertToEntityAttribute(final String datastoreValue) {
         return datastoreValue != null
                 ? AsciiDoc.valueOfHtml(datastoreValue)
-                        : null;
+                : null;
     }
 
 }
diff --git a/valuetypes/asciidoc/persistence/pom.xml b/valuetypes/asciidoc/persistence/pom.xml
index dcd8eab..57224af 100644
--- a/valuetypes/asciidoc/persistence/pom.xml
+++ b/valuetypes/asciidoc/persistence/pom.xml
@@ -46,5 +46,6 @@
 
 	<modules>
 		<module>jdo-dn5</module>
+		<module>jpa</module>
 	</modules>
 </project>
diff --git a/valuetypes/markdown/persistence/jdo-dn5/pom.xml b/valuetypes/markdown/persistence/jdo-dn5/pom.xml
index 9a6d77a..5a5cc6e 100644
--- a/valuetypes/markdown/persistence/jdo-dn5/pom.xml
+++ b/valuetypes/markdown/persistence/jdo-dn5/pom.xml
@@ -22,7 +22,6 @@
 
 	<artifactId>isis-valuetypes-markdown-persistence-jdo-dn5</artifactId>
 	<name>Apache Isis Val - Markdown (persistence jdo DN5)</name>
-	<version>2.0.0-SNAPSHOT</version>
 
 	<properties>
 		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.markdown.persistence.jdo.dn5</jar-plugin.automaticModuleName>
diff --git a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java b/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
index 33fb2ea..8606303 100644
--- a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
+++ b/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.valuetypes.markdown.persistence.jdo.dn5.converters;
 
+import javax.persistence.Converter;
+
 import org.datanucleus.store.types.converters.TypeConverter;
 
 import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
@@ -25,6 +27,7 @@ import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 /**
  * @since 2.0 {@index}
  */
+@Converter
 public class IsisMarkdownConverter implements TypeConverter<Markdown, String>{
 
     private static final long serialVersionUID = 1L;
@@ -33,14 +36,14 @@ public class IsisMarkdownConverter implements TypeConverter<Markdown, String>{
     public String toDatastoreType(final Markdown memberValue) {
         return memberValue != null
                 ? memberValue.asHtml()
-                        : null;
+                : null;
     }
 
     @Override
     public Markdown toMemberType(final String datastoreValue) {
         return datastoreValue != null
                 ? Markdown.valueOfHtml(datastoreValue)
-                        : null;
+                : null;
     }
 
 }
diff --git a/valuetypes/markdown/persistence/jdo-dn5/pom.xml b/valuetypes/markdown/persistence/jpa/pom.xml
similarity index 80%
copy from valuetypes/markdown/persistence/jdo-dn5/pom.xml
copy to valuetypes/markdown/persistence/jpa/pom.xml
index 9a6d77a..665c22d 100644
--- a/valuetypes/markdown/persistence/jdo-dn5/pom.xml
+++ b/valuetypes/markdown/persistence/jpa/pom.xml
@@ -20,20 +20,16 @@
 		<version>2.0.0-SNAPSHOT</version>
 	</parent>
 
-	<artifactId>isis-valuetypes-markdown-persistence-jdo-dn5</artifactId>
-	<name>Apache Isis Val - Markdown (persistence jdo DN5)</name>
-	<version>2.0.0-SNAPSHOT</version>
+	<artifactId>isis-valuetypes-markdown-persistence-jpa</artifactId>
+	<name>Apache Isis Val - Markdown (persistence jpa)</name>
 
 	<properties>
-		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.markdown.persistence.jdo.dn5</jar-plugin.automaticModuleName>
-		<git-plugin.propertiesDir>org/apache/isis/valuetypes/markdown/persistence/jdo/dn5</git-plugin.propertiesDir>
+		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.markdown.persistence.jpa</jar-plugin.automaticModuleName>
+		<git-plugin.propertiesDir>org/apache/isis/valuetypes/markdown/persistence/jpa</git-plugin.propertiesDir>
 	</properties>
 
 	<dependencies>
-		<dependency>
-			<groupId>org.datanucleus</groupId>
-			<artifactId>datanucleus-core</artifactId>
-		</dependency>
+		
         <dependency>
             <groupId>org.apache.isis.valuetypes</groupId>
             <artifactId>isis-valuetypes-markdown-applib</artifactId>
diff --git a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java
similarity index 53%
copy from valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
copy to valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java
index 33fb2ea..f133132 100644
--- a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
+++ b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/IsisModuleValMarkdownPersistenceJpa.java
@@ -16,31 +16,19 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.valuetypes.markdown.persistence.jdo.dn5.converters;
+package org.apache.isis.valuetypes.markdown.persistence.jpa;
 
-import org.datanucleus.store.types.converters.TypeConverter;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
+import org.apache.isis.valuetypes.markdown.applib.IsisModuleValMarkdownApplib;
 
 /**
  * @since 2.0 {@index}
  */
-public class IsisMarkdownConverter implements TypeConverter<Markdown, String>{
-
-    private static final long serialVersionUID = 1L;
-
-    @Override
-    public String toDatastoreType(final Markdown memberValue) {
-        return memberValue != null
-                ? memberValue.asHtml()
-                        : null;
-    }
-
-    @Override
-    public Markdown toMemberType(final String datastoreValue) {
-        return datastoreValue != null
-                ? Markdown.valueOfHtml(datastoreValue)
-                        : null;
-    }
-
+@Configuration
+@Import({
+    IsisModuleValMarkdownApplib.class
+})
+public class IsisModuleValMarkdownPersistenceJpa {
 }
diff --git a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java
similarity index 71%
copy from valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
copy to valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java
index 33fb2ea..19d5c1a 100644
--- a/valuetypes/markdown/persistence/jdo-dn5/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jdo/dn5/converters/IsisMarkdownConverter.java
+++ b/valuetypes/markdown/persistence/jpa/src/main/java/org/apache/isis/valuetypes/markdown/persistence/jpa/converters/IsisMarkdownConverter.java
@@ -16,31 +16,29 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.valuetypes.markdown.persistence.jdo.dn5.converters;
+package org.apache.isis.valuetypes.markdown.persistence.jpa.converters;
 
-import org.datanucleus.store.types.converters.TypeConverter;
+import javax.persistence.AttributeConverter;
 
 import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 /**
  * @since 2.0 {@index}
  */
-public class IsisMarkdownConverter implements TypeConverter<Markdown, String>{
-
-    private static final long serialVersionUID = 1L;
+public class IsisMarkdownConverter implements AttributeConverter<Markdown, String>{
 
     @Override
-    public String toDatastoreType(final Markdown memberValue) {
+    public String convertToDatabaseColumn(final Markdown memberValue) {
         return memberValue != null
                 ? memberValue.asHtml()
-                        : null;
+                : null;
     }
 
     @Override
-    public Markdown toMemberType(final String datastoreValue) {
+    public Markdown convertToEntityAttribute(final String datastoreValue) {
         return datastoreValue != null
                 ? Markdown.valueOfHtml(datastoreValue)
-                        : null;
+                : null;
     }
 
 }
diff --git a/valuetypes/markdown/persistence/pom.xml b/valuetypes/markdown/persistence/pom.xml
index 2ce1b6f..53214ca 100644
--- a/valuetypes/markdown/persistence/pom.xml
+++ b/valuetypes/markdown/persistence/pom.xml
@@ -45,5 +45,6 @@
 
 	<modules>
 		<module>jdo-dn5</module>
+		<module>jpa</module>
 	</modules>
 </project>
diff --git a/valuetypes/pom.xml b/valuetypes/pom.xml
index 10a90cb..83b1ecc 100644
--- a/valuetypes/pom.xml
+++ b/valuetypes/pom.xml
@@ -86,6 +86,11 @@
 				<artifactId>isis-valuetypes-asciidoc-persistence-jdo-dn5</artifactId>
 				<version>2.0.0-SNAPSHOT</version>
 			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.valuetypes</groupId>
+				<artifactId>isis-valuetypes-asciidoc-persistence-jpa</artifactId>
+				<version>2.0.0-SNAPSHOT</version>
+			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>
@@ -107,6 +112,11 @@
 				<artifactId>isis-valuetypes-markdown-persistence-jdo-dn5</artifactId>
 				<version>2.0.0-SNAPSHOT</version>
 			</dependency>
+			<dependency>
+				<groupId>org.apache.isis.valuetypes</groupId>
+				<artifactId>isis-valuetypes-markdown-persistence-jpa</artifactId>
+				<version>2.0.0-SNAPSHOT</version>
+			</dependency>
 
 			<dependency>
 				<groupId>org.apache.isis.valuetypes</groupId>