diff --git a/README.md b/README.md
index 597f3f78..c01636f4 100644
--- a/README.md
+++ b/README.md
@@ -7,8 +7,9 @@ This project is released under the [Apache License, Version 2.0](http://www.apac
## News
-- 2015-10-19: SDK 2.1.1 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
-- 2015-05-20: SDK 2.1.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
+- 2016-02-20: SDK 2.2.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html), [Release notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/latest/github-report.html)
+- 2015-10-19: SDK 2.1.1 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
+- 2015-05-20: SDK 2.1.0 released to Maven Central. Docs for [Community](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html), [Enterprise](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
- 2014-12-23: SDK 2.0.0 release to Maven Central. [Docs](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html), [Release Notes](https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-sdk-aggregator/archive/2.0.0/github-report.htm)
- 2014-08-22: First SNAPSHOT of SDK 2.0.0 in the [OSS Sonatype Repository](https://oss.sonatype.org/content/repositories/snapshots/org/alfresco/maven/alfresco-sdk-parent/2.0.0-SNAPSHOT/)!
- 2014-07: Project fully migrated from [Google Code](https://code.google.com/p/maven-alfresco-archetypes).
@@ -16,20 +17,23 @@ This project is released under the [Apache License, Version 2.0](http://www.apac
## User Getting Started
### Latest Documentation
-To get started with Alfresco SDK 2.1.1 (latest) visit the offical Alfresco Documentation for:
+To get started with Alfresco SDK 2.2.0 (latest) visit the offical Alfresco Documentation for:
-- [Alfresco Community 5.0.d and above](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html)
-- [Alfresco Enterprise 5.0.1 and above](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-intro.html)
+- [Alfresco Community 5.1 and above](http://docs.alfresco.com/community/concepts/alfresco-sdk-intro.html)
+- [Alfresco Enterprise 5.1 and above](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-intro.html)
#### Previous versions Documentation
-- Documentation for [Alfresco SDK 2.0](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.d Community and 5.0.0 Enterprise)
+- Documentation for [Alfresco SDK 2.1](http://docs.alfresco.com/sdk2.1/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.d Community and 5.0.1 Enterprise)
+- Documentation for [Alfresco SDK 2.0](http://docs.alfresco.com/sdk2.0/concepts/alfresco-sdk-intro.html) (compatible with Alfresco 5.0.c Community and 5.0.0 Enterprise)
- Documentation for [Alfresco SDK 1.1.1](http://docs.alfresco.com/4.2/concepts/dev-extensions-maven-sdk-intro.html) (compatible with Alfresco 4.2)
### Samples
-Sample extension projects that use the SDK, maintained by @ohej in the [Alfresco SDK Samples project](https://github.com/Alfresco/alfresco-sdk-samples/).
+Sample extension projects that use the SDK:
+ - [Alfresco SDK Samples for 5.1 (JARs)](https://github.com/Alfresco/alfresco-sdk-samples/tree/alfresco-51/all-in-one).
+ - [Alfresco SDK Samples for 5.0 (AMPs)](https://github.com/Alfresco/alfresco-sdk-samples/tree/alfresco-50/all-in-one).
### Command reference
-A list of supported features and commands, explanation of Maven profiles and commands is kept in the [Alfresco Official Docs](http://docs.alfresco.com/5.0/concepts/alfresco-sdk-cmd-reference.html).
+A list of supported features and commands is kept in the [Alfresco Official Docs](http://docs.alfresco.com/5.1/concepts/alfresco-sdk-cmd-reference.html).
### Want to get up to speed quickly in Eclipse? Check out this video!
diff --git a/archetypes/activiti-jar-archetype/pom.xml b/archetypes/activiti-jar-archetype/pom.xml
new file mode 100644
index 00000000..cdde384c
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/pom.xml
@@ -0,0 +1,62 @@
+
+
+ 4.0.0
+
+ org.alfresco.maven.archetype
+ activiti-jar-archetype
+
+ maven-archetype
+ Alfresco SDK - Activiti JAR Archetype
+ Sample project with full support for lifecycle and rapid development of Activiti JARs
+
+
+ org.alfresco.maven
+ alfresco-sdk-aggregator
+ 3.0.0-SNAPSHOT
+ ../../pom.xml
+
+
+
+
+
+ src/main/resources
+
+ archetype-resources/pom.xml
+ archetype-resources/run.sh
+ archetype-resources/run.bat
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
+ META-INF/maven/archetype-metadata.xml
+
+ true
+
+
+ src/main/resources
+
+ archetype-resources/pom.xml
+ archetype-resources/run.sh
+ archetype-resources/run.bat
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
+ META-INF/maven/archetype-metadata.xml
+
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ ${maven.resource.version}
+
+ false
+
+ @@
+
+
+
+
+
+
+
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/activiti-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
new file mode 100644
index 00000000..c7cdb8c3
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ 1.0-SNAPSHOT
+
+
+
+
+
+ src/main/java
+
+ **/*.java
+
+
+
+ src/test/java
+
+ **/*.java
+
+
+
+ src/main/resources
+
+ **/bpmn-models/**
+
+
+
+ src/main/resources
+
+ **/bpmn-models/**
+
+
+
+ src/test/resources
+
+ log4j-dev.properties
+
+
+
+ src/test/resources
+
+ log4j-dev.properties
+
+
+
+ src/test/license
+
+ **
+
+
+
+
+
+ debug.sh
+ debug.bat
+ run.sh
+ run.bat
+ README.md
+
+
+
+
+R
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/README.md b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/README.md
new file mode 100644
index 00000000..b283c7cf
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/README.md
@@ -0,0 +1,21 @@
+# Alfresco Activiti JAR Module - SDK 3
+
+To run use `mvn clean install alfresco:run` or `./run.sh` and verify that it
+
+ * Runs the embedded Tomcat + H2 DB
+ * Runs Activiti Explorer
+ * Optionally runs Activiti REST
+ * Packages both a JAR with customization
+
+# Few things to notice
+
+ * No parent pom
+ * WAR assembly is handled by the Alfresco Maven Plugin configuration
+ * Standard JAR packaging and layout
+ * Works seamlessly with Eclipse and IntelliJ IDEA
+ * JRebel for hot reloading, JRebel maven plugin for generating rebel.xml, agent usage: `MAVEN_OPTS=-Xms256m -Xmx1G -agentpath:/home/martin/apps/jrebel/lib/libjrebel64.so`
+ * [Configurable Run mojo](https://github.com/Alfresco/alfresco-sdk/blob/sdk-3.0/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java) in the `alfresco-maven-plugin`
+ * No unit testing/functional tests just yet
+
+
+
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/debug.bat b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/debug.bat
new file mode 100644
index 00000000..dfd3a528
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/debug.bat
@@ -0,0 +1,9 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: Dev environment startup script for Alfresco Community ::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+@echo off
+
+set MAVEN_OPTS=-Xms1G -Xmx2G
+
+mvnDebug clean install alfresco:run
+
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/debug.sh b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/debug.sh
new file mode 100755
index 00000000..86defd48
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/debug.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+MAVEN_OPTS="-Xms1G -Xmx2G" mvnDebug clean install alfresco:run
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/pom.xml
new file mode 100644
index 00000000..e94f7ac2
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/pom.xml
@@ -0,0 +1,295 @@
+
+
+ 4.0.0
+ ${groupId}
+ ${artifactId}
+ ${version}
+ ${artifactId} Activiti Jar Module - SDK 3
+ Activiti JAR Module that produces a JAR file with Java extensions such as service task delegates. It also produces an application ZIP with workflow definition, forms etc that can be deployed via /activiti-app - SDK 3
+ jar
+
+
+
+ @@alfresco.sdk.parent.version@@
+
+ UTF-8
+
+
+ ${project.basedir}/activiti_data_dev
+
+
+ com.activiti
+ activiti-app
+ activiti-admin
+
+
+ 1.5.1
+
+
+ 1.1.6
+
+
+ 1.7
+ 1.7
+
+
+
+
+
+ ${activiti.groupId}
+ activiti-app-logic
+ ${activiti.version}
+
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 1.3
+
+
+ create-app-zip
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.alfresco.maven.plugin
+ alfresco-maven-plugin
+ ${alfresco.sdk.version}
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ community
+ false
+ false
+ false
+
+
+
+
+
+ ${project.groupId}
+ ${project.artifactId}
+ ${project.version}
+
+
+
+
+
+
+
+ org.zeroturnaround
+ jrebel-maven-plugin
+ ${jrebel.version}
+
+
+ generate-rebel-xml
+ process-resources
+
+ generate
+
+
+
+
+
+
+ all
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.0.1
+
+ UTF-8
+
+ ftl
+ acp
+ svg
+ pdf
+ doc
+ docx
+ xls
+ xlsx
+ ppt
+ pptx
+ bin
+ lic
+ swf
+ zip
+ msg
+ jar
+ ttf
+ eot
+ woff
+ woff2
+ css
+ ico
+ psd
+ js
+
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+ apps/**
+
+
+
+
+
+
+ src/test/resources
+ true
+
+
+
+ src/test/license
+ false
+
+
+
+
+
+
+
+
+ alfresco-public
+ https://artifacts.alfresco.com/nexus/content/groups/public
+
+
+ alfresco-public-snapshots
+ https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
+
+ true
+ daily
+
+
+
+
+ alfresco-private-repository
+ https://artifacts.alfresco.com/nexus/content/groups/private
+
+
+
+
+ activiti-public
+ https://artifacts.alfresco.com/nexus/content/repositories/activiti-releases/
+
+
+ activiti-public-snapshots
+ https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
+
+ true
+ daily
+
+
+
+
+ activiti-private-repository
+ https://artifacts.alfresco.com/nexus/content/repositories/activiti-enterprise-releases
+
+
+
+
+ alfresco-plugin-public
+ https://artifacts.alfresco.com/nexus/content/groups/public
+
+
+ alfresco-plugin-public-snapshots
+ https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
+
+ true
+ daily
+
+
+
+
+
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/run.bat b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/run.bat
new file mode 100644
index 00000000..9271b1f3
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/run.bat
@@ -0,0 +1,8 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+:: Dev environment startup script for Alfresco Community ::
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+@echo off
+
+set MAVEN_OPTS=-Xms1G -Xmx2G
+
+mvn clean install alfresco:run
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/run.sh b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/run.sh
new file mode 100755
index 00000000..35150700
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/run.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+MAVEN_OPTS="-Xms1G -Xmx2G" mvn clean install alfresco:run
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/java/tasks/service/HelloWorldServiceTask.java b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/java/tasks/service/HelloWorldServiceTask.java
new file mode 100644
index 00000000..28e1586f
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/java/tasks/service/HelloWorldServiceTask.java
@@ -0,0 +1,38 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+package ${package}.tasks.service;
+
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.JavaDelegate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A sample service task Java implementation
+ *
+ * @author martin.bergljung@alfresco.com
+ */
+public class HelloWorldServiceTask implements JavaDelegate {
+ private static Logger logger = LoggerFactory.getLogger(HelloWorldServiceTask.class);
+
+ public void execute(DelegateExecution execution) throws Exception {
+ logger.debug("Hello World from the Java Service Task!");
+ }
+}
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/Hello World.json b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/Hello World.json
new file mode 100644
index 00000000..d7e91a24
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/Hello World.json
@@ -0,0 +1,20 @@
+{
+ "models": [
+ {
+ "id": 2005,
+ "name": "Hello World",
+ "version": 1,
+ "modelType": 0,
+ "description": "The Hello World business process that is part of the Alfresco SDK 3.0 Activiti JAR Module Maven archetype",
+ "stencilSetId": 0,
+ "createdByFullName": " Administrator",
+ "createdBy": 1,
+ "lastUpdatedByFullName": " Administrator",
+ "lastUpdatedBy": 1,
+ "lastUpdated": "2016-09-29T12:38:13.716+0000"
+ }
+ ],
+ "theme": "theme-1",
+ "icon": "glyphicon-cog",
+ "publishIdentityInfo": []
+}
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.bpmn20.xml b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.bpmn20.xml
new file mode 100644
index 00000000..c26166d8
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.bpmn20.xml
@@ -0,0 +1,141 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+
+
+
+ The Hello World business process that is part of the Alfresco SDK 3.0 Activiti JAR Module Maven
+ archetype
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.json b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.json
new file mode 100644
index 00000000..eb99f2eb
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.json
@@ -0,0 +1,403 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+{
+ "resourceId": 2005,
+ "properties": {
+ "process_id": "HelloWorld",
+ "name": "Hello World",
+ "documentation": "The Hello World business process that is part of the Alfresco SDK 3.0 Activiti JAR Module Maven archetype",
+ "process_author": "",
+ "process_version": "",
+ "process_namespace": "http://www.activiti.org/processdef",
+ "executionlisteners": "",
+ "eventlisteners": "",
+ "signaldefinitions": "",
+ "messagedefinitions": "",
+ "executionvariables": "",
+ "metadata": ""
+ },
+ "stencil": {
+ "id": "BPMNDiagram"
+ },
+ "childShapes": [
+ {
+ "resourceId": "startEvent1",
+ "properties": {
+ "overrideid": "startHelloWorld",
+ "name": "",
+ "documentation": "",
+ "executionlisteners": "",
+ "initiator": "",
+ "formkeydefinition": "",
+ "formreference": {
+ "id": 2006,
+ "name": "Hello World Start",
+ "referenceId": 2005,
+ "variablesmapping": []
+ },
+ "fieldstovariables": "",
+ "formproperties": ""
+ },
+ "stencil": {
+ "id": "StartNoneEvent"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 120,
+ "y": 220
+ },
+ "upperLeft": {
+ "x": 90,
+ "y": 190
+ }
+ },
+ "dockers": []
+ },
+ {
+ "resourceId": "sid-B4E2D526-60B7-47B9-856C-FC824DA15708",
+ "properties": {
+ "overrideid": "decideGreeting",
+ "name": "Decide greeting",
+ "documentation": "",
+ "asynchronousdefinition": "false",
+ "exclusivedefinition": "false",
+ "executionlisteners": "",
+ "multiinstance_type": "None",
+ "multiinstance_cardinality": "",
+ "multiinstance_collection": "",
+ "multiinstance_variable": "",
+ "multiinstance_condition": "",
+ "isforcompensation": "false",
+ "decisiontaskdecisiontablereference": {
+ "id": 2007,
+ "name": "Decide What Greeting",
+ "referenceId": 2005,
+ "variablesmapping": []
+ }
+ },
+ "stencil": {
+ "id": "DecisionTask"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 310,
+ "y": 245
+ },
+ "upperLeft": {
+ "x": 210,
+ "y": 165
+ }
+ },
+ "dockers": []
+ },
+ {
+ "resourceId": "sid-4A014247-BF0C-436D-B3CE-EA297F2A18FA",
+ "properties": {
+ "overrideid": "",
+ "name": "",
+ "documentation": "",
+ "conditionsequenceflow": "",
+ "executionlisteners": "",
+ "defaultflow": "false"
+ },
+ "stencil": {
+ "id": "SequenceFlow"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-B4E2D526-60B7-47B9-856C-FC824DA15708"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 209.3515625,
+ "y": 205
+ },
+ "upperLeft": {
+ "x": 120.53125,
+ "y": 205
+ }
+ },
+ "dockers": [
+ {
+ "x": 15,
+ "y": 15
+ },
+ {
+ "x": 50,
+ "y": 40
+ }
+ ],
+ "target": {
+ "resourceId": "sid-B4E2D526-60B7-47B9-856C-FC824DA15708"
+ }
+ },
+ {
+ "resourceId": "sid-68AE120D-AB55-4ED2-AFD5-845139236AD3",
+ "properties": {
+ "scriptformat": "JavaScript",
+ "scripttext": "print(\"Hello World from JavaScript task:\");\nvar userId = initiator;\nprint(dayGreeting + \" \" + userInfoBean.getUser(userId).getFullName());\nprint(\"You entered '\" + greeting + \"' as a greeting text.\");\n",
+ "executionvariables": "",
+ "overrideid": "",
+ "name": "Print Greeting from JS",
+ "documentation": "",
+ "asynchronousdefinition": "false",
+ "exclusivedefinition": "false",
+ "executionlisteners": "",
+ "multiinstance_type": "None",
+ "multiinstance_cardinality": "",
+ "multiinstance_collection": "",
+ "multiinstance_variable": "",
+ "multiinstance_condition": "",
+ "isforcompensation": "false"
+ },
+ "stencil": {
+ "id": "ScriptTask"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 775,
+ "y": 245
+ },
+ "upperLeft": {
+ "x": 675,
+ "y": 165
+ }
+ },
+ "dockers": []
+ },
+ {
+ "resourceId": "sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6",
+ "properties": {
+ "overrideid": "endHelloWorld",
+ "name": "",
+ "documentation": "",
+ "executionlisteners": ""
+ },
+ "stencil": {
+ "id": "EndTerminateEvent"
+ },
+ "childShapes": [],
+ "outgoing": [],
+ "bounds": {
+ "lowerRight": {
+ "x": 943,
+ "y": 219
+ },
+ "upperLeft": {
+ "x": 915,
+ "y": 191
+ }
+ },
+ "dockers": []
+ },
+ {
+ "resourceId": "sid-6105A21B-6A76-41EC-B88E-78B3BE4A826F",
+ "properties": {
+ "overrideid": "",
+ "name": "",
+ "documentation": "",
+ "conditionsequenceflow": "",
+ "executionlisteners": "",
+ "defaultflow": "false"
+ },
+ "stencil": {
+ "id": "SequenceFlow"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 914.453125,
+ "y": 205
+ },
+ "upperLeft": {
+ "x": 775.40625,
+ "y": 205
+ }
+ },
+ "dockers": [
+ {
+ "x": 50,
+ "y": 40
+ },
+ {
+ "x": 14,
+ "y": 14
+ }
+ ],
+ "target": {
+ "resourceId": "sid-9F0B5A13-7D1F-4ADF-8A08-7B9F0D851DA6"
+ }
+ },
+ {
+ "resourceId": "sid-61E86F19-FC5F-4814-B9AB-2394B03171D6",
+ "properties": {
+ "overrideid": "printGreetingFromJava",
+ "name": "Print Greeting From Java",
+ "documentation": "",
+ "asynchronousdefinition": "false",
+ "exclusivedefinition": "false",
+ "executionlisteners": "",
+ "multiinstance_type": "None",
+ "multiinstance_cardinality": "",
+ "multiinstance_collection": "",
+ "multiinstance_variable": "",
+ "multiinstance_condition": "",
+ "isforcompensation": "false",
+ "servicetaskclass": "${package}.tasks.service.HelloWorldServiceTask",
+ "servicetaskexpression": "",
+ "servicetaskdelegateexpression": "",
+ "servicetaskfields": "",
+ "servicetaskresultvariable": "",
+ "executionvariables": ""
+ },
+ "stencil": {
+ "id": "ServiceTask"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 543,
+ "y": 245
+ },
+ "upperLeft": {
+ "x": 443,
+ "y": 165
+ }
+ },
+ "dockers": []
+ },
+ {
+ "resourceId": "sid-AD10A830-F8B1-4DBA-9C48-DFD5136E3810",
+ "properties": {
+ "overrideid": "",
+ "name": "",
+ "documentation": "",
+ "conditionsequenceflow": "",
+ "executionlisteners": "",
+ "defaultflow": "false"
+ },
+ "stencil": {
+ "id": "SequenceFlow"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-68AE120D-AB55-4ED2-AFD5-845139236AD3"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 674.15625,
+ "y": 205
+ },
+ "upperLeft": {
+ "x": 543.84375,
+ "y": 205
+ }
+ },
+ "dockers": [
+ {
+ "x": 50,
+ "y": 40
+ },
+ {
+ "x": 50,
+ "y": 40
+ }
+ ],
+ "target": {
+ "resourceId": "sid-68AE120D-AB55-4ED2-AFD5-845139236AD3"
+ }
+ },
+ {
+ "resourceId": "sid-E8B736FE-874D-4EDF-85A6-8B602F1503FD",
+ "properties": {
+ "overrideid": "",
+ "name": "",
+ "documentation": "",
+ "conditionsequenceflow": "",
+ "executionlisteners": "",
+ "defaultflow": "false",
+ "showdiamondmarker": false
+ },
+ "stencil": {
+ "id": "SequenceFlow"
+ },
+ "childShapes": [],
+ "outgoing": [
+ {
+ "resourceId": "sid-61E86F19-FC5F-4814-B9AB-2394B03171D6"
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 443,
+ "y": 205
+ },
+ "upperLeft": {
+ "x": 310.59375,
+ "y": 205
+ }
+ },
+ "dockers": [
+ {
+ "x": 50,
+ "y": 40
+ },
+ {
+ "x": 1,
+ "y": 40
+ }
+ ],
+ "target": {
+ "resourceId": "sid-61E86F19-FC5F-4814-B9AB-2394B03171D6"
+ }
+ }
+ ],
+ "bounds": {
+ "lowerRight": {
+ "x": 1200,
+ "y": 1050
+ },
+ "upperLeft": {
+ "x": 0,
+ "y": 0
+ }
+ },
+ "stencilset": {
+ "url": "stencilsets/bpmn2.0/bpmn2.0.json",
+ "namespace": "http://b3mn.org/stencilset/bpmn2.0#"
+ },
+ "ssextensions": []
+}
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.png b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.png
new file mode 100644
index 00000000..c62691b6
Binary files /dev/null and b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/bpmn-models/Hello World-2005.png differ
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/decision-table-models/Decide What Greeting-2007.json b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/decision-table-models/Decide What Greeting-2007.json
new file mode 100644
index 00000000..0dc46aaf
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/decision-table-models/Decide What Greeting-2007.json
@@ -0,0 +1,53 @@
+{
+ "referenceId": 2005,
+ "name": "Decide What Greeting",
+ "description": "Decide, depending on time of day, what greeting to display.",
+ "editorJson": {
+ "id": 2007,
+ "name": "Decide What Greeting",
+ "key": "DecideWhatGreeting",
+ "description": "Decide, depending on time of day, what greeting to display.",
+ "hitIndicator": "FIRST",
+ "inputExpressions": [
+ {
+ "id": "3",
+ "variableId": "timeofday",
+ "variableType": "formfield",
+ "type": "string",
+ "label": "Time of day",
+ "entries": null,
+ "newVariable": false
+ }
+ ],
+ "outputExpressions": [
+ {
+ "id": "4",
+ "variableId": "dayGreeting",
+ "variableType": "variable",
+ "type": "string",
+ "label": "DayGreeting",
+ "entries": null,
+ "newVariable": true
+ }
+ ],
+ "rules": [
+ {
+ "3": "== \"time_of_day_morning\"",
+ "4": "\"Good Morning!\""
+ },
+ {
+ "3": "== \"time_of_day_lunch\"",
+ "4": "\"Good Day!\""
+ },
+ {
+ "3": "== \"time_of_day_dinner\"",
+ "4": "\"Good Evening!\""
+ },
+ {
+ "3": "== \"time_of_day_night\"",
+ "4": "\"Good Night!\""
+ }
+ ],
+ "executionVariables": []
+ }
+}
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/decision-table-models/Decide What Greeting-2007.png b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/decision-table-models/Decide What Greeting-2007.png
new file mode 100644
index 00000000..dc9d1b52
Binary files /dev/null and b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/decision-table-models/Decide What Greeting-2007.png differ
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/form-models/Hello World Start-2006.json b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/form-models/Hello World Start-2006.json
new file mode 100644
index 00000000..f860ae36
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/form-models/Hello World Start-2006.json
@@ -0,0 +1,201 @@
+{
+ "referenceId": 2005,
+ "name": "Hello World Start",
+ "description": "The form for the Start task in the Hello World business process.",
+ "editorJson": {
+ "tabs": [],
+ "fields": [
+ {
+ "fieldType": "ContainerRepresentation",
+ "id": "1475149613209",
+ "name": "Label",
+ "type": "container",
+ "value": null,
+ "required": false,
+ "readOnly": false,
+ "overrideId": false,
+ "colspan": 1,
+ "placeholder": null,
+ "minLength": 0,
+ "maxLength": 0,
+ "minValue": null,
+ "maxValue": null,
+ "regexPattern": null,
+ "optionType": null,
+ "hasEmptyValue": null,
+ "options": null,
+ "restUrl": null,
+ "restResponsePath": null,
+ "restIdProperty": null,
+ "restLabelProperty": null,
+ "tab": null,
+ "className": null,
+ "dateDisplayFormat": null,
+ "layout": null,
+ "sizeX": 2,
+ "sizeY": 1,
+ "row": -1,
+ "col": -1,
+ "visibilityCondition": null,
+ "numberOfColumns": 2,
+ "fields": {
+ "1": [
+ {
+ "fieldType": "FormFieldRepresentation",
+ "id": "greeting",
+ "name": "Greeting",
+ "type": "text",
+ "value": null,
+ "required": true,
+ "readOnly": false,
+ "overrideId": false,
+ "colspan": 1,
+ "placeholder": null,
+ "minLength": 0,
+ "maxLength": 0,
+ "minValue": null,
+ "maxValue": null,
+ "regexPattern": null,
+ "optionType": null,
+ "hasEmptyValue": null,
+ "options": null,
+ "restUrl": null,
+ "restResponsePath": null,
+ "restIdProperty": null,
+ "restLabelProperty": null,
+ "tab": null,
+ "className": null,
+ "params": {
+ "existingColspan": 1,
+ "maxColspan": 2
+ },
+ "dateDisplayFormat": null,
+ "layout": {
+ "row": -1,
+ "column": -1,
+ "colspan": 1
+ },
+ "sizeX": 1,
+ "sizeY": 1,
+ "row": -1,
+ "col": -1,
+ "visibilityCondition": null
+ }
+ ],
+ "2": []
+ }
+ },
+ {
+ "fieldType": "ContainerRepresentation",
+ "id": "1475149862241",
+ "name": "Label",
+ "type": "container",
+ "value": null,
+ "required": false,
+ "readOnly": false,
+ "overrideId": false,
+ "colspan": 1,
+ "placeholder": null,
+ "minLength": 0,
+ "maxLength": 0,
+ "minValue": null,
+ "maxValue": null,
+ "regexPattern": null,
+ "optionType": null,
+ "hasEmptyValue": null,
+ "options": null,
+ "restUrl": null,
+ "restResponsePath": null,
+ "restIdProperty": null,
+ "restLabelProperty": null,
+ "tab": null,
+ "className": null,
+ "dateDisplayFormat": null,
+ "layout": null,
+ "sizeX": 2,
+ "sizeY": 1,
+ "row": -1,
+ "col": -1,
+ "visibilityCondition": null,
+ "numberOfColumns": 2,
+ "fields": {
+ "1": [
+ {
+ "fieldType": "RestFieldRepresentation",
+ "id": "timeofday",
+ "name": "Time of Day",
+ "type": "dropdown",
+ "value": "Choose one...",
+ "required": false,
+ "readOnly": false,
+ "overrideId": false,
+ "colspan": 1,
+ "placeholder": null,
+ "minLength": 0,
+ "maxLength": 0,
+ "minValue": null,
+ "maxValue": null,
+ "regexPattern": null,
+ "optionType": null,
+ "hasEmptyValue": true,
+ "options": [
+ {
+ "id": "empty",
+ "name": "Choose one..."
+ },
+ {
+ "id": "time_of_day_morning",
+ "name": "Morning"
+ },
+ {
+ "id": "time_of_day_lunch",
+ "name": "Lunch"
+ },
+ {
+ "id": "time_of_day_dinner",
+ "name": "Dinner"
+ },
+ {
+ "id": "time_of_day_night",
+ "name": "Night"
+ }
+ ],
+ "restUrl": null,
+ "restResponsePath": null,
+ "restIdProperty": null,
+ "restLabelProperty": null,
+ "tab": null,
+ "className": null,
+ "params": {
+ "existingColspan": 1,
+ "maxColspan": 2
+ },
+ "dateDisplayFormat": null,
+ "layout": {
+ "row": -1,
+ "column": -1,
+ "colspan": 1
+ },
+ "sizeX": 1,
+ "sizeY": 1,
+ "row": -1,
+ "col": -1,
+ "visibilityCondition": null,
+ "endpoint": null,
+ "requestHeaders": null
+ }
+ ],
+ "2": []
+ }
+ }
+ ],
+ "outcomes": [],
+ "javascriptEvents": [],
+ "className": "",
+ "style": "",
+ "customFieldTemplates": {},
+ "metadata": {},
+ "variables": [],
+ "gridsterForm": false
+ }
+}
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/form-models/Hello World Start-2006.png b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/form-models/Hello World Start-2006.png
new file mode 100644
index 00000000..50f8560f
Binary files /dev/null and b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/main/resources/apps/helloworld/form-models/Hello World Start-2006.png differ
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md
new file mode 100644
index 00000000..e986999c
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md
@@ -0,0 +1,9 @@
+# Enterprise License location
+
+Put the Activiti Enterprise license file (activiti.lic) in this directory.
+It will then be copied into the WAR..............
+
+And then not be part of any other classpaths.
+
+
+
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/activiti-app.properties b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/activiti-app.properties
new file mode 100644
index 00000000..c0c5b8f1
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/activiti-app.properties
@@ -0,0 +1,35 @@
+server.onpremise=true
+server.stencil.custom.allowed=true
+server.contextroot=/activiti-app
+
+# Database connection
+datasource.driver=org.h2.Driver
+datasource.url=jdbc:h2:${activiti.datadir}/h2/activiti;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;MVCC=FALSE;LOCK_MODE=0
+datasource.username=alfresco
+datasource.password=alfresco
+hibernate.dialect=org.hibernate.dialect.H2Dialect
+
+# Elastic Search server config for historical process data
+elastic-search.server.type=none
+elastic-search.cluster.name=activiti-elastic-search-cluster-dev
+elastic-search.enable.http=true
+elastic-search.data.path=${activiti.datadir}/es
+
+event.generation.enabled=true
+event.processing.enabled=true
+
+# Administrator login username = email
+admin.email=admin@app.activiti.com
+# koala
+admin.passwordHash=4efe081594ce25ee4efd9f7067f7f678a347bccf2de201f3adf2a3eb544850b465b4e51cdc3fcdde
+admin.lastname=Administrator
+admin.group=Superusers
+
+# Where to store any uploaded files
+contentstorage.fs.rootFolder=${activiti.datadir}/contentstore
+contentstorage.fs.createRoot=true
+contentstorage.fs.depth=4
+contentstorage.fs.blockSize=1024
+
+# Disable Cross-Site-Request-Forgery (CSRF) protection, so we can access from other client app via REST
+security.csrf.disabled=true
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/activiti-ldap.properties b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/activiti-ldap.properties
new file mode 100644
index 00000000..363205b3
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/activiti-ldap.properties
@@ -0,0 +1,3 @@
+ldap.authentication.enabled=false
+ldap.synchronization.full.enabled=false
+ldap.synchronization.differential.enabled=false
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/log4j-dev.properties b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/log4j-dev.properties
new file mode 100644
index 00000000..690a617f
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/log4j-dev.properties
@@ -0,0 +1,40 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+
+# This file is copied (with RunMojo) into target/activitiApp-war/WEB-INF/classes dir before webapp deployment
+#
+
+log4j.rootLogger=INFO, CA, File
+
+# ConsoleAppender
+log4j.appender.CA=org.apache.log4j.ConsoleAppender
+log4j.appender.CA.layout=org.apache.log4j.PatternLayout
+log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
+
+# File Appender
+log4j.appender.File=org.apache.log4j.RollingFileAppender
+log4j.appender.File.File=${project.build.directory}/activiti.log
+log4j.appender.File.threshold=INFO
+log4j.appender.File.layout=org.apache.log4j.PatternLayout
+log4j.appender.File.layout.ConversionPattern=%d{ISO8601} %-5p [%c] %m%n
+log4j.appender.File.MaxFileSize=100MB
+log4j.appender.File.MaxBackupIndex=1
+
+# Custom tweaks
+log4j.logger.org.apache.ibatis.level=INFO
+log4j.logger.javax.activation.level=INFO
+log4j.logger.com.codahale.metrics=WARN
+log4j.logger.com.ryantenney=WARN
+log4j.logger.com.zaxxer=WARN
+log4j.logger.org.apache=WARN
+log4j.logger.org.hibernate=WARN
+log4j.logger.org.hibernate.engine.internal=WARN
+log4j.logger.org.hibernate.validator=WARN
+log4j.logger.org.springframework=WARN
+log4j.logger.org.springframework.web=WARN
+log4j.logger.org.springframework.security=WARN
+
+
+# Custom classes logging
+log4j.logger.${package}.tasks.service=DEBUG
diff --git a/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/log4j-test.properties b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/log4j-test.properties
new file mode 100644
index 00000000..ffebc8a9
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/main/resources/archetype-resources/src/test/resources/log4j-test.properties
@@ -0,0 +1,6 @@
+log4j.rootLogger=WARN, CA
+
+# ConsoleAppender
+log4j.appender.CA=org.apache.log4j.ConsoleAppender
+log4j.appender.CA.layout=org.apache.log4j.PatternLayout
+log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
\ No newline at end of file
diff --git a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-enterprise/archetype.properties b/archetypes/activiti-jar-archetype/src/test/resources/projects/basic/archetype.properties
similarity index 61%
rename from archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-enterprise/archetype.properties
rename to archetypes/activiti-jar-archetype/src/test/resources/projects/basic/archetype.properties
index 190010f3..ef2a2f9c 100644
--- a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-enterprise/archetype.properties
+++ b/archetypes/activiti-jar-archetype/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,5 @@
version=0.1-SNAPSHOT
groupId=archetype.it
-artifactId=repoAmpTestRunEnterprise
+artifactId=activitiJARTest
package=it.pkg
+
diff --git a/archetypes/activiti-jar-archetype/src/test/resources/projects/basic/goal.txt b/archetypes/activiti-jar-archetype/src/test/resources/projects/basic/goal.txt
new file mode 100644
index 00000000..0b598736
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/test/resources/projects/basic/goal.txt
@@ -0,0 +1 @@
+verify
diff --git a/archetypes/activiti-jar-archetype/src/test/resources/projects/run-basic/archetype.properties b/archetypes/activiti-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
new file mode 100644
index 00000000..11281816
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
@@ -0,0 +1,4 @@
+version=0.1-SNAPSHOT
+groupId=archetype.it
+artifactId=activitiJARTestRun
+package=it.pkg
\ No newline at end of file
diff --git a/archetypes/activiti-jar-archetype/src/test/resources/projects/run-basic/goal.txt b/archetypes/activiti-jar-archetype/src/test/resources/projects/run-basic/goal.txt
new file mode 100644
index 00000000..d6779d32
--- /dev/null
+++ b/archetypes/activiti-jar-archetype/src/test/resources/projects/run-basic/goal.txt
@@ -0,0 +1 @@
+verify alfresco:run -Dmaven.tomcat.fork=true
diff --git a/archetypes/alfresco-allinone-archetype/pom.xml b/archetypes/alfresco-allinone-archetype/pom.xml
index dc1d7619..7a72870e 100644
--- a/archetypes/alfresco-allinone-archetype/pom.xml
+++ b/archetypes/alfresco-allinone-archetype/pom.xml
@@ -5,8 +5,8 @@
org.alfresco.maven.archetype
alfresco-allinone-archetype
maven-archetype
- Maven Alfresco SDK - All-in-One Archetype
- Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for: Repository WAR overlay, Repository AMP, Share WAR overlay, Solr configuration, and embedded Tomcat runner
+ Alfresco SDK - All-in-One Archetype
+ Sample multi-module project for All-in-One development on the Alfresco plaftorm. Includes modules for Platform/Repository JAR and Share JAR
org.alfresco.maven
@@ -23,7 +23,8 @@
archetype-resources/pom.xml
archetype-resources/run.sh
archetype-resources/run.bat
- archetype-resources/runner/src/main/webapp/index.html
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
META-INF/maven/archetype-metadata.xml
true
@@ -34,7 +35,8 @@
archetype-resources/pom.xml
archetype-resources/run.sh
archetype-resources/run.bat
- archetype-resources/runner/src/main/webapp/index.html
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
META-INF/maven/archetype-metadata.xml
false
@@ -43,8 +45,9 @@
+ org.apache.maven.plugins
maven-resources-plugin
- 2.7
+ ${maven.resource.version}
false
diff --git a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/it/goal.txt b/archetypes/alfresco-allinone-archetype/src/test/resources/projects/it/goal.txt
index 0b598736..7c32f559 100644
--- a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/it/goal.txt
+++ b/archetypes/alfresco-allinone-archetype/src/test/resources/projects/it/goal.txt
@@ -1 +1 @@
-verify
+install
diff --git a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run-enterprise/archetype.properties b/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run-enterprise/archetype.properties
deleted file mode 100644
index 1905d902..00000000
--- a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run-enterprise/archetype.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-version=0.1-SNAPSHOT
-groupId=archetype.it
-artifactId=allInOneTestRunEnterprise
-package=it.pkg
-
diff --git a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run-enterprise/goal.txt b/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run-enterprise/goal.txt
deleted file mode 100644
index 707e42e0..00000000
--- a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run-enterprise/goal.txt
+++ /dev/null
@@ -1 +0,0 @@
-verify -Prun -Penterprise -Dmaven.tomcat.fork=true
diff --git a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run/goal.txt b/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run/goal.txt
index 5ce9626e..baecc613 100644
--- a/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run/goal.txt
+++ b/archetypes/alfresco-allinone-archetype/src/test/resources/projects/run/goal.txt
@@ -1 +1 @@
-verify -Prun -Dmaven.tomcat.fork=true
+install alfresco:run -Dmaven.tomcat.fork=true
diff --git a/archetypes/alfresco-platform-jar-archetype/pom.xml b/archetypes/alfresco-platform-jar-archetype/pom.xml
index 9e5c0b06..252090e2 100644
--- a/archetypes/alfresco-platform-jar-archetype/pom.xml
+++ b/archetypes/alfresco-platform-jar-archetype/pom.xml
@@ -3,11 +3,11 @@
4.0.0
org.alfresco.maven.archetype
- alfresco-amp-archetype
+ alfresco-platform-jar-archetype
maven-archetype
- Maven Alfresco SDK - Repository AMP Archetype
- Sample project with full support for lifecycle and rapid development of Repository AMPs (Alfresco Module Packages)
+ Alfresco SDK - Platform JAR Archetype
+ Sample project with full support for lifecycle and rapid development of Platform/Repository JARs and AMPs (Alfresco Module Packages)
org.alfresco.maven
@@ -24,6 +24,8 @@
archetype-resources/pom.xml
archetype-resources/run.sh
archetype-resources/run.bat
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
META-INF/maven/archetype-metadata.xml
true
@@ -34,15 +36,19 @@
archetype-resources/pom.xml
archetype-resources/run.sh
archetype-resources/run.bat
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
META-INF/maven/archetype-metadata.xml
false
+
+ org.apache.maven.plugins
maven-resources-plugin
- 2.7
+ ${maven.resource.version}
false
diff --git a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/basic/archetype.properties b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/basic/archetype.properties
index 8651fd9d..cb8081ab 100644
--- a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/basic/archetype.properties
+++ b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/basic/archetype.properties
@@ -1,5 +1,5 @@
version=0.1-SNAPSHOT
groupId=archetype.it
-artifactId=repoAmpTest
+artifactId=repoJarTest
package=it.pkg
diff --git a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/archetype.properties b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
index 254fcf56..c036bf1c 100644
--- a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
+++ b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
@@ -1,4 +1,4 @@
version=0.1-SNAPSHOT
groupId=archetype.it
-artifactId=repoAmpTestRun
+artifactId=repoJarTestRun
package=it.pkg
\ No newline at end of file
diff --git a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/goal.txt b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/goal.txt
index fb8d393c..d6779d32 100644
--- a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/goal.txt
+++ b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-basic/goal.txt
@@ -1 +1 @@
-verify -Pamp-to-war -Dmaven.tomcat.fork=true
+verify alfresco:run -Dmaven.tomcat.fork=true
diff --git a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-enterprise/goal.txt b/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-enterprise/goal.txt
deleted file mode 100644
index 60b24860..00000000
--- a/archetypes/alfresco-platform-jar-archetype/src/test/resources/projects/run-enterprise/goal.txt
+++ /dev/null
@@ -1 +0,0 @@
-verify -Pamp-to-war -Penterprise -Dmaven.tomcat.fork=true
diff --git a/archetypes/alfresco-share-jar-archetype/pom.xml b/archetypes/alfresco-share-jar-archetype/pom.xml
index c6c8cc15..1127c735 100644
--- a/archetypes/alfresco-share-jar-archetype/pom.xml
+++ b/archetypes/alfresco-share-jar-archetype/pom.xml
@@ -3,11 +3,11 @@
4.0.0
org.alfresco.maven.archetype
- share-amp-archetype
+ alfresco-share-jar-archetype
maven-archetype
- Maven Alfresco SDK - Share AMP Archetype
- Share project with full support for lifecycle and rapid development of AMPs (Alfresco Module
+ Alfresco SDK - Share JAR Archetype
+ Share project with full support for lifecycle and rapid development of JARs and AMPs (Alfresco Module
Packages)
@@ -26,6 +26,8 @@
archetype-resources/pom.xml
archetype-resources/run.sh
archetype-resources/run.bat
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
META-INF/maven/archetype-metadata.xml
true
@@ -36,6 +38,8 @@
archetype-resources/pom.xml
archetype-resources/run.sh
archetype-resources/run.bat
+ archetype-resources/debug.sh
+ archetype-resources/debug.bat
META-INF/maven/archetype-metadata.xml
false
@@ -44,8 +48,9 @@
+ org.apache.maven.plugins
maven-resources-plugin
- 2.7
+ ${maven.resource.version}
false
diff --git a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/basic/archetype.properties b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/basic/archetype.properties
index 6cebf61d..4150cfc7 100644
--- a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/basic/archetype.properties
+++ b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
version=0.1-SNAPSHOT
groupId=archetype.it
-artifactId=shareAmpTest
+artifactId=shareJarTest
package=it.pkg
diff --git a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/archetype.properties b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
index a54484af..d392de37 100644
--- a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
+++ b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/archetype.properties
@@ -1,4 +1,4 @@
version=0.1-SNAPSHOT
groupId=archetype.it
-artifactId=shareAmpTestRun
+artifactId=shareJarTestRun
package=it.pkg
diff --git a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/goal.txt b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/goal.txt
index fb8d393c..d6779d32 100644
--- a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/goal.txt
+++ b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-basic/goal.txt
@@ -1 +1 @@
-verify -Pamp-to-war -Dmaven.tomcat.fork=true
+verify alfresco:run -Dmaven.tomcat.fork=true
diff --git a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-enterprise/archetype.properties b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-enterprise/archetype.properties
deleted file mode 100644
index 1d02ea6e..00000000
--- a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-enterprise/archetype.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-version=0.1-SNAPSHOT
-groupId=archetype.it
-artifactId=shareAmpTestRunEnterprise
-package=it.pkg
diff --git a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-enterprise/goal.txt b/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-enterprise/goal.txt
deleted file mode 100644
index 60b24860..00000000
--- a/archetypes/alfresco-share-jar-archetype/src/test/resources/projects/run-enterprise/goal.txt
+++ /dev/null
@@ -1 +0,0 @@
-verify -Pamp-to-war -Penterprise -Dmaven.tomcat.fork=true
diff --git a/plugins/alfresco-maven-plugin/pom.xml b/plugins/alfresco-maven-plugin/pom.xml
index fc70a4d8..ec4a35e5 100644
--- a/plugins/alfresco-maven-plugin/pom.xml
+++ b/plugins/alfresco-maven-plugin/pom.xml
@@ -139,7 +139,6 @@
org.zeroturnaround
zt-zip
1.9
- jar
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java
index 6455272d..bc89c6db 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RunMojo.java
@@ -34,7 +34,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.project.MavenProject;
import org.zeroturnaround.zip.ZipUtil;
-import java.io.File;
+import java.io.*;
import java.util.*;
import static org.twdata.maven.mojoexecutor.MojoExecutor.*;
@@ -61,6 +61,7 @@ public class RunMojo extends AbstractMojo {
public static final String PLATFORM_WAR_PREFIX_NAME = "platform";
public static final String SHARE_WAR_PREFIX_NAME = "share";
+ public static final String ACTIVITI_APP_WAR_PREFIX_NAME = "activitiApp";
public static final String ALFRESCO_ENTERPRISE_EDITION = "enterprise";
public static final String ALFRESCO_COMMUNITY_EDITION = "community";
@@ -153,6 +154,26 @@ public class RunMojo extends AbstractMojo {
@Parameter(property = "maven.alfresco.enableApiExplorer", defaultValue = "false")
protected boolean enableApiExplorer;
+ /**
+ * Switch to enable/disable Alfresco Activiti Workflow Engine (activiti-app.war) when running embedded Tomcat.
+ * This contains the Alfresco Activiti webapp, including the workflow engine.
+ * This webapp is also the user interface for people involved in the task and processes
+ * running in the Activiti engine.
+ * You also use this webapp to create and manage process definitions, and to display and define analytics
+ * reports on users' tasks and processes.
+ */
+ @Parameter(property = "maven.alfresco.enableActivitiApp", defaultValue = "false")
+ protected boolean enableActivitiApp;
+
+ /**
+ * Switch to enable/disable Alfresco Activiti Admin (activiti-admin.war) when running embedded Tomcat.
+ * This contains the Alfresco Activiti Administrator webapp. You use this to administer and monitor your
+ * Alfresco Activiti engines.
+ *
+ */
+ @Parameter(property = "maven.alfresco.enableActivitiAdmin", defaultValue = "false")
+ protected boolean enableActivitiAdmin;
+
/**
* Switch to enable/disable test properties when running embedded Tomcat.
*/
@@ -189,6 +210,12 @@ public class RunMojo extends AbstractMojo {
@Parameter(property = "maven.alfresco.share.modules", defaultValue = "")
protected List shareModules;
+ /**
+ * JARs that should be overlayed/applied to the Activiti App WAR (i.e. activiti-app.war)
+ */
+ @Parameter(property = "maven.activiti.modules", defaultValue = "")
+ protected List activitiModules;
+
/**
* Community Edition or Enterprise Edition? (i.e community or enterprise)
*/
@@ -209,6 +236,9 @@ public class RunMojo extends AbstractMojo {
@Parameter(property = "alfresco.groupId", defaultValue = "org.alfresco")
protected String alfrescoGroupId;
+ @Parameter(property = "activiti.groupId", defaultValue = "com.activiti")
+ protected String activitiGroupId;
+
@Parameter(property = "alfresco.platform.war.artifactId", defaultValue = "alfresco-platform")
protected String alfrescoPlatformWarArtifactId;
@@ -221,6 +251,12 @@ public class RunMojo extends AbstractMojo {
@Parameter(property = "alfresco.api.explorer.artifactId", defaultValue = "api-explorer")
protected String alfrescoApiExplorerArtifactId;
+ @Parameter(property = "activiti.app.war.artifactId", defaultValue = "activiti-app")
+ protected String activitiAppWarArtifactId;
+
+ @Parameter(property = "activiti.admin.war.artifactId", defaultValue = "activiti-admin")
+ protected String activitiAdminWarArtifactId;
+
@Parameter(property = "alfresco.platform.version", defaultValue = "5.2.a-EA")
protected String alfrescoPlatformVersion;
@@ -230,6 +266,9 @@ public class RunMojo extends AbstractMojo {
@Parameter(property = "alfresco.api.explorer.version", defaultValue = "1.2")
protected String alfrescoApiExplorerVersion;
+ @Parameter(property = "activiti.version", defaultValue = "1.5.1")
+ protected String activitiVersion;
+
/**
* Directory that contains the Alfresco Solr 4 configuration
*/
@@ -237,7 +276,7 @@ public class RunMojo extends AbstractMojo {
protected String solrHome;
/**
- * Maven GAV properties for customized alfresco.war and share.war
+ * Maven GAV properties for customized alfresco.war, share.war, activiti-app.war
* Used by the Maven Tomcat 7 Plugin
*/
private String runnerAlfrescoGroupId;
@@ -245,6 +284,9 @@ public class RunMojo extends AbstractMojo {
private String runnerAlfrescoShareWarArtifactId;
private String runnerAlfrescoPlatformVersion;
private String runnerAlfrescoShareVersion;
+ private String runnerActivitiAppGroupId;
+ private String runnerActivitiAppWarArtifactId;
+ private String runnerActivitiAppVersion;
/**
* The Maven environment that this mojo is executed in
@@ -265,7 +307,7 @@ public class RunMojo extends AbstractMojo {
installSolr10InLocalRepo();
}
- if (enableTestProperties) {
+ if (enableTestProperties && enablePlatform) {
copyAlfrescoGlobalProperties();
renameAlfrescoGlobalProperties();
}
@@ -278,6 +320,10 @@ public class RunMojo extends AbstractMojo {
buildShareWar();
}
+ if (enableActivitiApp) {
+ buildActivitiAppWar();
+ }
+
if (startTomcat) {
checkDatabaseConfig();
startTomcat();
@@ -562,6 +608,40 @@ public class RunMojo extends AbstractMojo {
);
}
+ /**
+ * Copy the Activiti Log4J Dev config into the activiti-app/WEB-INF/classes dir.
+ *
+ * @throws MojoExecutionException
+ */
+ protected void copyActivitiLog4JDevConfig() throws MojoExecutionException {
+ final String warOutputDir = getWarOutputDir(ACTIVITI_APP_WAR_PREFIX_NAME);
+ final String logConfDestDir = warOutputDir + "/WEB-INF/classes";
+
+ getLog().info("Copying Activiti log4j-dev.properties to: " + logConfDestDir);
+
+ executeMojo(
+ plugin(
+ groupId("org.apache.maven.plugins"),
+ artifactId("maven-resources-plugin"),
+ version(MAVEN_RESOURCE_PLUGIN_VERSION)
+ ),
+ goal("copy-resources"),
+ configuration(
+ element(name("outputDirectory"), logConfDestDir),
+ element(name("resources"),
+ element(name("resource"),
+ element(name("directory"), "src/test/resources"),
+ element(name("includes"),
+ element(name("include"), "log4j-dev.properties")
+ ),
+ element(name("filtering"), "true")
+ )
+ )
+ ),
+ execEnv
+ );
+ }
+
/**
* Build the customized Platform webapp (i.e. the Repository, alfresco.war)
* that should be deployed by Tomcat by applying all AMPs and JARs from
@@ -569,7 +649,7 @@ public class RunMojo extends AbstractMojo {
*/
protected void buildPlatformWar() throws MojoExecutionException {
buildCustomWarInDir(PLATFORM_WAR_PREFIX_NAME, platformModules,
- getPlatformWarArtifactId(), alfrescoPlatformVersion);
+ alfrescoGroupId, getPlatformWarArtifactId(), alfrescoPlatformVersion);
commentOutSecureCommsInPlatformWebXml();
copyAlfrescoLicense();
@@ -588,7 +668,8 @@ public class RunMojo extends AbstractMojo {
* the {@code } configuration.
*/
protected void buildShareWar() throws MojoExecutionException {
- buildCustomWarInDir(SHARE_WAR_PREFIX_NAME, shareModules, alfrescoShareWarArtifactId, alfrescoShareVersion);
+ buildCustomWarInDir(SHARE_WAR_PREFIX_NAME, shareModules,
+ alfrescoGroupId, alfrescoShareWarArtifactId, alfrescoShareVersion);
String shareWarArtifactId = packageAndInstallCustomWar(SHARE_WAR_PREFIX_NAME);
@@ -598,18 +679,39 @@ public class RunMojo extends AbstractMojo {
runnerAlfrescoShareVersion = "${project.version}";
}
+ /**
+ * Build the customized Activiti App webapp (i.e. the activiti-app.war)
+ * that should be deployed by Tomcat by applying all JARs from
+ * the {@code } configuration.
+ */
+ protected void buildActivitiAppWar() throws MojoExecutionException {
+ buildCustomWarInDir(ACTIVITI_APP_WAR_PREFIX_NAME, activitiModules,
+ activitiGroupId, activitiAppWarArtifactId, activitiVersion);
+
+ copyActivitiLog4JDevConfig();
+
+ String activitiAppWarArtifactId = packageAndInstallCustomWar(ACTIVITI_APP_WAR_PREFIX_NAME);
+
+ // Set up the custom share war to be run by Tomcat plugin
+ runnerActivitiAppGroupId = "${project.groupId}";
+ runnerActivitiAppWarArtifactId = activitiAppWarArtifactId;
+ runnerActivitiAppVersion = "${project.version}";
+ }
+
/**
* Build a customized webapp in a directory,
- * applying a number of AMPs and JARs from alfresco maven plugin configuration.
+ * applying a number of AMPs and/or JARs from alfresco maven plugin configuration.
*
* @param warName the name of the custom war
* @param modules the modules that should be applied to the custom war
- * @param originalWarArtifactId the artifactId for the original war file that should be customized
- * @param originalWarVersion the version for the original war file that should be customized
+ * @param originalWarGroupId the Maven groupId for the original war file that should be customized
+ * @param originalWarArtifactId the Maven artifactId for the original war file that should be customized
+ * @param originalWarVersion the Maven version for the original war file that should be customized
* @throws MojoExecutionException
*/
protected void buildCustomWarInDir(String warName,
List modules,
+ String originalWarGroupId,
String originalWarArtifactId,
String originalWarVersion) throws MojoExecutionException {
final String warOutputDir = getWarOutputDir(warName);
@@ -666,7 +768,7 @@ public class RunMojo extends AbstractMojo {
element(name("outputDirectory"), warOutputDir),
element(name("artifactItems"),
element(name("artifactItem"),
- element(name("groupId"), alfrescoGroupId),
+ element(name("groupId"), originalWarGroupId),
element(name("artifactId"), originalWarArtifactId),
element(name("version"), originalWarVersion),
element(name("type"), "war")
@@ -767,23 +869,26 @@ public class RunMojo extends AbstractMojo {
* Check that a database configuration has been supplied correctly
*/
private void checkDatabaseConfig() throws MojoExecutionException {
- if (enableH2 && !enableMySQL && !enablePostgreSQL) {
- // Run with the H2 database
- return;
- } else if (!enableH2 && enableMySQL && !enablePostgreSQL) {
- // Run with the MySQL database
- return;
- } else if (!enableH2 && !enableMySQL && enablePostgreSQL) {
- // Run with the PostgreSQL database
- return;
- } else if (!enableH2 && !enableMySQL && !enablePostgreSQL) {
- // Run with a database configured via Tomcat Dependencies
- return;
- } else {
- throw new MojoExecutionException(
- "Invalid database configuration, " +
- "should be enableH2 or enableMySQL or enablePostgreSQL " +
- "or none (i.e. config via Tomcat Dependencies)");
+ // Only do this check if we are running alfresco.war or activiti-app.war that needs a database.
+ if (enablePlatform || enableActivitiApp) {
+ if (enableH2 && !enableMySQL && !enablePostgreSQL) {
+ // Run with the H2 database
+ return;
+ } else if (!enableH2 && enableMySQL && !enablePostgreSQL) {
+ // Run with the MySQL database
+ return;
+ } else if (!enableH2 && !enableMySQL && enablePostgreSQL) {
+ // Run with the PostgreSQL database
+ return;
+ } else if (!enableH2 && !enableMySQL && !enablePostgreSQL) {
+ // Run with a database configured via Tomcat Dependencies
+ return;
+ } else {
+ throw new MojoExecutionException(
+ "Invalid database configuration, " +
+ "should be enableH2 or enableMySQL or enablePostgreSQL " +
+ "or none (i.e. config via Tomcat Dependencies)");
+ }
}
}
@@ -823,8 +928,10 @@ public class RunMojo extends AbstractMojo {
// Bring in the flat file H2 database
dependency("com.h2database", "h2", "1.4.190"));
- // Copy the h2 scripts
- copyH2Dialect();
+ if (enablePlatform) {
+ // Copy the h2 scripts for the Alfresco Repository database
+ copyH2Dialect();
+ }
} else if (enableMySQL) {
tomcatPluginDependencies.add(
// Bring in the MySQL JDBC Driver
@@ -852,15 +959,42 @@ public class RunMojo extends AbstractMojo {
}
if (enableApiExplorer) {
- webapps2Deploy.add(createWebAppElement(alfrescoGroupId, alfrescoApiExplorerArtifactId, alfrescoApiExplorerVersion,
+ webapps2Deploy.add(createWebAppElement(
+ alfrescoGroupId, alfrescoApiExplorerArtifactId, alfrescoApiExplorerVersion,
"/api-explorer", null));
}
+ if (enableActivitiApp) {
+ webapps2Deploy.add(createWebAppElement(
+ runnerActivitiAppGroupId, runnerActivitiAppWarArtifactId, runnerActivitiAppVersion,
+ "/activiti-app", null));
+ }
+
+ if (enableActivitiAdmin) {
+ webapps2Deploy.add(createWebAppElement(
+ activitiGroupId, activitiAdminWarArtifactId, activitiVersion, "/activiti-admin", null));
+ }
+
// This might be ugly, the MojoExecuter will only accept Element[] and we need this list to be dynamic
// to avoid NPEs. If there's a better way to do this, then feel free to change it!
Element[] webapps = new Element[webapps2Deploy.size()];
webapps2Deploy.toArray(webapps);
+ // Set up the system properties that should be set for Tomcat
+ ArrayList systemProps = new ArrayList();
+ systemProps.add(element(name("java.io.tmpdir"), "${project.build.directory}"));
+ if (enableSolr) {
+ systemProps.add(element(name("solr.solr.home"), solrHome));
+ }
+ if (enableActivitiApp) {
+ // Should be in activiti-jar/src/test/resources
+ systemProps.add(element(name("log4j.configuration"), "log4j-dev.properties"));
+ }
+ // This might be ugly, the MojoExecuter will only accept Element[] and we need this list to be dynamic
+ // to avoid NPEs. If there's a better way to do this, then feel free to change it!
+ Element[] systemPropArray = new Element[systemProps.size()];
+ systemProps.toArray(systemPropArray);
+
executeMojo(
plugin(
groupId("org.apache.tomcat.maven"),
@@ -896,10 +1030,7 @@ public class RunMojo extends AbstractMojo {
/**
* Set up where Solr Home directory is
*/
- element(name("systemProperties"),
- element(name("java.io.tmpdir"), "${project.build.directory}"),
- element(name("solr.solr.home"), solrHome)
- ),
+ element(name("systemProperties"), systemPropArray),
/* Should this class loader delegate to the parent class loader before searching its
own repositories (i.e. the usual Java2 delegation model).
diff --git a/pom.xml b/pom.xml
index a37059c9..9984ca66 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,25 +121,25 @@
modules/alfresco-rad
plugins/alfresco-maven-plugin
-
- poms/alfresco-sdk-parent
archetypes/alfresco-platform-jar-archetype
archetypes/alfresco-share-jar-archetype
archetypes/alfresco-allinone-archetype
+ archetypes/activiti-jar-archetype
UTF-8
1.7
1.7
- 2.2
+ 3.0.1
+ 2.4
${project.version}
*/*-enterprise/*
- 5.0.d
- 5.0.1
- 2.3
- 1.2.3.RELEASE
+
+
+ 5.1.g
+
https://github.com/Alfresco/alfresco-sdk
@@ -184,6 +184,11 @@
true
+
+
+ activiti-private-repository
+ https://artifacts.alfresco.com/nexus/content/repositories/activiti-enterprise-releases
+
diff --git a/poms/alfresco-sdk-parent/pom.xml b/poms/alfresco-sdk-parent/pom.xml
deleted file mode 100644
index 4ffde30d..00000000
--- a/poms/alfresco-sdk-parent/pom.xml
+++ /dev/null
@@ -1,1077 +0,0 @@
-
-
- 4.0.0
- alfresco-sdk-parent
- Maven Alfresco SDK - Parent POM
-
- The Maven Alfresco SDK Parent POM exposes the developer features of the Maven Alfresco SDK.
- Declare this POM as parent for your project and select the Alfresco version/edition by defining
- the alfresco.groupId and alfresco.version in your POM.
-
- pom
-
-
-
- org.alfresco.maven
- alfresco-sdk-aggregator
- 3.0.0-SNAPSHOT
- ../../pom.xml
-
-
-
- 3.0.0-SNAPSHOT
-
-
-
-
- org.alfresco
- ${alfresco.community.default.version}
- alfresco
- share
-
-
- /alfresco
- /share
-
-
- ${session.executionRootDirectory}/alf_data_dev
-
-
- alf_dev
- alfresco
- alfresco
- AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;MVCC=FALSE;LOCK_MODE=0
-
- jdbc:h2:${alfresco.data.location}/h2_data/${alfresco.db.name};${alfresco.db.params}
- org.h2.jdbcx.JdbcDataSource
-
-
- src/main/amp
- ../${project.build.finalName}
-
-
-
-
-
- ${project.build.directory}/${project.build.finalName}-war
-
- ${alfresco.repo.artifactId}
-
-
- local
- src/main/properties/${env}
- src/test/properties/${env}
- **
- **
-
-
- true
-
-
- ${project.build.directory}/
- WARN
-
-
- runtime
- 1.5.11
-
- UTF-8
-
-
- 3.2
- 1.7
- 1.7
- 2.6.1
- 2.9
- 1.4
- 2.7
- 2.18
- 2.5.2
- 2.5
- 2.5
- 1.7
- 2.5.1
- 1.9.1
- 1.5.3
- 2.2
-
-
- ../../target/staging/poms/alfresco-sdk-parent
-
-
- 3.0.0-SNAPSHOT
-
-
- 8080
-
-
- 1.4.185
-
-
- -Xms256m -Xmx1524m -XX:MaxPermSize=256m -Duser.language=en
-
-
-
-
-
- alfresco-public
- https://artifacts.alfresco.com/nexus/content/groups/public
-
-
- alfresco-public-snapshots
- https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
-
- true
- daily
-
-
-
- sonatype-snapshots
- Sonatype Snapshot Repo
- https://oss.sonatype.org/content/repositories/snapshots/
-
- false
-
-
- true
-
-
-
-
-
-
- sonatype-public
- http://oss.sonatype.org/content/groups/public
-
-
- sonatype-snapshots
- https://oss.sonatype.org/content/repositories/snapshots
-
- true
- daily
-
-
-
- alfresco-plugin-public
- https://artifacts.alfresco.com/nexus/content/groups/public
-
-
- alfresco-plugin-public-snapshots
- https://artifacts.alfresco.com/nexus/content/groups/public-snapshots
-
- true
- daily
-
-
-
-
-
- ${project.artifactId}
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
- ${maven.alfresco.version}
- true
-
- true
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${maven.compiler.version}
-
-
- org.apache.maven.plugins
- maven-resources-plugin
- ${maven.resources.version}
-
- UTF-8
-
- ftl
- acp
- jpg
- png
- gif
- svg
- pdf
- doc
- docx
- xls
- xlsx
- ppt
- pptx
- bin
- lic
- swf
- zip
- msg
- jar
- ttf
- eot
- woff
- woff2
- css
- ico
- psd
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- ${maven.war.version}
-
- false
-
-
- true
-
-
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
- ${maven.alfresco.version}
-
-
-
-
- org.apache.maven.plugins
- maven-clean-plugin
- ${maven.clean.version}
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- ${maven.dependency.version}
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven.surefire.version}
-
-
- org.apache.maven.plugins
- maven-install-plugin
- ${maven.install.version}
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- ${maven.jar.version}
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
- ${maven.antrun.version}
-
-
- com.google.code.maven-replacer-plugin
- replacer
- ${maven.replacer.version}
-
-
-
- org.apache.tomcat.maven
- tomcat7-maven-plugin
- ${maven.tomcat.version}
-
- true
-
-
-
- com.h2database
- h2
- ${h2.version}
-
-
-
-
-
- org.eclipse.m2e
- lifecycle-mapping
- 1.0.0
-
-
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
- [0.0,)
-
- set-version
- refresh-share
- refresh-repo
- refresh
-
-
-
-
- true
- true
-
-
-
-
-
-
-
-
-
- net.alchim31.maven
- yuicompressor-maven-plugin
- 1.5.1
-
-
- compress-js
- process-resources
-
- compress
-
-
-
- **/webscripts/**
- **/site-webscripts/**
- **/*.lib.js
- **/*.css
-
- src/main/resources/META-INF
- false
-
-
-
-
-
-
-
-
-
- src/main/resources
- ${app.filtering.enabled}
-
-
- ${app.amp.folder}
- ${app.amp.output.folder}
- ${app.filtering.enabled}
-
-
-
-
- src/test/resources
- ${app.filtering.enabled}
-
-
-
-
-
-
-
-
-
-
-
- purge
-
-
-
- org.apache.maven.plugins
- maven-clean-plugin
-
-
-
- ${alfresco.data.location}
-
-
- ${project.basedir}
-
- **/*.log*
-
-
-
-
-
-
-
-
-
-
-
- enterprise
-
- ${alfresco.enterprise.default.version}
- alfresco-enterprise
- share-enterprise
-
- provided
-
-
-
- alfresco-private-repository
- https://artifacts.alfresco.com/nexus/content/groups/private
-
-
-
-
-
-
- amp-to-war
-
- true
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- unpack-alfresco
- prepare-package
-
- unpack
-
-
- ${app.amp.client.war.folder}
-
-
- ${alfresco.groupId}
- ${app.amp.client.war.artifactId}
- war
- ${alfresco.version}
-
-
-
-
-
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
-
-
- amps-to-war-overlay
- package
-
- install
-
-
-
-
-
- false
-
-
-
-
- org.apache.tomcat.maven
- tomcat7-maven-plugin
-
-
- run-embedded
-
- run
-
- integration-test
-
- false
- true
- true
-
- ${project.build.directory}
-
- true
- ${project.basedir}/tomcat/context.xml
-
-
-
-
-
-
- org.alfresco.maven
- alfresco-rad
- ${maven.alfresco.version}
-
-
-
-
-
-
-
-
-
-
-
-
-
- enable-amp
-
-
- src/main/amp/module.properties
-
-
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
- true
-
-
-
- maven-resources-plugin
-
-
- add-module-properties-to-test-classpath
- process-test-resources
-
- copy-resources
-
-
- ${project.build.testOutputDirectory}
-
-
- ${app.amp.folder}
-
- module.properties
-
- ${app.filtering.enabled}
- alfresco/module/${project.artifactId}
-
-
-
-
-
- add-module-config-to-test-classpath
- process-test-resources
-
- copy-resources
-
-
- ${project.build.testOutputDirectory}
-
-
- ${app.amp.folder}/config
-
- **/*
-
- ${app.filtering.enabled}
-
-
-
-
-
-
-
-
-
-
-
-
- enable-alfresco-testing
-
-
- src/test/java
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${maven.surefire.version}
-
-
-
-
-
- junit
- junit
- test
-
-
-
- org.alfresco.maven
- alfresco-rad
- ${maven.alfresco.version}
- test
-
-
-
-
-
-
- enable-properties-filtering
-
-
-
- src/main/properties
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- ${maven.buildhelper.version}
-
-
- add-env-properties
- generate-resources
-
- add-resource
-
-
-
-
- ${app.properties.folder}
-
- ${app.properties.include}
-
- ${app.filtering.enabled}
-
-
-
-
-
-
-
-
-
-
- enable-test-properties-filtering
-
-
-
- src/test/properties
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- ${maven.buildhelper.version}
-
-
- add-env-test-properties
- generate-resources
-
- add-test-resource
-
-
-
-
- ${app.properties.test.folder}
-
- ${app.properties.test.include}
-
- ${app.filtering.enabled}
-
-
-
-
-
-
-
-
-
-
-
-
- config-h2-support
-
-
- src/test/properties/local/alfresco-global.properties
-
-
-
-
-
- com.h2database
- h2
- ${h2.version}
- test
-
-
-
-
-
-
- enforce-sdk-rules
-
- true
-
-
-
-
- org.apache.maven.plugins
- maven-enforcer-plugin
- ${maven.enforcer.plugin}
-
-
- enforce-sdk-requirements
-
- enforce
-
-
-
-
-
- alfresco.version
- The SDK 2.1.x is supported only for Alfresco 5.0.d Community and above or
- Alfresco Enterprise 5.0.1 and above
-
- ^(5\.(0\.[d-z1-9]|[1-9])|6\.).*$
-
-
-
-
- 3.2.2
-
-
- true
-
-
-
-
-
-
-
-
-
-
- refresh-both
-
-
- src/main/amp/module.properties
-
-
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
-
-
- refresh-webscripts-repo-and-share
- process-resources
-
- refresh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- setup
-
- false
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- get-spring-loaded
- validate
-
- get
-
-
- org.springframework:springloaded:${springloaded.version}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- atv
-
- false
- ${project.build.directory}/${project.build.finalName}-src
-
-
-
-
-
- maven-resources-plugin
-
-
- isolate-project-src
- generate-resources
-
- copy-resources
-
-
- ${maven.alfresco.validation.sourceLocation}
-
-
- ${project.basedir}
-
- target
-
- ${app.filtering.enabled}
-
-
-
-
-
-
-
- org.alfresco.maven.plugin
- alfresco-maven-plugin
-
-
- run-atv
- verify
-
- validate
-
-
-
-
-
- de.herschke
- neo4j-maven-plugin
- 2.0.2-20140827
-
-
- start-neo4j-server
- post-integration-test
-
- start-server
-
-
-
- stop-neo4j-server
- verify
-
- stop-server
-
-
-
-
- 7474
-
-
-
-
-
-
-
-
-
-
-
-
- jrebel
-
-
-
- org.zeroturnaround
- jrebel-maven-plugin
- 1.1.5
-
-
- generate-rebel-xml
- prepare-package
-
- generate
-
-
-
-
- war
- false
-
-
-
- ${project.build.outputDirectory}
-
-
- ${project.build.testOutputDirectory}
-
-
-
-
-
-
- /
- ${project.build.directory}/${project.build.finalName}
-
-
- /
- ${project.build.directory}/${project.build.finalName}-war
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/poms/alfresco-sdk-parent/src/site/apt/index.apt.vm b/poms/alfresco-sdk-parent/src/site/apt/index.apt.vm
deleted file mode 100644
index 0b77d5d2..00000000
--- a/poms/alfresco-sdk-parent/src/site/apt/index.apt.vm
+++ /dev/null
@@ -1,41 +0,0 @@
- ------
- Introduction
- ------
- Gabriele Columbro
- ------
- Nov 2012
- ------
-
-Introduction
-
- The Alfresco SDK Parent POM ${project.version} is the <<>> for all Alfresco SDK\x99 features.
- It aggregates plugin configurations and dependencies to provide a set of profiles and properties to manage the full Alfresco projects Lifecycle on Maven.
-
- The current version of the POM in use in the Alfresco SDK\x99 ${project.version} is available {{{https://oss.sonatype.org/index.html#nexus-search;gav~org.alfresco.maven~alfresco-sdk-parent~${project.version}~pom~}on Maven Central}}.
-
-Usage
-
- You can reference Alfresco SDK POM in your POM adding the following snippet:
-
-+---+
-
- ...
-
- org.alfresco.maven
- alfresco-sdk-parent
- ${project.version}
-
- ...
-
-+---+
-
- This will reference the Alfresco SDK project as <<>> project, allowing you to inherit all SDK features.
- Full dependency information for other build systems can be found in the {{{./dependency-info.html} Dependency Info page}}.
-
- Features are provided in terms of {{{./sdk-profiles.html} Maven profiles}}, and high configurability is provided with
- {{{./sdk-properties.html}POM properties}} avaialble to sibling projects.
-
-* Examples / archetypes
-
- To kickstart your SDK experience and to provide examples on how to use it, archetypes are available already using this POM.
- Check the menu item for more samples.
diff --git a/poms/alfresco-sdk-parent/src/site/apt/sdk-profiles.apt.vm b/poms/alfresco-sdk-parent/src/site/apt/sdk-profiles.apt.vm
deleted file mode 100644
index 0f085c59..00000000
--- a/poms/alfresco-sdk-parent/src/site/apt/sdk-profiles.apt.vm
+++ /dev/null
@@ -1,50 +0,0 @@
- ------
- Alfresco SDK\x99 Profiles
- ------
- Gabriele Columbro
- ------
- Aug 2014
- ------
-
-SDK Available Profiles
-
- The Alfresco SDK\x99 defines common features required by different Alfresco projects.
- While the <<>> way is to use full working examples of usage of these profiles (e.g. the
- {{{../../archetypes/alfresco-amp-archetype/index.html}Repo AMP}}, {{{../../archetypes/share-amp-archetype/index.html}Share AMP} and {{{../../archetypes/alfresco-allinone-archetype/index.html}All-in-One}} archetypes),
- you can also directly use this POM as a parent in your custom project.
-
- Here goes the list of common used profiles (with their activation conditions):
-
-
-*-----------+--------------+-------------+-------------+-------------+
-|| Archetypes || Profile || Description || Activation || Phase |
-*-----------+--------------+-------------+-------------+-------------+
-| amp, share-amp | amp-to-war | Allows AMP projects to be run embedded on a WAR and in rapid dev mode | Manual: <<<-Pamp-to-war>>> | pre-integration-test |
-*-----------*--------------*-------------*-------------*-------------+
-| all-in-one | run | Runs embedded Alfresco + Share + Solr in rapid dev mode | Manual: <<<-Prun>>> | pre-integration-test |
-*-----------*--------------*-------------*-------------*-------------+
-| any | purge | Cleans all alf_data and logs from Alfresco runs | Manual: <<<-Ppurge>>> | clean |
-*-----------*--------------*-------------*-------------*-------------+
-| any | enterprise |Configures your build to use Alfresco Enterprise. Obtain your credentials with {{{https://support.alfresco.com}Alfresco Support}}| Manual: <<<-Penterprise>>> | N/A |
-*-----------+--------------+-------------+-------------+-------------+
-| any | setup | Sets up the sdk, e.g. grabs springloaded. | Manual: <<<-Psetup>>> (automated in the run.sh) | initialize |
-*-----------+--------------+-------------+-------------+-------------+
-| all-in-one | rm | Adds Records Management runtime and compile time dependencies | Manual: <<<-Prm>>> | package |
-*-----------+--------------+-------------+-------------+-------------+
-| all-in-one | regression | (Experimental) Invokes the Alfresco {{{https://github.com/AlfrescoLabs/technical-validation/}Share PO}} Webdrone / Selenium based regression tests| Manual: <<<-Pregression>>> | integration-test |
-*-----------+--------------+-------------+-------------+-------------+
-| amp, share-amp | atv | (Experimental) Invokes the {{{https://github.com/AlfrescoLabs/technical-validation/}Alfresco Technical Validation tool}} | Manual: <<<-Patv>>> | validate |
-*-----------+--------------+-------------+-------------+-------------+
-
-
- The full list of available profiles (with their activation conditions) can be instead found in the <<>> section of the
- {{{https://artifacts.alfresco.com/nexus/index.html#nexus-search;gav~org.alfresco.maven~alfresco-sdk-parent~${project.version}~pom~}Alfresco SDK POM}}.
-
-Full SDK properties reference
-
- The full reference of properties defined in the SDK can be obtained by looking
- at the <<>> section of the current version of the <<>> in use.
- Check the {{{https://artifacts.alfresco.com/nexus/index.html#nexus-search;gav~org.alfresco.maven~alfresco-sdk-parent~${project.version}~pom~}current POM version}} for this.
-
- While in certain cases it might be useful to override defaults, make sure you know what you're doing,
- as you might be <> SDK conventions and therefore <>
diff --git a/poms/alfresco-sdk-parent/src/site/apt/sdk-properties.apt.vm b/poms/alfresco-sdk-parent/src/site/apt/sdk-properties.apt.vm
deleted file mode 100644
index b4b78ee1..00000000
--- a/poms/alfresco-sdk-parent/src/site/apt/sdk-properties.apt.vm
+++ /dev/null
@@ -1,61 +0,0 @@
- ------
- Alfresco SDK Properties
- ------
- Gabriele Columbro
- ------
- Nov 2012
- ------
-
-Common SDK properties
-
- Useful properties that can be fully controlled directly in the POM are:
-
-+---+
-
- ...
-
-
- org.alfresco
- 5.0.c
-
- WARN
-
- ${project.build.directory}/
-
- ${project.basedir}/alf_data_dev
-
- local
-
- ...
-
-+---+
-
-
-Full SDK properties reference
-
- The full reference of properties defined in the SDK can be obtained by looking
- at the <<>> section of the current version of the <<>> in use.
- Check the {{{https://artifacts.alfresco.com/nexus/index.html#nexus-search;gav~org.alfresco.maven~alfresco-sdk-parent~${project.version}~pom~}current POM version}} for this.
-
- While in certain cases it might be useful to override defaults, make sure you know what you're doing,
- as you might be <> SDK conventions and therefore <>>
-
-Example - Configuring custom DB
-
- In order to configure a given JDBC database connection, you need to define some POM properties.
-
-+---+
-
- ...
- alfresco
- alfresco
- alfresco
-
- jdbc:mysql://${db.host}:${db.port}/${db.name}
- org.gjt.mm.mysql.Driver
-
-+---+
diff --git a/poms/alfresco-sdk-parent/src/site/site.xml b/poms/alfresco-sdk-parent/src/site/site.xml
deleted file mode 100644
index 1afb86ba..00000000
--- a/poms/alfresco-sdk-parent/src/site/site.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
- org.apache.maven.skins
- maven-fluido-skin
- 1.3.1
-
-
-
-
-
- Alfresco Software
- Alfresco Software
- http://people.apache.org/~gabriele/Alfresco-logo-transparent-thin.png
- http://www.alfresco.com
-
- true
- navbar-inverse
- false
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-