From 9fe8cba35f4b0ec3aa2cb777a1c3922200d8630c Mon Sep 17 00:00:00 2001
From: Brian Long <brian@inteligr8.com>
Date: Thu, 4 Feb 2021 16:41:39 -0500
Subject: [PATCH] more fixes for BeeDK

---
 platform-webapp/pom.xml                       |  7 ++
 pom.xml                                       |  5 +-
 rad.sh                                        | 79 +++++++++++++++++++
 repo/pom.xml                                  | 22 ++++++
 .../rendition-defs-alfmarkdown.json           | 13 +++
 share-webapp/pom.xml                          |  8 +-
 share/pom.xml                                 | 20 +++++
 tengine/pom.xml                               |  2 +-
 .../module/alfmarkdown/CommonmarkConfig.java  |  4 +-
 .../alfmarkdown/CommonmarkTransformer.java    |  6 +-
 .../module/alfmarkdown/FlexmarkConfig.java    |  4 +-
 .../alfmarkdown/FlexmarkTransformer.java      |  6 +-
 .../alfmarkdown/TransformerController.java    |  5 +-
 .../main/resources/application-default.yaml   |  1 +
 .../CommonmarkTransformerTest.java            |  2 +-
 .../alfmarkdown/FlexmarkTransformerTest.java  |  2 +-
 .../test/resources/application-default.yaml   |  1 +
 17 files changed, 168 insertions(+), 19 deletions(-)
 create mode 100644 rad.sh
 create mode 100644 repo/src/main/extension/transform/renditions/rendition-defs-alfmarkdown.json

diff --git a/platform-webapp/pom.xml b/platform-webapp/pom.xml
index 68f62ed..124f291 100644
--- a/platform-webapp/pom.xml
+++ b/platform-webapp/pom.xml
@@ -20,6 +20,12 @@
 			<email>brian@inteligr8.com</email>
 		</developer>
 	</developers>
+	
+	<properties>
+		<ate.docker.image.name>inteligr8/alfmarkdown-tengine</ate.docker.image.name>
+		<ate.docker.image.tag>${project.version}</ate.docker.image.tag>
+		<ate.debugger.port>8001</ate.debugger.port>
+	</properties>
 
 	<dependencies>
 		<dependency>
@@ -45,6 +51,7 @@
 				<extensions>true</extensions>
 				<configuration>
 					<tiles>
+						<tile>com.inteligr8.alfresco:beedk-ate-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-lts-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-platform-webapp-tile:1.0-SNAPSHOT</tile>
 					</tiles>
diff --git a/pom.xml b/pom.xml
index 3bd73f5..22a5b4e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,18 +15,18 @@
 		<alfresco.sdk.version>4.1.0</alfresco.sdk.version>
 		<edition>community</edition>
 		<alfresco.platform.version>6.2.0-ga</alfresco.platform.version>
-		<alfresco.share.version>6.2.2</alfresco.share.version>
+		<alfresco.share.version>6.2.2.2</alfresco.share.version>
 		
 		<maven.compiler.source>8</maven.compiler.source>
 		<maven.compiler.target>8</maven.compiler.target>
 	</properties>
 
 	<modules>
+		<module>tengine</module>
 		<module>repo</module>
 		<module>platform-webapp</module>
 		<module>share</module>
 		<module>share-webapp</module>
-		<module>tengine</module>
 	</modules>
 
 	<!-- Alfresco Maven Repositories -->
@@ -43,5 +43,4 @@
 			<url>https://artifacts.alfresco.com/nexus/content/groups/public</url>
 		</pluginRepository>
 	</pluginRepositories>
-
 </project>
