From ea521ba7eed3e49bad5c386cf3f2835989578f95 Mon Sep 17 00:00:00 2001
From: tartard
Date: Mon, 12 Mar 2018 13:41:34 +0100
Subject: [PATCH 01/12] Avoid an InstantiationException to be thrown from
RunTestWebscript when testing a class which inherits test methods from an
abstract class.
---
.../src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java b/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java
index 7cf09d2a..c94ea514 100644
--- a/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java
+++ b/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java
@@ -110,7 +110,7 @@ public class AlfrescoTestRunner extends BlockJUnit4ClassRunner {
protected void callProxiedChild(FrameworkMethod method, RunNotifier notifier, Description desc) {
notifier.fireTestStarted(desc);
- String className = method.getMethod().getDeclaringClass().getCanonicalName();
+ String className = this.getTestClass().getJavaClass().getCanonicalName();
String methodName = method.getName();
if (null != methodName) {
className += "#" + methodName;
From f0210c173a96ad08de9837afe2b33b01164a5bc7 Mon Sep 17 00:00:00 2001
From: "a.hausherr"
Date: Fri, 6 Apr 2018 15:21:05 +0200
Subject: [PATCH 02/12] Make the Solr indexation frequency customizable.
---
.../org/alfresco/maven/plugin/AbstractRunMojo.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index 92171f62..e3d96173 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -351,6 +351,12 @@ public abstract class AbstractRunMojo extends AbstractMojo {
@Parameter(property = "solr.home", defaultValue = "${project.basedir}/${alfresco.data.location}/solr")
protected String solrHome;
+ /**
+ * Solr indexation frequency. It is customizable to speed up integration tests execution.
+ */
+ @Parameter(property = "solr.alfresco.cron", defaultValue = "0/15 * * * * ? *")
+ protected String solrCron;
+
/**
* Maven GAV properties for customized alfresco.war, share.war, activiti-app.war
* Used by the Maven Tomcat 7 Plugin
@@ -531,8 +537,11 @@ public abstract class AbstractRunMojo extends AbstractMojo {
element(name("replacement"),
element(name("token"), "alfresco.secureComms=https"),
element(name("value"), "alfresco.secureComms=none")
+ ),
+ element(name("replacement"),
+ element(name("token"), "alfresco.cron=0/15 * * * * ? *"),
+ element(name("value"), "alfresco.cron=" + solrCron)
)
-
)
),
execEnv
From 376815c746b0586ff7079fd20b96405610bd01b1 Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Fri, 18 Jan 2019 12:29:32 +0100
Subject: [PATCH 03/12] MNT-19097 - Ensure unmount war files
Ensure the unmount of the war files in the alfresco maven plugin to avoid
the exception thrown by the FsSyncShutdownHook.
---
plugins/alfresco-maven-plugin/pom.xml | 5 +++++
.../java/org/alfresco/maven/plugin/AbstractRunMojo.java | 9 +++++++++
2 files changed, 14 insertions(+)
diff --git a/plugins/alfresco-maven-plugin/pom.xml b/plugins/alfresco-maven-plugin/pom.xml
index 1c42bc4c..ed027a15 100644
--- a/plugins/alfresco-maven-plugin/pom.xml
+++ b/plugins/alfresco-maven-plugin/pom.xml
@@ -140,6 +140,11 @@
zt-zip1.11
+
+ de.schlichtherle.truezip
+ truezip-kernel
+ 7.7.9
+
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index 187cc9e4..43f70ab1 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -17,6 +17,8 @@
*/
package org.alfresco.maven.plugin;
+import de.schlichtherle.truezip.file.TVFS;
+import de.schlichtherle.truezip.fs.FsSyncException;
import org.alfresco.maven.plugin.config.ModuleDependency;
import org.alfresco.maven.plugin.config.TomcatDependency;
import org.alfresco.maven.plugin.config.TomcatWebapp;
@@ -1177,6 +1179,13 @@ public abstract class AbstractRunMojo extends AbstractMojo {
execEnv
);
}
+
+ // Force the unmount of all the files mounted with TrueZIP to avoid an exception in the FsSyncShutdownHook
+ try {
+ TVFS.umount();
+ } catch (final FsSyncException e) {
+ getLog().error(e);
+ }
}
/**
From 2871883c7d985861b49acb07263d493619b95818 Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Fri, 18 Jan 2019 15:50:38 +0100
Subject: [PATCH 04/12] 499 - Maven Plugin - Add the ability to set Tomcat
version
Add a new parameter to the Alfresco Maven Plugin in order to be able to set the
Tomcat version to be executed when running Tomcat through the Tomcat Maven Plugin.
The parameter "tomcatVersion" (or the Maven property "maven.alfresco.tomcat.version")
allows to modify the default Tomcat version used by the Tomcat Maven Plugin. The
default version currently is 7.0.47 (set by the Tomcat Maven Plugin v2.2). If the version
of Tomcat is not set via the plugin parameter or the maven property, then the default
one is used.
---
.../maven/plugin/AbstractRunMojo.java | 50 +++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index 92171f62..2eff576c 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -17,9 +17,11 @@
*/
package org.alfresco.maven.plugin;
+import com.google.common.collect.ImmutableSet;
import org.alfresco.maven.plugin.config.ModuleDependency;
import org.alfresco.maven.plugin.config.TomcatDependency;
import org.alfresco.maven.plugin.config.TomcatWebapp;
+import org.alfresco.util.Pair;
import org.apache.commons.lang.StringUtils;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
@@ -40,6 +42,7 @@ import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import static org.twdata.maven.mojoexecutor.MojoExecutor.*;
@@ -67,6 +70,29 @@ public abstract class AbstractRunMojo extends AbstractMojo {
public static final String ALFRESCO_ENTERPRISE_EDITION = "enterprise";
public static final String ALFRESCO_COMMUNITY_EDITION = "community";
+ private static final String TOMCAT_GROUP_ID = "org.apache.tomcat";
+ private static final String TOMCAT_EMBED_GROUP_ID = "org.apache.tomcat.embed";
+ private static final Set> TOMCAT_DEPENDENCIES = new ImmutableSet.Builder>()
+ .add(new Pair(TOMCAT_EMBED_GROUP_ID,"tomcat-embed-core"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-util"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-coyote"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-api"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-jdbc"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-dbcp"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-servlet-api"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-jsp-api"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-jasper"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-jasper-el"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-el-api"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-catalina"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-tribes"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-catalina-ha"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-annotations-api"))
+ .add(new Pair(TOMCAT_GROUP_ID,"tomcat-juli"))
+ .add(new Pair(TOMCAT_EMBED_GROUP_ID,"tomcat-embed-logging-juli"))
+ .add(new Pair(TOMCAT_EMBED_GROUP_ID,"tomcat-embed-logging-log4j"))
+ .build();
+
@Component
protected MavenProject project;
@@ -351,6 +377,13 @@ public abstract class AbstractRunMojo extends AbstractMojo {
@Parameter(property = "solr.home", defaultValue = "${project.basedir}/${alfresco.data.location}/solr")
protected String solrHome;
+ /**
+ * Tomcat version to be used in the Maven Tomcat Plugin. If this parameter is not set, then the
+ * default Tomcat version will be used (it depends on the version of the Tomcat Maven Plugin).
+ */
+ @Parameter(property = "maven.alfresco.tomcat.version")
+ protected String tomcatVersion;
+
/**
* Maven GAV properties for customized alfresco.war, share.war, activiti-app.war
* Used by the Maven Tomcat 7 Plugin
@@ -1341,6 +1374,11 @@ public abstract class AbstractRunMojo extends AbstractMojo {
dependency("org.postgresql", "postgresql", "9.4-1201-jdbc41"));
}
+ // If a custom version of Tomcat is required add the corresponding dependencies
+ if(StringUtils.isNotBlank(tomcatVersion)) {
+ addTomcatDependencies(tomcatPluginDependencies);
+ }
+
if (enablePlatform) {
webapps2Deploy.add(createWebAppElement(
runnerAlfrescoGroupId, runnerAlfrescoPlatformWarArtifactId, runnerAlfrescoPlatformVersion,
@@ -1788,4 +1826,16 @@ public abstract class AbstractRunMojo extends AbstractMojo {
private String getWarName(String baseWarName) {
return baseWarName + "-war";
}
+
+ /**
+ * Add all the required maven dependencies to execute a specific version of Tomcat set by the property tomcatVersion to the list of
+ * dependencies of the Tomcat Maven Plugin.
+ *
+ * @param tomcatPluginDependencies current list of dependencies of the Tomcat Maven Plugin
+ */
+ private void addTomcatDependencies(List tomcatPluginDependencies) {
+ for(Pair tomcatDependency : TOMCAT_DEPENDENCIES) {
+ tomcatPluginDependencies.add(dependency(tomcatDependency.getFirst(),tomcatDependency.getSecond(),tomcatVersion));
+ }
+ }
}
From e3ae54be9ba88827dbb3daf3f6ccf5a80486b70c Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Mon, 21 Jan 2019 08:28:41 +0100
Subject: [PATCH 05/12] 498 - Archetypes - Add module-specific log4j.properties
to AMPs
Add module-specific log4j.properties files to the archetypes and modify the assembly
files to include them in the AMPs. This way, it is possible to add custom log
configuration for each developed module.
---
.../src/main/assembly/amp.xml | 5 +++++
.../alfresco/module/__artifactId__/log4j.properties | 1 +
.../__rootArtifactId__-share-jar/src/main/assembly/amp.xml | 5 +++++
.../module/__rootArtifactId__-share-jar/log4j.properties | 1 +
.../resources/archetype-resources/src/main/assembly/amp.xml | 5 +++++
.../alfresco/module/__artifactId__/log4j.properties | 1 +
.../resources/archetype-resources/src/main/assembly/amp.xml | 5 +++++
.../alfresco/module/__artifactId__/log4j.properties | 1 +
8 files changed, 24 insertions(+)
create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/resources/alfresco/module/__artifactId__/log4j.properties
create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/resources/alfresco/module/__rootArtifactId__-share-jar/log4j.properties
create mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties
create mode 100644 archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties
diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/assembly/amp.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/assembly/amp.xml
index e41c098c..447a6458 100644
--- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/assembly/amp.xml
+++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/assembly/amp.xml
@@ -35,6 +35,11 @@
src/main/assembly/file-mapping.propertiesfalse
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/log4j.properties
+ false
+
diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/resources/alfresco/module/__artifactId__/log4j.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/resources/alfresco/module/__artifactId__/log4j.properties
new file mode 100644
index 00000000..29523b48
--- /dev/null
+++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/src/main/resources/alfresco/module/__artifactId__/log4j.properties
@@ -0,0 +1 @@
+# Add here module-specific custom log4j.properties configuration
\ No newline at end of file
diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/assembly/amp.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/assembly/amp.xml
index 512c9071..b8bef443 100644
--- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/assembly/amp.xml
+++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/assembly/amp.xml
@@ -35,6 +35,11 @@
src/main/assembly/file-mapping.propertiesfalse
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/log4j.properties
+ false
+
diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/resources/alfresco/module/__rootArtifactId__-share-jar/log4j.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/resources/alfresco/module/__rootArtifactId__-share-jar/log4j.properties
new file mode 100644
index 00000000..29523b48
--- /dev/null
+++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/src/main/resources/alfresco/module/__rootArtifactId__-share-jar/log4j.properties
@@ -0,0 +1 @@
+# Add here module-specific custom log4j.properties configuration
\ No newline at end of file
diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml
index ba989675..494331a5 100644
--- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml
+++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml
@@ -35,6 +35,11 @@
src/main/assembly/file-mapping.propertiesfalse
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/log4j.properties
+ false
+
diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties
new file mode 100644
index 00000000..29523b48
--- /dev/null
+++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties
@@ -0,0 +1 @@
+# Add here module-specific custom log4j.properties configuration
\ No newline at end of file
diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml
index 9f17de85..54556778 100644
--- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml
+++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/assembly/amp.xml
@@ -35,6 +35,11 @@
src/main/assembly/file-mapping.propertiesfalse
+
+
+ src/main/resources/alfresco/module/${project.artifactId}/log4j.properties
+ false
+
diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties
new file mode 100644
index 00000000..29523b48
--- /dev/null
+++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/log4j.properties
@@ -0,0 +1 @@
+# Add here module-specific custom log4j.properties configuration
\ No newline at end of file
From 9d1c2feaf2cb728664986d63592c94f7eb9db3a9 Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Mon, 21 Jan 2019 15:16:46 +0100
Subject: [PATCH 06/12] 469 - Maven Plugin - AMP files order
Modify the Alfresco Maven Plugin in order to take into
account the order in which the AMP modules were defined
as the same order of the AMPs to be applied to the war
files.
---
.../maven/plugin/AbstractRunMojo.java | 67 +++++++++++++++----
1 file changed, 55 insertions(+), 12 deletions(-)
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index f80c79f8..9216a4d9 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -95,6 +95,8 @@ public abstract class AbstractRunMojo extends AbstractMojo {
.add(new Pair(TOMCAT_EMBED_GROUP_ID,"tomcat-embed-logging-log4j"))
.build();
+ private static final String AMP_LOCATION_PATTERN = "%s/%s-%s.amp";
+
@Component
protected MavenProject project;
@@ -1227,18 +1229,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
);
// Then apply all these amps to the unpacked war
- // Call the Alfresco Maven Plugin Install Mojo directly, so we don't have to keep SDK version info here
- String ampsLocation = project.getBuild().getDirectory() + "/" + ampsModuleDir;
- String warLocation = project.getBuild().getDirectory() + "/" + getWarName(warName);
- InstallMojo installMojo = new InstallMojo();
- installMojo.setAmpLocation(new File(ampsLocation));
- installMojo.setWarLocation(new File(warLocation));
- installMojo.setForce(true);
- try {
- installMojo.execute();
- } catch (MojoFailureException e) {
- e.printStackTrace();
- }
+ applyAMPs(warName, modules);
}
// Then copy all JAR dependencies to the unpacked war /target/-war/WEB-INF/lib
@@ -1847,4 +1838,56 @@ public abstract class AbstractRunMojo extends AbstractMojo {
tomcatPluginDependencies.add(dependency(tomcatDependency.getFirst(),tomcatDependency.getSecond(),tomcatVersion));
}
}
+
+ /**
+ * Apply a list of AMPs to a specific war file.
+ *
+ * @param warName the name of the war file to apply the AMPs to
+ * @param modules the list of proposed modules to be applied to the war file. Only the AMP files will be applied
+ * @throws MojoExecutionException when any problem appears applying the AMPs to the war
+ */
+ private void applyAMPs(String warName, List modules) throws MojoExecutionException {
+ final String ampsModuleDir = "modules/" + warName + "/amps";
+ final String ampsLocation = project.getBuild().getDirectory() + "/" + ampsModuleDir;
+ final String warLocation = project.getBuild().getDirectory() + "/" + getWarName(warName);
+
+ // Apply one AMP module each time to preserve the order applying the AMPs to the war
+ for(ModuleDependency module : modules) {
+ if(module.isAmp()) {
+ applyAMP(ampsLocation, warLocation, module);
+ }
+ }
+ }
+
+ /**
+ * Apply an AMP to a specific war file.
+ *
+ * @param ampsLocation the location of the folder where the AMP is located
+ * @param warLocation the location of the war file to apply the AMP to
+ * @param ampModule the module that represents the AMP to apply
+ * @throws MojoExecutionException when any problem appears applying the AMP to the war
+ */
+ private void applyAMP(String ampsLocation, String warLocation, ModuleDependency ampModule) throws MojoExecutionException {
+ // Call the Alfresco Maven Plugin Install Mojo directly, so we don't have to keep SDK version info here
+ InstallMojo installMojo = new InstallMojo();
+ installMojo.setAmpLocation(new File(getAMPLocation(ampsLocation, ampModule)));
+ installMojo.setWarLocation(new File(warLocation));
+ installMojo.setForce(true);
+ try {
+ installMojo.execute();
+ } catch (MojoFailureException e) {
+ getLog().error(e);
+ }
+ }
+
+ /**
+ * Build the location of an AMP file.
+ *
+ * @param ampsLocation the location of the folder where the AMPs are located
+ * @param ampModule the {@link ModuleDependency} of the AMP to build its location
+ * @return the location of the AMP file
+ */
+ private String getAMPLocation(String ampsLocation, ModuleDependency ampModule) {
+ return String.format(AMP_LOCATION_PATTERN, ampsLocation, ampModule.getArtifactId(), ampModule.getVersion());
+ }
}
From 534e70a2c4652c2b9aab30530e9c07406a83ab30 Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Tue, 22 Jan 2019 08:21:11 +0100
Subject: [PATCH 07/12] 425 - Maven Plugin - Support for platform context file
Code change migrated from PR https://github.com/Alfresco/alfresco-sdk/pull/431.
Change implemented by the user @pzrinscak.
Modify the Alfresco Maven Plugin to add the possibility to set
a custom Tomcat context file for the platform war. This features
enables the possibility to define custom JNDI resources in the
context of the Alfresco platform application.
---
.../org/alfresco/maven/plugin/AbstractRunMojo.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index 9216a4d9..242aed66 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -388,6 +388,12 @@ public abstract class AbstractRunMojo extends AbstractMojo {
@Parameter(property = "maven.alfresco.tomcat.version")
protected String tomcatVersion;
+ /**
+ * Location of a custom context file to use in the deployment of the platform war in Tomcat.
+ */
+ @Parameter(property = "maven.alfresco.platform.custom.context.file")
+ protected String platformCustomContextFile;
+
/**
* Maven GAV properties for customized alfresco.war, share.war, activiti-app.war
* Used by the Maven Tomcat 7 Plugin
@@ -1380,9 +1386,10 @@ public abstract class AbstractRunMojo extends AbstractMojo {
}
if (enablePlatform) {
+ String platformContextFile = StringUtils.isNotBlank(platformCustomContextFile) ? platformCustomContextFile : null;
webapps2Deploy.add(createWebAppElement(
runnerAlfrescoGroupId, runnerAlfrescoPlatformWarArtifactId, runnerAlfrescoPlatformVersion,
- "/alfresco", null));
+ "/alfresco", platformContextFile));
}
if (enableShare) {
@@ -1402,7 +1409,6 @@ public abstract class AbstractRunMojo extends AbstractMojo {
}
if (enableActivitiApp) {
-
webapps2Deploy.add(createWebAppElement(
runnerActivitiAppGroupId, runnerActivitiAppWarArtifactId, runnerActivitiAppVersion,
"/activiti-app", null));
From 210bee7d76ca55f1e9812a4807a50c43c2703b6b Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Tue, 22 Jan 2019 09:33:39 +0100
Subject: [PATCH 08/12] 420 - Maven Plugin - Add goal to generate WARs only
Add a new goal to the Alfresco Mvane Plugin to be able to generate
the WAR files (platform, share and/or activity if they're enabled)
without the need of running the Tomcat server.
---
.../alfresco/maven/plugin/BuildWarsMojo.java | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/BuildWarsMojo.java
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/BuildWarsMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/BuildWarsMojo.java
new file mode 100644
index 00000000..153cac62
--- /dev/null
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/BuildWarsMojo.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (C) 2019 Alfresco Software Limited.
+ *
+ * This file is part of the Alfresco SDK.
+ *
+ * Licensed 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 org.alfresco.maven.plugin;
+
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.ResolutionScope;
+
+import static org.twdata.maven.mojoexecutor.MojoExecutor.executionEnvironment;
+
+/**
+ * Alfresco Plugin mojo that is used when you want to build the Alfresco WARs without starting the server.
+ *
+ * @author Jose Luis Osorno - joseluis.osorno@ixxus.com
+ * @version 1.0
+ * @since 3.1.0
+ */
+@Mojo(name = "build-wars",
+ defaultPhase = LifecyclePhase.PACKAGE,
+ aggregator = true,
+ requiresDependencyResolution = ResolutionScope.TEST)
+public class BuildWarsMojo extends AbstractRunMojo {
+
+ @Override
+ public void execute() throws MojoExecutionException {
+ execEnv = executionEnvironment(
+ project,
+ session,
+ pluginManager
+ );
+
+ if (enableActivitiApp || enableActivitiAdmin) {
+ getLog().warn("*************************************************************************************************************");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*\tWARNING" );
+ getLog().warn("*\tThe Activiti features in SDK 3.x are UNSUPPORTED.");
+ getLog().warn("*\tIt has been marked for deprecation (SDK 3.1) and will be removed in SDK 4.0.");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*");
+ getLog().warn("*************************************************************************************************************");
+ }
+
+ if (enableSolr) {
+ unpackSolrConfig();
+ fixSolrHomePath();
+ copySolrCustomConfig();
+ replaceSolrConfigProperties();
+ installSolr10InLocalRepo();
+ }
+
+ if (enableTestProperties && enablePlatform) {
+ copyAlfrescoGlobalProperties();
+ renameAlfrescoGlobalProperties();
+ }
+
+ if (enablePlatform) {
+ buildPlatformWar();
+ }
+
+ if (enableShare) {
+ buildShareWar();
+ }
+
+ if (enableActivitiApp) {
+ buildActivitiAppWar();
+ }
+ }
+}
From a7f2db61e82cce266de2a7e33fbffc10e355c76c Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Thu, 24 Jan 2019 11:37:21 +0100
Subject: [PATCH 09/12] 440 - Maven Plugin - Make Tomcat Maven Plugin version
configurable
Add a new parameter (tomcatMavenPluginVersion) and maven property
(maven.alfresco.tomcat.maven.plugin.version) to be able to set the version of
the Tomcat Maven Plugin that is going to be used in the Alfresco Maven
Plugin to run the project.
This way, an integrator can create a patched version of the Tomcat Plugin to
solve any issue with it and tell the Alfresco Maven Plugin to use that fixed
version of the Tomcat Plugin. This is helpful with the reported issue about
the maxHttpHeaderSize (https://github.com/Alfresco/alfresco-sdk/issues/440).
---
.../org/alfresco/maven/plugin/AbstractRunMojo.java | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index 1ccd9391..66d41fbf 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -62,7 +62,6 @@ public abstract class AbstractRunMojo extends AbstractMojo {
public static final String MAVEN_INSTALL_PLUGIN_VERSION = "2.5.2";
public static final String MAVEN_REPLACER_PLUGIN_VERSION = "1.5.3";
public static final String MAVEN_RESOURCE_PLUGIN_VERSION = "2.7";
- public static final String MAVEN_TOMCAT7_PLUGIN_VERSION = "2.2";
public static final String MAVEN_BUILD_HELPER_PLUGIN_VERSION = "1.12";
public static final String PLATFORM_WAR_PREFIX_NAME = "platform";
@@ -394,6 +393,13 @@ public abstract class AbstractRunMojo extends AbstractMojo {
@Parameter(property = "maven.alfresco.tomcat.version")
protected String tomcatVersion;
+ /**
+ * Tomcat Maven Plugin version to be used when running the project. If this parameter is not set, then the
+ * default Tomcat Maven Plugin version will be used (2.2).
+ */
+ @Parameter(property = "maven.alfresco.tomcat.maven.plugin.version", defaultValue = "2.2")
+ protected String tomcatMavenPluginVersion;
+
/**
* Location of a custom context file to use in the deployment of the platform war in Tomcat.
*/
@@ -1466,7 +1472,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
plugin(
groupId("org.apache.tomcat.maven"),
artifactId("tomcat7-maven-plugin"),
- version(MAVEN_TOMCAT7_PLUGIN_VERSION),
+ version(tomcatMavenPluginVersion),
tomcatPluginDependencies
),
goal("run"),
From 7792574dae88bc698af9e58c248f1fa0f5ce40a0 Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Thu, 24 Jan 2019 12:34:50 +0100
Subject: [PATCH 10/12] 457 - Archetypes - Modify IT company home assertion
Modity the assertion about the name of the company home node in the
integration test DemoComponentIT to avoid issues with the language
in which the Alfresco environment is installed. It asserts now
about the path of the node which is independant from the language
of the application.
---
.../src/test/java/platformsample/DemoComponentIT.java | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/java/platformsample/DemoComponentIT.java b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/java/platformsample/DemoComponentIT.java
index d30e660d..befd9190 100644
--- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/java/platformsample/DemoComponentIT.java
+++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/java/platformsample/DemoComponentIT.java
@@ -55,10 +55,9 @@ public class DemoComponentIT extends AbstractAlfrescoIT {
DemoComponent demoComponent = (DemoComponent) getApplicationContext().getBean("${package}.DemoComponent");
NodeRef companyHome = demoComponent.getCompanyHome();
assertNotNull(companyHome);
- String companyHomeName = (String) getServiceRegistry().getNodeService().getProperty(
- companyHome, ContentModel.PROP_NAME);
- assertNotNull(companyHomeName);
- assertEquals("Company Home", companyHomeName);
+ String companyHomePath = getServiceRegistry().getNodeService().getPath(companyHome).toPrefixString(getServiceRegistry().getNamespaceService());
+ assertNotNull(companyHomePath);
+ assertEquals("/app:company_home", companyHomePath);
}
@Test
From 93c28f5dde9f35cd547a3290efe3227f15f7aedb Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Thu, 24 Jan 2019 17:09:44 +0100
Subject: [PATCH 11/12] 255 - Archetypes - Add JS minification
Modify the pom.xml files of the archetypes to include the
yuicompressor-maven-plugin in order to configure the minification
of the JS files.
---
.../resources/archetype-resources/pom.xml | 50 +++++++++++++++++++
.../resources/archetype-resources/pom.xml | 50 +++++++++++++++++++
.../resources/archetype-resources/pom.xml | 50 +++++++++++++++++++
3 files changed, 150 insertions(+)
diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/pom.xml
index da2207ea..e341abfd 100644
--- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/pom.xml
@@ -336,6 +336,56 @@
+
+
+ net.alchim31.maven
+ yuicompressor-maven-plugin
+ 1.5.1
+
+
+
+ compress-assembly
+
+ compress
+
+
+ ${project.basedir}/src/main/assembly/web
+ ${project.basedir}/src/main/assembly/web
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/META-INF/**
+ **/*.lib.js
+ **/*.css
+ **/*-min.js
+ **/*-min.css
+
+ true
+ false
+
+
+
+
+ compress-resources
+
+ compress
+
+
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/*.lib.js
+ **/*.css
+ **/*-min.js
+ **/*-min.css
+
+ true
+ false
+
+
+
+
+
org.zeroturnaround
diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/pom.xml
index df93af69..7c7bcdac 100644
--- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/pom.xml
+++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/pom.xml
@@ -162,6 +162,56 @@
+
+
+ net.alchim31.maven
+ yuicompressor-maven-plugin
+ 1.5.1
+
+
+
+ compress-assembly
+
+ compress
+
+
+ ${project.basedir}/src/main/assembly/web
+ ${project.basedir}/src/main/assembly/web
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/META-INF/**
+ **/*.lib.js
+ **/*.css
+ **/*-min.js
+ **/*-min.css
+
+ true
+ false
+
+
+
+
+ compress-resources
+
+ compress
+
+
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/*.lib.js
+ **/*.css
+ **/*-min.js
+ **/*-min.css
+
+ true
+ false
+
+
+
+
+
+
+ net.alchim31.maven
+ yuicompressor-maven-plugin
+ 1.5.1
+
+
+
+ compress-assembly
+
+ compress
+
+
+ ${project.basedir}/src/main/assembly/web
+ ${project.basedir}/src/main/assembly/web
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/META-INF/**
+ **/*.lib.js
+ **/*.css
+ **/*-min.js
+ **/*-min.css
+
+ true
+ false
+
+
+
+
+ compress-resources
+
+ compress
+
+
+
+ **/webscripts/**
+ **/site-webscripts/**
+ **/*.lib.js
+ **/*.css
+ **/*-min.js
+ **/*-min.css
+
+ true
+ false
+
+
+
+
+
maven-assembly-plugin
From 766847585e001561b73dccabb46e9e164d4f87f4 Mon Sep 17 00:00:00 2001
From: Jose Luis Osorno
Date: Mon, 28 Jan 2019 12:30:05 +0100
Subject: [PATCH 12/12] Fix javadoc errors
- Fix the javadoc error raised by the javadoc-maven-plugin.
- Configure the javadoc-maven-plugin to accept custom javadoc annotations
from maven mojo development.
---
.../org/alfresco/rad/SpringContextHolder.java | 2 +-
.../alfresco/rad/test/AlfrescoTestRunner.java | 16 +++---
.../java/org/alfresco/rad/test/Remote.java | 5 +-
.../alfresco/rad/test/RunTestWebScript.java | 5 +-
.../plugin/AbstractRefreshWebappMojo.java | 4 ++
.../maven/plugin/AbstractRunMojo.java | 49 +++++++++++------
.../alfresco/maven/plugin/InstallMojo.java | 3 +-
.../maven/plugin/IntegrationTestMojo.java | 5 +-
.../alfresco/maven/plugin/RefreshMojo.java | 3 +-
.../maven/plugin/RefreshRepoWebappMojo.java | 3 +-
.../maven/plugin/RefreshShareWebappMojo.java | 3 +-
.../alfresco/maven/plugin/VersionMojo.java | 5 +-
.../maven/plugin/archiver/AmpUnArchiver.java | 2 +-
.../maven/plugin/config/ModuleDependency.java | 9 ++--
.../maven/plugin/config/TomcatDependency.java | 3 +-
.../maven/plugin/config/TomcatWebapp.java | 3 +-
pom.xml | 53 +++++++++++++++++++
17 files changed, 129 insertions(+), 44 deletions(-)
diff --git a/modules/alfresco-rad/src/main/java/org/alfresco/rad/SpringContextHolder.java b/modules/alfresco-rad/src/main/java/org/alfresco/rad/SpringContextHolder.java
index 437f345f..17f5cb83 100644
--- a/modules/alfresco-rad/src/main/java/org/alfresco/rad/SpringContextHolder.java
+++ b/modules/alfresco-rad/src/main/java/org/alfresco/rad/SpringContextHolder.java
@@ -51,7 +51,7 @@ public class SpringContextHolder implements ApplicationContextAware {
/**
* Return the singleton instance
*
- * @return
+ * @return the singleton instance
*/
public static SpringContextHolder Instance() {
return springContextHolderInstance;
diff --git a/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java b/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java
index c94ea514..7a2dae02 100644
--- a/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java
+++ b/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/AlfrescoTestRunner.java
@@ -46,6 +46,7 @@ import javax.xml.parsers.ParserConfigurationException;
import java.io.*;
/**
+ *
* This is a JUnit test runner that is designed to work with an Alfresco repository.
* It detects if it's executing a test inside of a running Alfresco instance. If that
* is the case the tests are all run normally. If however the test is being run from
@@ -54,14 +55,15 @@ import java.io.*;
* test an HTTP request is made to a Web Script in a running Alfresco instance. This
* Web Script runs the test and returns enough information to this class so we can
* emulate having run the test locally.
- *
+ *
+ *
* By doing this, we are able to create Integration Tests (IT) using standard JUnit
* capabilities. These can then be run from our IDEs with the associated visualizations,
* support for re-running failed tests, etc.
- *
+ *
* Integration testing framework donated by Zia Consulting
*
- * @author Bindu Wavell
+ * @author Bindu Wavell (bindu@ziaconsulting.com)
* @author martin.bergljung@alfresco.com (some editing)
* @since 3.0
*/
@@ -104,8 +106,8 @@ public class AlfrescoTestRunner extends BlockJUnit4ClassRunner {
* Call a remote Alfresco server and have the test run there.
*
* @param method the test method to run
- * @param notifier
- * @param desc
+ * @param notifier given @{@link RunNotifier} to notify the result of the test
+ * @param desc given @{@link Description} of the test to run
*/
protected void callProxiedChild(FrameworkMethod method, RunNotifier notifier, Description desc) {
notifier.fireTestStarted(desc);
@@ -232,8 +234,8 @@ public class AlfrescoTestRunner extends BlockJUnit4ClassRunner {
* Check the @Remote config on the test class to see where the
* Alfresco Repo is running
*
- * @param method
- * @return
+ * @param method given @{@link FrameworkMethod} to be executed
+ * @return the ACS endpoint
*/
protected String getContextRoot(FrameworkMethod method) {
Class> declaringClass = method.getMethod().getDeclaringClass();
diff --git a/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/Remote.java b/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/Remote.java
index 0a1cfd3e..b99ce9b2 100644
--- a/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/Remote.java
+++ b/modules/alfresco-rad/src/main/java/org/alfresco/rad/test/Remote.java
@@ -24,14 +24,15 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
+ *
* By default the ${@link AlfrescoTestRunner} will attempt to find a
* running Alfresco instance at http://localhost:8080/alfresco
* This annotation can be applied to a test class to have the
* proxy calls go to a different host/port.
- *
* This Web Script works in consort with the ${@link AlfrescoTestRunner}. When a test is run from an IDE or
* command line, the Alfresco test runner sends a proxied request to perform the test to this script. This runs
* the test and wraps the results up so that the test initiator can be fooled into thinking they are
* running the tests locally.
- *
+ *
* Integration testing framework donated by Zia Consulting.
*
- * @author Bindu Wavell
+ * @author Bindu Wavell (bindu@ziaconsulting.com)
* @author martin.bergljung@alfresco.com (some editing)
* @since 3.0
*/
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRefreshWebappMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRefreshWebappMojo.java
index bb236ef1..013c5f73 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRefreshWebappMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRefreshWebappMojo.java
@@ -164,6 +164,8 @@ public abstract class AbstractRefreshWebappMojo extends AbstractMojo {
/**
* Perform a Refresh of Web Scripts container in webapp.
* Called by specific refresh mojo implementation.
+ *
+ * @param url the relative path to refresh webscripts
*/
protected void refreshWebScripts(String url) {
// Create the Refresh URL for the Alfresco Tomcat server
@@ -184,6 +186,8 @@ public abstract class AbstractRefreshWebappMojo extends AbstractMojo {
/**
* Perform a Clear Dependency Caches call on Share webapp.
* Called by specific refresh mojo implementation, currently only applicable to Share webapp.
+ *
+ * @param url the relative path to clear cache
*/
protected void clearDependencyCaches(String url) {
// Create the Clear Cache URL for the Alfresco Tomcat server
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
index 66d41fbf..d4a4a842 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/AbstractRunMojo.java
@@ -427,6 +427,8 @@ public abstract class AbstractRunMojo extends AbstractMojo {
/**
* Get the Tomcat port. By default the port is changed by using the maven.alfresco.tomcat.port property
* but for legacy and external configuration purposes maven.tomcat.port will override if defined
+ *
+ * @return the Tomcat port
*/
protected String getPort() {
String port = tomcatPort;
@@ -439,7 +441,9 @@ public abstract class AbstractRunMojo extends AbstractMojo {
}
/**
+ * Check if Tomcat is already running.
*
+ * @return true if Tomcat is already running, false otherwise
*/
protected boolean tomcatIsRunning() {
@@ -464,7 +468,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Download and unpack the Solr 4 configuration as we don't have it in the project.
* It will reside under /alf_data_dev/solr
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears unpacking the Solr configuration
*/
protected void unpackSolrConfig() throws MojoExecutionException {
getLog().info("Unpacking Solr config");
@@ -497,7 +501,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* For windows paths, convert single \ to / for the ${alfresco.solr.data.dir} path,
* by default it will be c:\bla\, we need forward slash or double backslash.
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears fixing the Solr home path
*/
protected void fixSolrHomePath() throws MojoExecutionException {
getLog().info("Fix Solr Home Path to work in Windows");
@@ -524,7 +528,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Copy custom solr configuration files over, so a
* developer can overwrite any files needed
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears copying the Solr custom configuration
*/
protected void copySolrCustomConfig() throws MojoExecutionException {
getLog().info("Copying custom Solr config");
@@ -553,7 +557,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Replace property placeholders in configuration files for the cores, so the
* index files can be found for each core when Solr starts up.
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears replacing the Solr configuration properties
*/
protected void replaceSolrConfigProperties() throws MojoExecutionException {
getLog().info("Replacing Solr config properties");
@@ -601,7 +605,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* If we are in Alfresco version 4.2 or younger the Solr 1.0 WAR is not available as Maven artifact, just
* as part of a ZIP file, so install it locally so we can deploy from embedded tomcat
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears installing Solr10 in the local repository
*/
protected void installSolr10InLocalRepo() throws MojoExecutionException {
if (isPlatformVersionLtOrEqTo42()) {
@@ -715,12 +719,13 @@ public abstract class AbstractRunMojo extends AbstractMojo {
}
/**
+ *
* Replaces web.xml where applicable in platform webapp (alfresco.war),
* commenting out the security-constraints.
- *
+ *
* This is only needed for 4.2, 5.0 (5.1 handles it automatically when turning off ssl via props)
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears commenting out the security configuration
*/
protected void commentOutSecureCommsInPlatformWebXml() throws MojoExecutionException {
if (isPlatformVersionGtOrEqTo51()) {
@@ -764,7 +769,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* enterprise db config) that will be used when running Alfresco. It contains database connection parameters and
* other general configuration for Alfresco Repository (alfresco.war)
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears copying the Alfresco global properties file
*/
protected void copyAlfrescoGlobalProperties() throws MojoExecutionException {
getLog().info("Copying and filtering alfresco-global-*.properties files to target/test-classes");
@@ -856,7 +861,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Rename the configured database specific alfresco-global-*.properties file to
* alfresco-global.properties so it will be used during Tomcat run.
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears renaming the alfresco global properties
*/
protected void renameAlfrescoGlobalProperties() throws MojoExecutionException {
String alfrescoGlobalFilePath = project.getBuild().getTestOutputDirectory() + "/alfresco-global-";
@@ -904,7 +909,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Copy the Alfresco Enterprise license to its correct place in the Platform WAR, if it exists.
* It is not enough to have it on the test classpath, then it will start up as Trial license...
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears copying the Alfresco license
*/
protected void copyAlfrescoLicense() throws MojoExecutionException {
if (alfrescoEdition.equals(ALFRESCO_COMMUNITY_EDITION)) {
@@ -943,7 +948,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
/**
* Copy the Activiti Log4J Dev config into the activitiApp-war/WEB-INF/classes dir.
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears copying the activity Log4J dev configuration
*/
protected void copyActivitiLog4JDevConfig() throws MojoExecutionException {
final String warOutputDir = getWarOutputDir(ACTIVITI_APP_WAR_PREFIX_NAME);
@@ -978,7 +983,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
/**
* Copy Share Config Custom in order to have global overrides for development and dynamic port
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears copying share config custom file
*/
protected void copyShareConfigCustom() throws MojoExecutionException {
final String warOutputDir = getWarOutputDir(SHARE_WAR_PREFIX_NAME);
@@ -1019,7 +1024,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* There is no custom classpath resolve mechanism for Share log4j,
* to log custom stuff overriding standard log4j.properties is needed.
*
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears copying the share log4j configuration
*/
protected void copyShareLog4jConfig() throws MojoExecutionException {
if (!useCustomShareLog4jConfig) {
@@ -1059,7 +1064,9 @@ public abstract class AbstractRunMojo extends AbstractMojo {
/**
* Copy and Build hotswap-agent.properties
*
- * @throws MojoExecutionException
+ * @param warPrefix path to the war root directory
+ *
+ * @throws MojoExecutionException when any problem appears copying hotswap agent properties
*/
protected void copyHotswapAgentProperties(String warPrefix) throws MojoExecutionException {
if ( copyHotswapAgentConfig == false ) {
@@ -1093,6 +1100,8 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Build the customized Platform webapp (i.e. the Repository, alfresco.war)
* that should be deployed by Tomcat by applying all AMPs and JARs from
* the {@code } configuration.
+ *
+ * @throws MojoExecutionException when any problem appears building the platform war
*/
protected void buildPlatformWar() throws MojoExecutionException {
buildCustomWarInDir(PLATFORM_WAR_PREFIX_NAME, platformModules,
@@ -1114,6 +1123,8 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* Build the customized Share webapp (i.e. the share.war)
* that should be deployed by Tomcat by applying all AMPs and JARs from
* the {@code } configuration.
+ *
+ * @throws MojoExecutionException when any problem appears building the share war
*/
protected void buildShareWar() throws MojoExecutionException {
buildCustomWarInDir(SHARE_WAR_PREFIX_NAME, shareModules,
@@ -1136,6 +1147,8 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* 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.
+ *
+ * @throws MojoExecutionException when any problem appears building the activity war
*/
protected void buildActivitiAppWar() throws MojoExecutionException {
buildCustomWarInDir(ACTIVITI_APP_WAR_PREFIX_NAME, activitiModules,
@@ -1160,7 +1173,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* @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
+ * @throws MojoExecutionException when any problem appears building the custom war
*/
protected void buildCustomWarInDir(String warName,
List modules,
@@ -1283,7 +1296,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
*
* @param warName the name of the custom war
* @return the customized war file artifactId, to be used by the tomcat7 plugin
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears packaging or installing the custom war
*/
protected String packageAndInstallCustomWar(String warName) throws MojoExecutionException {
final String warArtifactId = "${project.artifactId}-" + warName;
@@ -1318,6 +1331,8 @@ public abstract class AbstractRunMojo extends AbstractMojo {
/**
* Check that a database configuration has been supplied correctly
+ *
+ * @throws MojoExecutionException when any problem appears checking the database configuration
*/
protected void checkDatabaseConfig() throws MojoExecutionException {
// Only do this check if we are running alfresco.war or activiti-app.war that needs a database.
@@ -1348,7 +1363,7 @@ public abstract class AbstractRunMojo extends AbstractMojo {
* configured in the SDK project.
*
* @param fork true if tomcat process should be forked
- * @throws MojoExecutionException
+ * @throws MojoExecutionException when any problem appears starting tomcat
*/
protected void startTomcat(boolean fork) throws MojoExecutionException {
getLog().info("Starting Tomcat, fork = " + fork);
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/InstallMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/InstallMojo.java
index b53e25a4..4ca97688 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/InstallMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/InstallMojo.java
@@ -26,9 +26,10 @@ import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
/**
+ *
* Performs a AMP to WAR overlay invoking the Alfresco Repository ModuleManagementTool.
* It therefore wraps and emulates the same WAR overlay performed by Alfresco MMT.
- *
+ *
* This goal will install the AMP file(s) found in ${ampLocation} onto the WAR (or exploded WAR) found in ${warLocation}
*
* @version $Id:$
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/IntegrationTestMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/IntegrationTestMojo.java
index 6c36f76e..b2dbc520 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/IntegrationTestMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/IntegrationTestMojo.java
@@ -35,12 +35,13 @@ import java.util.Properties;
import static org.twdata.maven.mojoexecutor.MojoExecutor.*;
/**
+ *
* Alfresco Plugin mojo that are used when you want to run Integration Tests.
* It will package up all the Integration Test classes and execute contained
* tests with the Maven Failsafe plugin. The test classes will be added
* to the platform war so they can be executed remotely via
- * the ${@link org.alfresco.rad.test.AlfrescoTestRunner}
- *
+ * the AlfrescoTestRunner.
+ *
* The Alfresco RAD module is also added to the Platform WAR so
* the Alfresco Test runner classes are available.
*
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshMojo.java
index 26427eb0..b0ff0ea8 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshMojo.java
@@ -21,11 +21,12 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
/**
+ *
* Refresh Alfresco Repo and Share Mojo.
* Will refresh the Web Script container so new and changed
* Spring Surf Web Scripts are detected.
* Will also clear the dependency caches for web resources (CSS, JS, etc).
- *
+ *
* It is important to execute the refresh calls in the compile phase,
* otherwise the files will be copied after this and the refresh calls
* will not be recognized.
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshRepoWebappMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshRepoWebappMojo.java
index c741c90a..9e38ab9b 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshRepoWebappMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshRepoWebappMojo.java
@@ -21,10 +21,11 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
/**
+ *
* Refresh Alfresco Repository (alfresco.war) Mojo.
* Will refresh the Web Script container so new and changed
* Web Scripts are detected.
- *
+ *
* It is important to execute the refresh calls in the compile phase,
* otherwise the files will be copied after this and the refresh calls
* will not be recognized.
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshShareWebappMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshShareWebappMojo.java
index 157e1898..30b40567 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshShareWebappMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/RefreshShareWebappMojo.java
@@ -21,11 +21,12 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
/**
+ *
* Refresh Alfresco Share (share.war) Mojo.
* Will refresh the Web Script container so new and changed
* Spring Surf Web Scripts are detected.
* Will also clear the dependency caches for web resources (CSS, JS, etc).
- *
+ *
* It is important to execute the refresh calls in the compile phase,
* otherwise the files will be copied after this and the refresh calls
* will not be recognized.
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/VersionMojo.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/VersionMojo.java
index 234d57fa..41d363c9 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/VersionMojo.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/VersionMojo.java
@@ -28,8 +28,7 @@ import org.apache.maven.project.MavenProject;
/**
* Removes -SNAPSHOT suffix from the version number (if present), optionally replacing it with a timestamp.
- * The result is provided in the Maven property ${noSnapshotVersion} (name can be changed using
- * myCustomVersion>).
+ * The result is provided in the Maven property ${noSnapshotVersion}.
* This feature is mostly needed to avoid Alfresco failing when installing AMP modules with non-numeric
* versions.
*
@@ -67,7 +66,7 @@ public class VersionMojo extends AbstractMojo {
/**
* Allows to append a custom (numeric) value to the current artifact's version,
* i.e. appending the SCM build number can be accomplished defining
- * ${buildnumber} in the plugin
+ * <customVersionSuffix>${buildnumber}</customVersionSuffix> in the plugin
* configuration.
*
* @parameter property="maven.alfresco.customVersionSuffix"
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/archiver/AmpUnArchiver.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/archiver/AmpUnArchiver.java
index 58cdd1ec..8be254a3 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/archiver/AmpUnArchiver.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/archiver/AmpUnArchiver.java
@@ -14,7 +14,7 @@ import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.util.xml.Xpp3Dom;
/**
* This class provides AMP unpacking support for projects depending on AMPs
- * This allows for example AMPs to be specified as in the maven-war-plugin
+ * This allows for example AMPs to be specified as <overlay> in the maven-war-plugin
* @author mindthegab
*
*/
diff --git a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/config/ModuleDependency.java b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/config/ModuleDependency.java
index 7e2690e8..5d5d3f04 100644
--- a/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/config/ModuleDependency.java
+++ b/plugins/alfresco-maven-plugin/src/main/java/org/alfresco/maven/plugin/config/ModuleDependency.java
@@ -21,15 +21,18 @@ package org.alfresco.maven.plugin.config;
import org.apache.commons.lang.StringUtils;
/**
+ *
* Defines an Alfresco extension module dependency (JAR or AMP) to be
* overlayed on an Alfresco webapp file.
- *
+ *
+ *
* This is so we can skip the WAR projects in the AIO project,
* and so we can include the Share Services AMP when running
* with a simple platform JAR.
- *
* Tomcat Webapp used in Embedded Tomcat Maven plugin configuration.
* These are custom webapps that you would want to include for some reason
* (The {webapp artifact}.war need to be available in a Maven Repo).
* Note. the standard webapps are included with plugin properties such as enablePlatform and enableShare.
- *