diff --git a/rad.sh b/rad.sh
new file mode 100644
index 0000000..23a2b05
--- /dev/null
+++ b/rad.sh
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+DOCKER_CONTAINER_NAME_PREFIX=alfmarkdown
+
+if [ -z "${M2_HOME}" ]; then
+  export MVN_EXEC="mvn"
+else
+  export MVN_EXEC="${M2_HOME}/bin/mvn"
+fi
+
+start() {
+	$MVN_EXEC clean package
+	$MVN_EXEC -pl $1 integration-test
+}
+
+stop() {
+	docker container stop $(docker container ls -q --filter name=$DOCKER_CONTAINER_NAME_PREFIX)
+	docker container rm $(docker container ls -aq --filter name=$DOCKER_CONTAINER_NAME_PREFIX)
+}
+
+reload() {
+	docker container stop $(docker container ls -q --filter name=$DOCKER_CONTAINER_NAME_PREFIX-.*-$1)
+	docker container start $(docker container ls -q --filter name=$DOCKER_CONTAINER_NAME_PREFIX-.*-$1)
+}
+
+list() {
+	docker container ls --filter name=$DOCKER_CONTAINER_NAME_PREFIX
+}
+
+tail() {
+	docker container logs $2 $(docker container ls -q --filter name=$DOCKER_CONTAINER_NAME_PREFIX-.*-$1)
+}
+
+case "$1" in
+	status)
+		list
+		;;
+	start)
+		if [ -z "$2" ]; then
+			echo "Usage: $0 start <project_folder>"
+			$MVN_EXEC -q --also-make exec:exec -Dexec.executable="pwd" | sed 's~/mnt/data/home/brian/Code/git/alfresco/alfmarkdown/\?\(.*\)~\1~'
+		else
+			start $2
+		fi
+		;;
+	stop)
+		stop
+		;;
+	reload)
+		if [ -z "$2" ]; then
+			echo "Usage: $0 restart <container_suffix>"
+			docker container ls --filter name=$DOCKER_CONTAINER_NANE_PREFIX --format "{{.Names}}"
+		else
+			restart $2
+		fi
+		;;
+	follow)
+		if [ -z "$2" ]; then
+			echo "Usage: $0 follow <container_suffix>"
+			docker container ls --filter name=$DOCKER_CONTAINER_NANE_PREFIX --format "{{.Names}}"
+		else
+			tail $2 "-f"
+		fi
+		;;
+	tail)
+		if [ -z "$2" ]; then
+			echo "Usage: $0 tail <container_suffix> [ since ]"
+			echo "  Example since: 40m (for 40 minutes into history)"
+			docker container ls --filter name=$DOCKER_CONTAINER_NANE_PREFIX --format "{{.Names}}"
+		elif [ -z "$3" ]; then
+			tail $2 "--tail 20"
+		else
+			tail $2 "--since $3"
+		fi
+		;;
+	*)
+		echo "Usage: $0 { status | start <project_folder> | stop | reload <container_suffix> | follow <container_suffix> | tail <container_suffix> [ since ] }"
+esac
+
diff --git a/repo/pom.xml b/repo/pom.xml
index 84e792f..bc08d35 100644
--- a/repo/pom.xml
+++ b/repo/pom.xml
@@ -14,7 +14,20 @@
         <version>1.0-SNAPSHOT</version>
     </parent>
     
+    <properties>
+		<ate.docker.image.name>inteligr8/alfmarkdown-tengine</ate.docker.image.name>
+		<ate.docker.image.tag>${project.version}</ate.docker.image.tag>
+		<ate.debugger.port>8001</ate.debugger.port>
+	</properties>
+    
     <dependencies>
+		<dependency>
+			<groupId>de.fmaul</groupId>
+			<artifactId>javascript-console-repo</artifactId>
+			<version>0.6.0</version>
+			<type>amp</type>
+			<scope>test</scope>
+		</dependency>
     	<dependency>
     		<groupId>org.alfresco</groupId>
     		<artifactId>alfresco-repository</artifactId>
@@ -32,6 +45,8 @@
 				<extensions>true</extensions>
 				<configuration>
 					<tiles>
+						<tile>com.inteligr8.alfresco:beedk-ate-it-tile:1.0-SNAPSHOT</tile>
+						<tile>com.inteligr8.alfresco:beedk-acs-lts-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-platform-module-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8:maven-private-deploy-tile:[1.0.0,2.0.0)</tile>
 					</tiles>
@@ -39,5 +54,12 @@
 			</plugin>
 		</plugins>
 	</build>
+	
+	<repositories>
+		<repository>
+			<id>inteligr8-releases</id>
+			<url>http://repos.yateslong.us/nexus/repository/inteligr8-public</url>
+		</repository>
+	</repositories>
 
 </project>
diff --git a/repo/src/main/extension/transform/renditions/rendition-defs-alfmarkdown.json b/repo/src/main/extension/transform/renditions/rendition-defs-alfmarkdown.json
new file mode 100644
index 0000000..1b998e7
--- /dev/null
+++ b/repo/src/main/extension/transform/renditions/rendition-defs-alfmarkdown.json
@@ -0,0 +1,13 @@
+{
+	"renditions": [
+		{
+			"renditionName": "flexmark-md-html",
+			"targetMediaType": "text/html"
+		},
+		{
+			"renditionName": "commonmark-md-html",
+			"targetMediaType": "text/html",
+			"options": [ { "name": "engine", "value": "commonmark" } ]
+		}
+	]
+}
\ No newline at end of file
diff --git a/share-webapp/pom.xml b/share-webapp/pom.xml
index 35cb968..799be1c 100644
--- a/share-webapp/pom.xml
+++ b/share-webapp/pom.xml
@@ -22,11 +22,13 @@
 	</developers>
 	
 	<properties>
-    	<alfresco.share.version>6.2.2</alfresco.share.version>
-    	
     	<project.sibling.build.directory>${basedir}/../platform-webapp/target</project.sibling.build.directory>
     	<project.sibling.build.warDirectory>${project.sibling.build.directory}/war</project.sibling.build.warDirectory>
     	<project.sibling.build.warFile>${project.sibling.build.warDirectory}/content-services-community-${alfresco.platform.version}.war</project.sibling.build.warFile>
+    	
+		<ate.docker.image.name>inteligr8/alfmarkdown-tengine</ate.docker.image.name>
+		<ate.docker.image.tag>${project.version}</ate.docker.image.tag>
+		<ate.debugger.port>8001</ate.debugger.port>
     </properties>
 
 	<dependencies>
@@ -53,6 +55,8 @@
 				<extensions>true</extensions>
 				<configuration>
 					<tiles>
+						<tile>com.inteligr8.alfresco:beedk-ate-it-tile:1.0-SNAPSHOT</tile>
+						<tile>com.inteligr8.alfresco:beedk-acs-lts-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-platform-sibling-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-share-webapp-tile:1.0-SNAPSHOT</tile>
 					</tiles>
diff --git a/share/pom.xml b/share/pom.xml
index d0a8921..ea183d7 100644
--- a/share/pom.xml
+++ b/share/pom.xml
@@ -18,9 +18,20 @@
     	<project.sibling.build.directory>${basedir}/../repo/target</project.sibling.build.directory>
     	<project.sibling.build.warDirectory>${project.sibling.build.directory}/war</project.sibling.build.warDirectory>
     	<project.sibling.build.warFile>${project.sibling.build.warDirectory}/content-services-community-${alfresco.platform.version}.war</project.sibling.build.warFile>
+    	
+		<ate.docker.image.name>inteligr8/alfmarkdown-tengine</ate.docker.image.name>
+		<ate.docker.image.tag>${project.version}</ate.docker.image.tag>
+		<ate.debugger.port>8001</ate.debugger.port>
     </properties>
     
     <dependencies>
+		<dependency>
+			<groupId>de.fmaul</groupId>
+			<artifactId>javascript-console-share</artifactId>
+			<version>0.6.0</version>
+			<type>amp</type>
+			<scope>test</scope>
+		</dependency>
         <dependency>
             <groupId>org.alfresco</groupId>
             <artifactId>share</artifactId>
@@ -39,6 +50,8 @@
 				<extensions>true</extensions>
 				<configuration>
 					<tiles>
+						<tile>com.inteligr8.alfresco:beedk-ate-it-tile:1.0-SNAPSHOT</tile>
+						<tile>com.inteligr8.alfresco:beedk-acs-lts-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-platform-sibling-it-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8.alfresco:beedk-acs-share-module-tile:1.0-SNAPSHOT</tile>
 						<tile>com.inteligr8:maven-private-deploy-tile:[1.0.0,2.0.0)</tile>
@@ -47,5 +60,12 @@
 			</plugin>
 		</plugins>
 	</build>
+	
+	<repositories>
+		<repository>
+			<id>inteligr8-releases</id>
+			<url>http://repos.yateslong.us/nexus/repository/inteligr8-public</url>
+		</repository>
+	</repositories>
 
 </project>
diff --git a/tengine/pom.xml b/tengine/pom.xml
index a79e446..585a15c 100644
--- a/tengine/pom.xml
+++ b/tengine/pom.xml
@@ -12,7 +12,7 @@
     	<relativePath>..</relativePath>
     </parent>
     
-    <name>alfmarkdown Alfresco T-Engine</name>
+    <name>Alfmarkdown Alfresco T-Engine</name>
 
     <properties>
     	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkConfig.java b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkConfig.java
index b629f3a..97db95b 100755
--- a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkConfig.java
+++ b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkConfig.java
@@ -6,9 +6,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-@ConfigurationProperties(prefix = "transform.alfmarkdown.flexmark")
+@ConfigurationProperties(prefix = "transform.alfmarkdown." + CommonmarkConfig.ID)
 public class CommonmarkConfig {
 	
+	static final String ID = "commonmark";
+	
 	private List<String> defaultExtensions;
 	
 	public List<String> getDefaultExtensions() {
diff --git a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformer.java b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformer.java
index d05755d..b6f3e38 100755
--- a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformer.java
+++ b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformer.java
@@ -32,10 +32,8 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.stereotype.Component;
 
-@Component(CommonmarkTransformer.ID)
+@Component(CommonmarkConfig.ID)
 public class CommonmarkTransformer implements Transformer {
-
-	public static final String ID = "commonmark";
 	
 	private final Logger logger = LoggerFactory.getLogger(CommonmarkTransformer.class);
 	private final List<String> classSearchPrefixes = Arrays.asList("", "org.commonmark.ext.{name}.", "org.commonmark.ext.gfm.{name}.");
@@ -52,7 +50,7 @@ public class CommonmarkTransformer implements Transformer {
 	
 	@Override
 	public String getTransformerId() {
-		return ID;
+		return CommonmarkConfig.ID;
 	}
 	
 	@Override
diff --git a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkConfig.java b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkConfig.java
index 3fa2049..dc20980 100755
--- a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkConfig.java
+++ b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkConfig.java
@@ -6,9 +6,11 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-@ConfigurationProperties(prefix = "transform.alfmarkdown.flexmark")
+@ConfigurationProperties(prefix = "transform.alfmarkdown." + FlexmarkConfig.ID)
 public class FlexmarkConfig {
 	
+	static final String ID = "flexmark";
+	
 	private String defaultProfile;
 	private List<String> defaultExtensions;
 	
diff --git a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformer.java b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformer.java
index 7ea4b78..be38a62 100644
--- a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformer.java
+++ b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformer.java
@@ -34,10 +34,8 @@ import com.vladsch.flexmark.util.ast.IRender;
 import com.vladsch.flexmark.util.data.MutableDataSet;
 import com.vladsch.flexmark.util.misc.Extension;
 
-@Component(FlexmarkTransformer.ID)
+@Component(FlexmarkConfig.ID)
 public class FlexmarkTransformer implements Transformer {
-
-	public static final String ID = "flexmark";
 	
 	private final Logger logger = LoggerFactory.getLogger(FlexmarkTransformer.class);
 	private final List<String> classSearchPrefixes = Arrays.asList("", "com.vladsch.flexmark.ext.{name}.", "com.vladsch.flexmark.ext.");
@@ -54,7 +52,7 @@ public class FlexmarkTransformer implements Transformer {
 	
 	@Override
 	public String getTransformerId() {
-		return ID;
+		return FlexmarkConfig.ID;
 	}
 	
 	@Override
diff --git a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/TransformerController.java b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/TransformerController.java
index 5774bd3..6dfcaf1 100644
--- a/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/TransformerController.java
+++ b/tengine/src/main/java/com/inteligr8/alfresco/module/alfmarkdown/TransformerController.java
@@ -84,6 +84,9 @@ public class TransformerController extends AbstractTransformerController {
 	@Value("${transform.alfmarkdown.version}")
 	private String version;
 	
+	@Value("${transform.alfmarkdown.defaultEngine}")
+	private String defaultEngine;
+	
 	private Map<String, Transformer> engineMap;
 	private ProbeTestTransform probe;
 
@@ -150,7 +153,7 @@ public class TransformerController extends AbstractTransformerController {
 			targetMimetype = matcher.find() ? this.ext2mime(matcher.group(1)) : this.defaultTarget.toString();
 		}
 		
-		String engine = transformOptions.getOrDefault(RequestParamConstants.ENGINE, FlexmarkTransformer.ID);
+		String engine = transformOptions.getOrDefault(RequestParamConstants.ENGINE, this.defaultEngine);
 		if (!this.engineMap.containsKey(engine))
 			throw new TransformException(HttpStatus.BAD_REQUEST.value(), "This transformer does not support the following engine: " + engine);
 		
diff --git a/tengine/src/main/resources/application-default.yaml b/tengine/src/main/resources/application-default.yaml
index cb70837..a59119d 100644
--- a/tengine/src/main/resources/application-default.yaml
+++ b/tengine/src/main/resources/application-default.yaml
@@ -7,6 +7,7 @@ transform:
          location: classpath:this_engine_config.json
    alfmarkdown:
       version: ${project.version}
+      defaultEngine: flexmark
       commonmark:
          defaultExtensions:
             - ImageAttributesExtension
diff --git a/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformerTest.java b/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformerTest.java
index 17d615c..f7f27e6 100755
--- a/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformerTest.java
+++ b/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/CommonmarkTransformerTest.java
@@ -7,7 +7,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
 public class CommonmarkTransformerTest extends TransformerTest {
 
 	@Autowired
-	@Qualifier(FlexmarkTransformer.ID)
+	@Qualifier(FlexmarkConfig.ID)
 	protected Transformer transformer;
 	
 	@Override
diff --git a/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformerTest.java b/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformerTest.java
index c5974c8..4cc3a5f 100755
--- a/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformerTest.java
+++ b/tengine/src/test/java/com/inteligr8/alfresco/module/alfmarkdown/FlexmarkTransformerTest.java
@@ -7,7 +7,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
 public class FlexmarkTransformerTest extends TransformerTest {
 
 	@Autowired
-	@Qualifier(FlexmarkTransformer.ID)
+	@Qualifier(FlexmarkConfig.ID)
 	protected Transformer transformer;
 	
 	@Override
diff --git a/tengine/src/test/resources/application-default.yaml b/tengine/src/test/resources/application-default.yaml
index 6082e4e..56cef95 100644
--- a/tengine/src/test/resources/application-default.yaml
+++ b/tengine/src/test/resources/application-default.yaml
@@ -7,6 +7,7 @@ transform:
          location: classpath:this_engine_config.json
    alfmarkdown:
       version: ${project.version}
+      defaultEngine: flexmark
       commonmark:
          defaultExtensions:
             - ImageAttributesExtension