From 779d53a05119e118fcfe308820850a8040489c7b Mon Sep 17 00:00:00 2001 From: Jose Luis Osorno Date: Wed, 19 Dec 2018 12:05:30 +0100 Subject: [PATCH 1/5] AIO archetype - Switch to docker environment Change the AIO project to add the required configuration to execute it as an orchestrated docker environment that includes ACS, Share, PostgreSQL and ASS. This will replace the use of the Alfresco Maven Plugin. New bash scripts has been added to manage the docker environment. A new docker-compose file configure the docker environment. New docker aggregator modules has been created for platform and share. All the unnecessary files and configuration have been removed from the archetype. --- .../META-INF/maven/archetype-metadata.xml | 97 ++++--- .../pom.xml | 155 +++++++++++ .../src/main/docker/Dockerfile | 18 ++ .../main/docker}/alfresco-global.properties | 30 +- .../src/main/docker}/dev-log4j.properties | 8 +- .../disable-webscript-caching-context.xml | 0 .../src/main/docker/hotswap-agent.properties} | 11 +- .../src/main/docker/license/README.md | 6 + .../__rootArtifactId__-platform-jar/pom.xml | 1 + .../__rootArtifactId__-share-docker/pom.xml | 93 +++++++ .../src/main/docker/Dockerfile | 16 ++ .../src/main/docker/hotswap-agent.properties} | 9 +- .../src/main/docker}/log4j.properties | 7 +- .../src/main/docker}/share-config-custom.xml | 10 +- .../__rootArtifactId__-share-jar/pom.xml | 2 +- .../resources/archetype-resources/debug.bat | 12 - .../resources/archetype-resources/debug.sh | 7 - .../docker/docker-compose.yml | 59 ++++ .../integration-tests/pom.xml | 21 +- .../local/alfresco-global.properties | 72 ----- .../alfresco/extension/dev-log4j.properties | 263 ------------------ .../resources/archetype-resources/pom.xml | 117 +++----- .../resources/archetype-resources/run.bat | 112 +++++++- .../main/resources/archetype-resources/run.sh | 109 +++++++- .../src/test/license/README.md | 10 - .../disable-webscript-caching-context.xml | 63 ----- .../src/test/resources/share/log4j.properties | 54 ---- 27 files changed, 688 insertions(+), 674 deletions(-) create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/pom.xml create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/Dockerfile rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{src/test/properties/local => __rootArtifactId__-platform-docker/src/main/docker}/alfresco-global.properties (80%) rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{src/test/resources/alfresco/extension => __rootArtifactId__-platform-docker/src/main/docker}/dev-log4j.properties (97%) rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{integration-tests/src/test/resources/alfresco/extension => __rootArtifactId__-platform-docker/src/main/docker}/disable-webscript-caching-context.xml (100%) rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{src/test/resources/platform-hotswap-agent.properties => __rootArtifactId__-platform-docker/src/main/docker/hotswap-agent.properties} (82%) create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/license/README.md create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/pom.xml create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/Dockerfile rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{src/test/resources/share-hotswap-agent.properties => __rootArtifactId__-share-docker/src/main/docker/hotswap-agent.properties} (86%) rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{integration-tests/src/test/resources/share => __rootArtifactId__-share-docker/src/main/docker}/log4j.properties (93%) rename archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/{src/test/resources/share => __rootArtifactId__-share-docker/src/main/docker}/share-config-custom.xml (90%) delete mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.bat delete mode 100755 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.sh create mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml delete mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/properties/local/alfresco-global.properties delete mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/alfresco/extension/dev-log4j.properties delete mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/license/README.md delete mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml delete mode 100644 archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/log4j.properties diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml index d1faa76d..0ac0fa49 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -111,26 +111,67 @@ **/*.java - - src/test/resources - - **/dev-log4j.properties - - + + + + + - src/test/resources + src/main/docker/license ** - - **/dev-log4j.properties - - src/test/properties + src/main/docker + + license/** + Dockerfile + disable-webscript-caching-context.xml + + + **/*.properties + + + + src/main/docker **/*.properties + + license/** + Dockerfile + disable-webscript-caching-context.xml + + + + + + + + + src/main/docker + + Dockerfile + share-config-custom.xml + + + **/*.properties + + + + src/main/docker + + **/*.properties + + + Dockerfile + share-config-custom.xml + @@ -138,44 +179,14 @@ - src/test/resources + docker - **/dev-log4j.properties + ** - src/test/resources - - *hotswap-agent.properties - - - - src/test/resources - - ** - - - **/dev-log4j.properties - *hotswap-agent.properties - - - - src/test/properties - - **/*.properties - - - - src/test/license - - ** - - - - debug.sh - debug.bat run.sh run.bat README.md diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/pom.xml new file mode 100644 index 00000000..0d002279 --- /dev/null +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/pom.xml @@ -0,0 +1,155 @@ + + + 4.0.0 + ${artifactId} + Alfresco Platform/Repository Docker Module + Platform/Repo Docker Module to generate the final Docker image + jar + + + ${groupId} + ${rootArtifactId} + ${version} + + + + + + + + ${groupId} + ${rootArtifactId}-platform-jar + ${version} + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.0.2 + + + + copy-repo-extension + pre-integration-test + + copy + + + + + ${groupId} + ${rootArtifactId}-platform-jar + ${version} + false + ${project.build.directory}/extensions + + + + + org.alfresco.maven + alfresco-rad + ${alfresco.sdk.version} + false + ${project.build.directory}/extensions + + + ${groupId} + integration-tests + ${version} + tests + false + ${project.build.directory}/extensions + + + junit + junit + 4.12 + false + ${project.build.directory}/extensions + + + org.mockito + mockito-all + 1.9.5 + false + ${project.build.directory}/extensions + + + org.apache.httpcomponents + httpclient + 4.5.2 + false + ${project.build.directory}/extensions + + + + + + + copy-third-party-dependencies + pre-integration-test + + copy-dependencies + + + ${project.build.directory}/extensions + runtime + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.0.1 + + + copy-and-filter-docker-resources + validate + + copy-resources + + + ${project.build.directory} + + + src/main/docker + true + + **/*.jar + **/*.so + + + + + + + copy-and-filter-docker-resources-non-filtered + validate + + copy-resources + + + ${project.build.directory} + + + src/main/docker + false + + **/*.jar + **/*.so + + + + + + + + + + diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/Dockerfile b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/Dockerfile new file mode 100644 index 00000000..0acd7c64 --- /dev/null +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/Dockerfile @@ -0,0 +1,18 @@ +FROM ${docker.acs.image}:${alfresco.platform.version} + +ARG TOMCAT_DIR=/usr/local/tomcat + +# Copy Dockerfile to avoid an error if no JARs exist +COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib/ + +# Copy Dockerfile to avoid an error if no AMPs exist +COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps/ +RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ + $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force + +COPY alfresco-global.properties $TOMCAT_DIR/shared/classes/alfresco-global.properties +COPY dev-log4j.properties $TOMCAT_DIR/shared/classes/alfresco/extension +COPY disable-webscript-caching-context.xml $TOMCAT_DIR/shared/classes/alfresco/extension + +# Copy Dockerfile to avoid an error if no license file exists +COPY Dockerfile license/*.* $TOMCAT_DIR/webapps/alfresco/WEB-INF/classes/alfresco/extension/license/ \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/properties/local/alfresco-global.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/alfresco-global.properties similarity index 80% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/properties/local/alfresco-global.properties rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/alfresco-global.properties index eaa0d13f..4cc31846 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/properties/local/alfresco-global.properties +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/alfresco-global.properties @@ -1,3 +1,6 @@ +#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. @@ -15,14 +18,12 @@ # RUN TIME PROPERTIES # ------------------- -######################################################################################################################## +# # Alfresco configuration for running locally with PostgreSQL Database # # Configuration when running Tomcat embedded from Maven. # Property values from the POM but it can also be edited here. -######################################################################################################################## - -dir.root=${alfresco.data.location} +# # Alfresco Repo Webapp (alfresco.war) context, ports etc alfresco.context=alfresco @@ -33,14 +34,9 @@ alfresco.protocol=http # Alfresco Share Webapp (share.war) context, ports etc share.context=share share.host=localhost -share.port=8080 +share.port=8180 share.protocol=http -index.subsystem.name=solr4 -solr.host=localhost -solr.port=8080 -solr.secureComms=none - # Don't try and recover any index index.recovery.mode=NONE @@ -57,12 +53,24 @@ integrity.failOnError=true # Alfresco Repository PostgreSQL Database configuration. # The PostgreSQL Driver is brought in via the tomcat7-maven-plugin as a dependency. db.driver=org.postgresql.Driver -db.url=jdbc:postgresql://localhost:5432/alfresco + +# This Alfresco Platform Configuration file should be used for custom properties that are introduced by this module. +# Define default values for all properties here. +# System Administrators can override these values in environment specific configurations in +# alfresco/tomcat/shared/classes/alfresco-global.properties. +# +index.subsystem.name=solr6 +solr.host=${rootArtifactId}-ass +solr.port=8983 +solr.secureComms=none + db.username=alfresco db.password=alfresco db.pool.initial=10 db.pool.max=100 +db.url=jdbc:postgresql://${rootArtifactId}-postgres:5432/alfresco + # File servers related properties # For local runs we disable CIFS and FTP cifs.enabled=false diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/dev-log4j.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/dev-log4j.properties similarity index 97% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/dev-log4j.properties rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/dev-log4j.properties index 848d827c..bc9975b6 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/dev-log4j.properties +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/dev-log4j.properties @@ -4,7 +4,6 @@ # Set root logger level to error log4j.rootLogger=error, Console, File -###### Console appender definition ####### # All outputs currently set to be a ConsoleAppender. log4j.appender.Console=org.apache.log4j.ConsoleAppender @@ -14,7 +13,6 @@ log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n #log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n -###### File appender definition ####### log4j.appender.File=org.apache.log4j.DailyRollingFileAppender log4j.appender.File.File=alfresco.log log4j.appender.File.Append=true @@ -22,13 +20,11 @@ log4j.appender.File.DatePattern='.'yyyy-MM-dd log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n -###### Hibernate specific appender definition ####### #log4j.appender.file=org.apache.log4j.FileAppender #log4j.appender.file.File=hibernate.log #log4j.appender.file.layout=org.apache.log4j.PatternLayout #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n -###### Log level overrides ####### # Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4JHierarchyInit) # Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime @@ -64,8 +60,7 @@ log4j.logger.org.apache.myfaces.taglib=error # OpenOfficeConnection log4j.logger.net.sf.jooreports.openoffice.connection=fatal -# log prepared statement cache activity ### -log4j.logger.org.hibernate.ps.PreparedStatementCache=info +# log prepared statement cache activity log4j.logger.org.hibernate.ps.PreparedStatementCache=info # Alfresco log4j.logger.org.alfresco=error @@ -215,7 +210,6 @@ log4j.logger.org.jbpm.graph.def.GraphElement=fatal #log4j.logger.org.alfresco.repo.googledocs=debug -###### Scripting ####### # Web Framework log4j.logger.org.springframework.extensions.webscripts=info diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/disable-webscript-caching-context.xml similarity index 100% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/disable-webscript-caching-context.xml diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/platform-hotswap-agent.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/hotswap-agent.properties similarity index 82% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/platform-hotswap-agent.properties rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/hotswap-agent.properties index bda7d2f7..d94563e7 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/platform-hotswap-agent.properties +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/hotswap-agent.properties @@ -1,3 +1,6 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) # Enable hotswap so that changes in this module will be automatically reloaded # Watch for changed class files on watchResources path and reload class definition in the running application. autoHotswap=true @@ -10,8 +13,8 @@ autoHotswap=true # classes from built JAR file. # i.e. monitor /target/classes # should work with extraClasspath=${project.build.outputDirectory} -# If not try -extraClasspath=${project.basedir}/${artifactId}-platform-jar/target/classes;${project.basedir}/${artifactId}-platform-jar/target/test-classes;${project.basedir}/integration-tests/target/classes;${project.basedir}/integration-tests/target/test-classes +# If not try +extraClasspath=/usr/local/tomcat/hotswap-agent # Comma separated list of disabled plugins # Use plugin name - e.g. @@ -23,12 +26,12 @@ disabledPlugins=Hibernate,Spring # # Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing. # Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp). -extraWebappContext=${project.basedir}/${artifactId}-platform-jar/target/classes/META-INF/resources; +extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform-jar/target/classes/META-INF/resources; # Load static web resources from different directory. # # This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...) -webappDir=${project.basedir}/${artifactId}-platform-jar/target/classes/META-INF/resources; +webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform-jar/target/classes/META-INF/resources; # Watch for changes in a directory (resources only). # diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/license/README.md b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/license/README.md new file mode 100644 index 00000000..996f1bd8 --- /dev/null +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-docker/src/main/docker/license/README.md @@ -0,0 +1,6 @@ +# Enterprise License location + +Put the Alfresco Enterprise license file in this directory. +It will then be copied into the ACS container in the +$TOMCAT_DIR/WEB-INF/classes/alfresco/extension/license directory. + diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/pom.xml index fe6e5537..59686950 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/pom.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-platform-jar/pom.xml @@ -17,6 +17,7 @@ + diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/pom.xml new file mode 100644 index 00000000..e942a6a8 --- /dev/null +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/pom.xml @@ -0,0 +1,93 @@ + + + 4.0.0 + ${artifactId} + Alfresco Share Docker Module + Share Docker Module to generate the final Docker image + jar + + + ${groupId} + ${rootArtifactId} + ${version} + + + + + + + + ${groupId} + ${rootArtifactId}-share-jar + ${version} + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.0.2 + + + + copy-repo-extension + pre-integration-test + + copy + + + + + ${groupId} + ${rootArtifactId}-share-jar + ${version} + false + ${project.build.directory}/extensions + + + + + + + copy-third-party-dependencies + pre-integration-test + + copy-dependencies + + + ${project.build.directory}/extensions + runtime + + + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.0.1 + + + copy-and-filter-docker-resources + validate + + copy-resources + + + ${project.build.directory} + + + src/main/docker + true + + + + + + + + + diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/Dockerfile b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/Dockerfile new file mode 100644 index 00000000..6b43fb21 --- /dev/null +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/Dockerfile @@ -0,0 +1,16 @@ +FROM ${docker.share.image}:${alfresco.share.version} + +ARG TOMCAT_DIR=/usr/local/tomcat + +# Copy Dockerfile to avoid an error if no JARs exist +COPY Dockerfile extensions/*.jar $TOMCAT_DIR/webapps/share/WEB-INF/lib/ + +# Copy Dockerfile to avoid an error if no AMPs exist +COPY Dockerfile extensions/*.amp $TOMCAT_DIR/amps_share/ +RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \ + $TOMCAT_DIR/amps_share $TOMCAT_DIR/webapps/share -directory -nobackup -force + +COPY share-config-custom.xml $TOMCAT_DIR/shared/classes/alfresco/web-extension + +COPY log4j.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes +COPY hotswap-agent.properties $TOMCAT_DIR/webapps/share/WEB-INF/classes \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share-hotswap-agent.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/hotswap-agent.properties similarity index 86% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share-hotswap-agent.properties rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/hotswap-agent.properties index caa0f30f..40073d4b 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share-hotswap-agent.properties +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/hotswap-agent.properties @@ -1,3 +1,6 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) # Enable hotswap so that changes in this module will be automatically reloaded # Watch for changed class files on watchResources path and reload class definition in the running application. autoHotswap=true @@ -11,7 +14,7 @@ autoHotswap=true # i.e. monitor /target/classes # should work with extraClasspath=${project.build.outputDirectory} # If not try -extraClasspath=${project.basedir}/${artifactId}-share-jar/target/classes;${project.basedir}/${artifactId}-share-jar/target/test-classes +extraClasspath=/usr/local/tomcat/hotswap-agent # Comma separated list of disabled plugins @@ -24,12 +27,12 @@ disabledPlugins=Hibernate,Spring # # Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing. # Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp). -extraWebappContext=${project.basedir}/${artifactId}-share-jar/target/classes/META-INF/resources; +extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-share-jar/target/classes/META-INF/resources; # Load static web resources from different directory. # # This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...) -webappDir=${project.basedir}/${artifactId}-share-jar/target/classes/META-INF/resources; +webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-share-jar/target/classes/META-INF/resources; # Watch for changes in a directory (resources only). # diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/share/log4j.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/log4j.properties similarity index 93% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/share/log4j.properties rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/log4j.properties index aa7a414c..3e1b47a7 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/share/log4j.properties +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/log4j.properties @@ -1,7 +1,10 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) # Set root logger level to error log4j.rootLogger=error, Console, File -###### Console appender definition ####### +# Console appender definition # # All outputs currently set to be a ConsoleAppender. log4j.appender.Console=org.apache.log4j.ConsoleAppender @@ -11,7 +14,7 @@ log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n #log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n -###### File appender definition ####### +# File appender definition # log4j.appender.File=org.apache.log4j.DailyRollingFileAppender log4j.appender.File.File=share.log log4j.appender.File.Append=true diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/share-config-custom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/share-config-custom.xml similarity index 90% rename from archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/share-config-custom.xml rename to archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/share-config-custom.xml index f95241d9..b926f2c3 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/share-config-custom.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-docker/src/main/docker/share-config-custom.xml @@ -57,7 +57,7 @@ Alfresco - unauthenticated access Access to Alfresco Repository WebScripts that do not require authentication alfresco - ${alfresco.repo.url}/s + http://${acs.host}:8080/alfresco/s none @@ -66,7 +66,7 @@ Alfresco - user access Access to Alfresco Repository WebScripts that require user authentication alfresco - ${alfresco.repo.url}/s + http://${acs.host}:8080/alfresco/s user @@ -75,7 +75,7 @@ Alfresco Feed Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet http - ${alfresco.repo.url}/s + http://${acs.host}:8080/alfresco/s true user @@ -85,7 +85,7 @@ Activiti Admin UI - user access Access to Activiti Admin UI, that requires user authentication activiti-admin-connector - ${alfresco.repo.url}/activiti-admin + http://${acs.host}:8080/alfresco/activiti-admin user @@ -96,7 +96,7 @@ Access to Alfresco Repository Public API that require user authentication. This makes use of the authentication that is provided by parent 'alfresco' endpoint. alfresco - ${alfresco.repo.url}/api + http://${acs.host}:8080/alfresco/api user diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/pom.xml index 392c9eec..de0c545a 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/pom.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/__rootArtifactId__-share-jar/pom.xml @@ -25,7 +25,7 @@ share classes - + diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.bat b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.bat deleted file mode 100644 index f71c66d4..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.bat +++ /dev/null @@ -1,12 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Dev environment startup script for Alfresco Community :: -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -@ECHO OFF - -IF "%MAVEN_OPTS%" == "" ( - ECHO The environment variable 'MAVEN_OPTS' is not set, setting it for you - SET MAVEN_OPTS=-Xms256m -Xmx2G -) -ECHO MAVEN_OPTS is set to '%MAVEN_OPTS%' - -mvnDebug clean install alfresco:run \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.sh b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.sh deleted file mode 100755 index 77643330..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/debug.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -if [[ -z ${MAVEN_OPTS} ]]; then - echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you"; - MAVEN_OPTS="-Xms256m -Xmx2G" -fi -echo "MAVEN_OPTS is set to '$MAVEN_OPTS'"; -mvnDebug clean install alfresco:run \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml new file mode 100644 index 00000000..1cce4be7 --- /dev/null +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml @@ -0,0 +1,59 @@ +#set( $symbol_dollar = '$' ) +version: '3.4' +services: + ${rootArtifactId}-share: + image: alfresco-share-${rootArtifactId}:development + build: + dockerfile: ./Dockerfile + context: ../../../${rootArtifactId}-share-docker/target + environment: + CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888" + REPO_HOST: ${rootArtifactId}-acs + REPO_PORT: 8080 + ports: + - "${symbol_dollar}{share.port}:8080" + - "${symbol_dollar}{share.debug.port}:8888" + ${rootArtifactId}-acs: + image: alfresco-content-services-${rootArtifactId}:development + build: + dockerfile: ./Dockerfile + context: ../../../${rootArtifactId}-platform-docker/target + environment: + CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888" + ports: + - "${symbol_dollar}{acs.port}:8080" + - "${symbol_dollar}{acs.debug.port}:8888" + volumes: + - alf-acs-volume:/usr/local/tomcat/alf_data + depends_on: + - ${rootArtifactId}-postgres + ${rootArtifactId}-postgres: + image: postgres:9.6 + environment: + POSTGRES_DB: alfresco + POSTGRES_USER: alfresco + POSTGRES_PASSWORD: alfresco + ports: + - "${symbol_dollar}{postgres.port}:5432" + volumes: + - alf-db-volume:/var/lib/postgresql/data + ${rootArtifactId}-ass: + image: alfresco/alfresco-search-services:1.2.0 + environment: + SOLR_ALFRESCO_HOST: ${rootArtifactId}-acs + SOLR_ALFRESCO_PORT: 8080 + SOLR_SOLR_HOST: ${rootArtifactId}-ass + SOLR_SOLR_PORT: 8983 + SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive + ports: + - "8983:8983" + volumes: + - alf-ass-volume:/opt/alfresco-search-services/contentstore + - alf-ass-volume:/opt/alfresco-search-services/data +volumes: + alf-acs-volume: + external: true + alf-db-volume: + external: true + alf-ass-volume: + external: true \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/pom.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/pom.xml index 2f285220..67503875 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/pom.xml +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/pom.xml @@ -68,6 +68,11 @@ org.apache.maven.plugins maven-failsafe-plugin 2.19.1 + + + ${test.acs.endpoint.path} + + integration-test @@ -92,22 +97,6 @@ - - - - org.alfresco.maven.plugin - alfresco-maven-plugin - ${alfresco.sdk.version} - - - start-alfresco - - it - - pre-integration-test - - - diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/properties/local/alfresco-global.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/properties/local/alfresco-global.properties deleted file mode 100644 index baa03d42..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/properties/local/alfresco-global.properties +++ /dev/null @@ -1,72 +0,0 @@ -# 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. -# RUN TIME PROPERTIES -# ------------------- - -######################################################################################################################## -# Alfresco configuration for running locally with PostgreSQL Database -# -# Configuration when running Tomcat embedded from Maven. -# Property values from the POM but it can also be edited here. -######################################################################################################################## - -dir.root=${alfresco.data.location} - -# Alfresco Repo Webapp (alfresco.war) context, ports etc -alfresco.context=alfresco -alfresco.host=localhost -alfresco.port=8080 -alfresco.protocol=http - -# Alfresco Share Webapp (share.war) context, ports etc -share.context=share -share.host=localhost -share.port=8080 -share.protocol=http - -index.subsystem.name=solr4 -solr.host=localhost -solr.port=8080 -solr.secureComms=none - -# Don't try and recover any index -index.recovery.mode=NONE -# As we run embedded, we set Lucene -# TODO: Find a better solution for indexing, as buildonly (embedded Lucene) is deprecated and going to be removed soon -#index.subsystem.name=buildonly - -# These jobs seem to require Lucene (Unsupported Operation with Solr) so we disable them / set to future date -# See https://forums.alfresco.com/en/viewtopic.php?f=52&t=41597 -# If you want to enable them (and so full WQS functionality), please also set index.subsystem.name=lucene -wcmqs.dynamicCollectionProcessor.schedule=0 30 2 * * ? 2060 -wcmqs.feedbackProcessor.schedule=0 40 2 * * ? 2060 -wcmqs.publishQueueProcessor.schedule=0 50 2 * * ? 2060 - -# Fail or not when there are node integrity checker errors -integrity.failOnError=true - -# Alfresco Repository PostgreSQL Database configuration. -# The PostgreSQL Driver is brought in via the tomcat7-maven-plugin as a dependency. -db.driver=org.postgresql.Driver -db.url=jdbc:postgresql://localhost:5432/alfresco -db.username=alfresco -db.password=alfresco -db.pool.initial=10 -db.pool.max=100 - -# File servers related properties -# For local runs we disable CIFS and FTP -cifs.enabled=false -ftp.enabled=false \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/alfresco/extension/dev-log4j.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/alfresco/extension/dev-log4j.properties deleted file mode 100644 index 0512bec3..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/integration-tests/src/test/resources/alfresco/extension/dev-log4j.properties +++ /dev/null @@ -1,263 +0,0 @@ -# Set root logger level to error -log4j.rootLogger=error, Console, File - - -# All outputs currently set to be a ConsoleAppender. -log4j.appender.Console=org.apache.log4j.ConsoleAppender -log4j.appender.Console.layout=org.apache.log4j.PatternLayout - -# use log4j NDC to replace %x with tenant domain / username -log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n -#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n - -log4j.appender.File=org.apache.log4j.DailyRollingFileAppender -log4j.appender.File.File=alfresco.log -log4j.appender.File.Append=true -log4j.appender.File.DatePattern='.'yyyy-MM-dd -log4j.appender.File.layout=org.apache.log4j.PatternLayout -log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n - -#log4j.appender.file=org.apache.log4j.FileAppender -#log4j.appender.file.File=hibernate.log -#log4j.appender.file.layout=org.apache.log4j.PatternLayout -#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n - - -# Commented-in loggers will be exposed as JMX MBeans (refer to org.alfresco.repo.admin.Log4JHierarchyInit) -# Hence, generally useful loggers should be listed with at least ERROR level to allow simple runtime -# control of the level via a suitable JMX Console. Also, any other loggers can be added transiently via -# Log4j addLoggerMBean as long as the logger exists and has been loaded. - -# Hibernate -log4j.logger.org.hibernate=error -log4j.logger.org.hibernate.util.JDBCExceptionReporter=fatal -log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=fatal -log4j.logger.org.hibernate.type=warn -log4j.logger.org.hibernate.cfg.SettingsFactory=warn - -# Spring -log4j.logger.org.springframework=warn -# Turn off Spring remoting warnings that should really be info or debug. -log4j.logger.org.springframework.remoting.support=error -log4j.logger.org.springframework.util=error - -# Axis/WSS4J -log4j.logger.org.apache.axis=info -log4j.logger.org.apache.ws=info - -# CXF -log4j.logger.org.apache.cxf=error - -# MyFaces -log4j.logger.org.apache.myfaces.util.DebugUtils=info -log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error -log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error -log4j.logger.org.apache.myfaces.taglib=error - -# OpenOfficeConnection -log4j.logger.net.sf.jooreports.openoffice.connection=fatal - -# log prepared statement cache activity log4j.logger.org.hibernate.ps.PreparedStatementCache=info - -# Alfresco -log4j.logger.org.alfresco=error -log4j.logger.org.alfresco.repo.admin=info -log4j.logger.org.alfresco.repo.transaction=warn -log4j.logger.org.alfresco.repo.cache.TransactionalCache=warn -log4j.logger.org.alfresco.repo.model.filefolder=warn -log4j.logger.org.alfresco.repo.tenant=info -log4j.logger.org.alfresco.config=warn -log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn -log4j.logger.org.alfresco.config.JBossEnabledWebApplicationContext=warn -log4j.logger.org.alfresco.repo.management.subsystems=warn -log4j.logger.org.alfresco.repo.management.subsystems.ChildApplicationContextFactory=info -log4j.logger.org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ChildApplicationContext=warn -log4j.logger.org.alfresco.repo.security.sync=info -log4j.logger.org.alfresco.repo.security.person=info - -log4j.logger.org.alfresco.sample=info -log4j.logger.org.alfresco.web=info -#log4j.logger.org.alfresco.web.app.AlfrescoNavigationHandler=debug -#log4j.logger.org.alfresco.web.ui.repo.component.UIActions=debug -#log4j.logger.org.alfresco.web.ui.repo.tag.PageTag=debug -#log4j.logger.org.alfresco.web.bean.clipboard=debug -log4j.logger.org.alfresco.service.descriptor.DescriptorService=info -#log4j.logger.org.alfresco.web.page=debug - -log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=error -#log4j.logger.org.alfresco.repo.importer.ImporterBootstrap=info - -log4j.logger.org.alfresco.repo.admin.patch.PatchExecuter=info -log4j.logger.org.alfresco.repo.domain.patch.ibatis.PatchDAOImpl=info - -# Specific patches -log4j.logger.org.alfresco.repo.admin.patch.impl.DeploymentMigrationPatch=info -log4j.logger.org.alfresco.repo.version.VersionMigrator=info - -log4j.logger.org.alfresco.repo.module.ModuleServiceImpl=info -log4j.logger.org.alfresco.repo.domain.schema.SchemaBootstrap=info -log4j.logger.org.alfresco.repo.admin.ConfigurationChecker=info -log4j.logger.org.alfresco.repo.node.index.AbstractReindexComponent=warn -log4j.logger.org.alfresco.repo.node.index.IndexTransactionTracker=warn -log4j.logger.org.alfresco.repo.node.index.FullIndexRecoveryComponent=info -log4j.logger.org.alfresco.util.OpenOfficeConnectionTester=info -log4j.logger.org.alfresco.repo.node.db.hibernate.HibernateNodeDaoServiceImpl=warn -log4j.logger.org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor=warn -log4j.logger.org.alfresco.repo.transaction.RetryingTransactionHelper=warn -log4j.logger.org.alfresco.util.transaction.SpringAwareUserTransaction.trace=warn -log4j.logger.org.alfresco.util.AbstractTriggerBean=warn -log4j.logger.org.alfresco.enterprise.repo.cluster=info -log4j.logger.org.alfresco.repo.version.Version2ServiceImpl=warn - -#log4j.logger.org.alfresco.web.app.DebugPhaseListener=debug -log4j.logger.org.alfresco.repo.node.db.NodeStringLengthWorker=info - -log4j.logger.org.alfresco.repo.workflow=info - -# CIFS server debugging -log4j.logger.org.alfresco.smb.protocol=error -#log4j.logger.org.alfresco.smb.protocol.auth=debug -#log4j.logger.org.alfresco.acegi=debug - -# FTP server debugging -log4j.logger.org.alfresco.ftp.protocol=error -#log4j.logger.org.alfresco.ftp.server=debug - -# WebDAV debugging -#log4j.logger.org.alfresco.webdav.protocol=debug -log4j.logger.org.alfresco.webdav.protocol=info - -# NTLM servlet filters -#log4j.logger.org.alfresco.web.app.servlet.NTLMAuthenticationFilter=debug -#log4j.logger.org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter=debug - -# Kerberos servlet filters -#log4j.logger.org.alfresco.web.app.servlet.KerberosAuthenticationFilter=debug -#log4j.logger.org.alfresco.repo.webdav.auth.KerberosAuthenticationFilter=debug - -# File servers -log4j.logger.org.alfresco.fileserver=warn - -# Repo filesystem debug logging -#log4j.logger.org.alfresco.filesys.repo.ContentDiskDriver=debug - -# Integrity message threshold - if 'failOnViolation' is off, then WARNINGS are generated -log4j.logger.org.alfresco.repo.node.integrity=ERROR - -# Indexer debugging -log4j.logger.org.alfresco.repo.search.Indexer=error -#log4j.logger.org.alfresco.repo.search.Indexer=debug - -log4j.logger.org.alfresco.repo.search.impl.lucene.index=error -log4j.logger.org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl=warn -#log4j.logger.org.alfresco.repo.search.impl.lucene.index=DEBUG - -# Audit debugging -# log4j.logger.org.alfresco.repo.audit=DEBUG -# log4j.logger.org.alfresco.repo.audit.model=DEBUG - -# Property sheet and modelling debugging -# change to error to hide the warnings about missing properties and associations -log4j.logger.alfresco.missingProperties=warn - -# Dictionary/Model debugging -log4j.logger.org.alfresco.repo.dictionary=warn -log4j.logger.org.alfresco.repo.dictionary.types.period=warn - -# Virtualization Server Registry -log4j.logger.org.alfresco.mbeans.VirtServerRegistry=error - -# Spring context runtime property setter -log4j.logger.org.alfresco.util.RuntimeSystemPropertiesSetter=info - -# Debugging options for clustering -log4j.logger.org.alfresco.repo.content.ReplicatingContentStore=error -log4j.logger.org.alfresco.repo.content.replication=error - -#log4j.logger.org.alfresco.repo.deploy.DeploymentServiceImpl=debug - -# Activity service -log4j.logger.org.alfresco.repo.activities=warn - -# User usage tracking -log4j.logger.org.alfresco.repo.usage=info - -# Sharepoint -log4j.logger.org.alfresco.module.vti=info - -# Forms Engine -log4j.logger.org.alfresco.web.config.forms=info -log4j.logger.org.alfresco.web.scripts.forms=info - -# CMIS -log4j.logger.org.alfresco.opencmis=error -log4j.logger.org.alfresco.opencmis.AlfrescoCmisServiceInterceptor=error -log4j.logger.org.alfresco.cmis=error -log4j.logger.org.alfresco.cmis.dictionary=warn -log4j.logger.org.apache.chemistry.opencmis=info -log4j.logger.org.apache.chemistry.opencmis.server.impl.browser.CmisBrowserBindingServlet=OFF -log4j.logger.org.apache.chemistry.opencmis.server.impl.atompub.CmisAtomPubServlet=OFF - -# IMAP -log4j.logger.org.alfresco.repo.imap=info - -# JBPM -# Note: non-fatal errors (eg. logged during job execution) should be handled by Alfresco's retrying transaction handler -log4j.logger.org.jbpm.graph.def.GraphElement=fatal - -#log4j.logger.org.alfresco.repo.googledocs=debug - - -# Web Framework -log4j.logger.org.springframework.extensions.webscripts=info -log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn -log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off - -# Repository -log4j.logger.org.alfresco.repo.web.scripts=warn -log4j.logger.org.alfresco.repo.web.scripts.BaseWebScriptTest=info -log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger=off -log4j.logger.org.alfresco.repo.jscript=error -log4j.logger.org.alfresco.repo.jscript.ScriptLogger=warn -log4j.logger.org.alfresco.repo.cmis.rest.CMISTest=info - -log4j.logger.org.alfresco.repo.domain.schema.script.ScriptBundleExecutorImpl=off -log4j.logger.org.alfresco.repo.domain.schema.script.ScriptExecutorImpl=info - -log4j.logger.org.alfresco.repo.search.impl.solr.facet.SolrFacetServiceImpl=info - -# Bulk Filesystem Import Tool -log4j.logger.org.alfresco.repo.bulkimport=warn - -# Freemarker -# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler -log4j.logger.freemarker.runtime= - -# Metadata extraction -log4j.logger.org.alfresco.repo.content.metadata.AbstractMappingMetadataExtracter=warn - -# Reduces PDFont error level due to ALF-7105 -log4j.logger.org.apache.pdfbox.pdmodel.font.PDSimpleFont=fatal -log4j.logger.org.apache.pdfbox.pdmodel.font.PDFont=fatal -log4j.logger.org.apache.pdfbox.pdmodel.font.PDCIDFont=fatal - -# no index support -log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexIndexer=fatal -log4j.logger.org.alfresco.repo.search.impl.noindex.NoIndexSearchService=fatal - -# lucene index warnings -log4j.logger.org.alfresco.repo.search.impl.lucene.index.IndexInfo=warn - -# Warn about RMI socket bind retries. -log4j.logger.org.alfresco.util.remote.server.socket.HostConfigurableSocketFactory=warn - -log4j.logger.org.alfresco.repo.usage.RepoUsageMonitor=info - -# Authorization -log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationService=info -log4j.logger.org.alfresco.enterprise.repo.authorization.AuthorizationsConsistencyMonitor=warn - - - - - 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 4429f5c4..0a8aae30 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 @@ -15,36 +15,42 @@ UTF-8 - - ${session.executionRootDirectory}/alf_data_dev - - org.alfresco + acs-community-packaging - - 6.0.7-ga 6.0.c + + + + + + + alfresco/alfresco-content-repository-community + alfresco/alfresco-share + + + 1.1.6 - - local + + 1.8 + 1.8 + + + 8180 + 9898 + ${artifactId}-acs + 8080 + 8888 + 5555 + + - - 1.7 - 1.7 @@ -74,6 +80,7 @@ ${alfresco.groupId} alfresco-remote-api + provided @@ -223,85 +230,24 @@ - copy-and-filter-test-resources + copy-and-filter-docker-resources validate copy-resources - ${project.build.testOutputDirectory} + ${project.build.outputDirectory}/docker - - src/test/resources + + docker true - + - - - org.alfresco.maven.plugin - alfresco-maven-plugin - ${alfresco.sdk.version} - - - - true - - true - - true - - - - - - ${alfresco.groupId} - alfresco-share-services - ${alfresco.share.version} - amp - - - - - ${project.groupId} - ${artifactId}-platform-jar - ${project.version} - - - - - ${project.groupId} - integration-tests - ${project.version} - tests - - - - - - - - - ${project.groupId} - ${artifactId}-share-jar - ${project.version} - - - - - org.zeroturnaround @@ -362,6 +308,7 @@ https://artifacts.alfresco.com/nexus/content/groups/private + alfresco-plugin-public diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat index 08c09dc2..5ee7f710 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat @@ -1,12 +1,106 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Dev environment startup script for Alfresco Community :: -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +#set( $symbol_dollar = '$' ) @ECHO OFF -IF "%MAVEN_OPTS%" == "" ( - ECHO The environment variable 'MAVEN_OPTS' is not set, setting it for you - SET MAVEN_OPTS=-Xms256m -Xmx2G -) -ECHO MAVEN_OPTS is set to '%MAVEN_OPTS%' +SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml -mvn clean install alfresco:run \ No newline at end of file +IF [%1]==[] ( + echo "Usage: %0 {build_start|stop|purge|tail|reload_share|reload_acs|build_test|test}" + GOTO END +) + +IF %1==build_start ( + CALL :down + CALL :build + CALL :start + CALL :tail + GOTO END +) +IF %1==start ( + CALL :start + CALL :tail + GOTO END +) +IF %1==stop ( + CALL :down + GOTO END +) +IF %1==purge ( + CALL:down + CALL:purge + GOTO END +) +IF %1==tail ( + CALL :tail + GOTO END +) +IF %1==reload_share ( + CALL :build_share + CALL :start_share + CALL :tail + GOTO END +) +IF %1==reload_acs ( + CALL :build_acs + CALL :start_acs + CALL :tail + GOTO END +) +IF %1==build_test ( + CALL :down + CALL :build + CALL :start + CALL :test + CALL :down + GOTO END +) +IF %1==test ( + CALL :test + GOTO END +) +echo "Usage: %0 {build_start|stop|purge|tail|reload_share|reload_acs|build_test|test}" +:END +EXIT /B %ERRORLEVEL% + +:start + docker volume create alf-acs-volume + docker volume create alf-db-volume + docker volume create alf-ass-volume + docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d +EXIT /B 0 +:start_share + docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-share +EXIT /B 0 +:start_acs + docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-acs +EXIT /B 0 +:down + docker-compose -f "%COMPOSE_FILE_PATH%" down +EXIT /B 0 +:build + docker rmi alfresco-content-services-${rootArtifactId}:development + docker rmi alfresco-share-${rootArtifactId}:development + call mvn clean install -DskipTests +EXIT /B 0 +:build_share + docker-compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-share + docker-compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-share + docker rmi alfresco-share-${rootArtifactId}:development + call mvn clean install -DskipTests -pl ${rootArtifactId}-share-jar +EXIT /B 0 +:build_acs + docker-compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-acs + docker-compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-acs + docker rmi alfresco-content-services-${rootArtifactId}:development + call mvn clean install -DskipTests -pl ${rootArtifactId}-platform-jar +EXIT /B 0 +:tail + docker-compose -f "%COMPOSE_FILE_PATH%" logs -f +EXIT /B 0 +:test + call mvn verify -pl integration-tests +EXIT /B 0 +:purge + docker volume rm alf-acs-volume + docker volume rm alf-db-volume + docker volume rm alf-ass-volume +EXIT /B 0 \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh index 9515fe61..e2fa1b3e 100755 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh @@ -1,7 +1,102 @@ -#!/bin/bash -if [[ -z ${MAVEN_OPTS} ]]; then - echo "The environment variable 'MAVEN_OPTS' is not set, setting it for you"; - MAVEN_OPTS="-Xms256m -Xmx2G" -fi -echo "MAVEN_OPTS is set to '$MAVEN_OPTS'"; -mvn clean install alfresco:run \ No newline at end of file +#set( $symbol_dollar = '$' ) +#!/bin/sh + +export COMPOSE_FILE_PATH=${symbol_dollar}{PWD}/target/classes/docker/docker-compose.yml + +start() { + docker volume create alf-acs-volume + docker volume create alf-db-volume + docker volume create alf-ass-volume + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d +} + +start_share() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d ${rootArtifactId}-share +} + +start_acs() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d ${rootArtifactId}-acs +} + +down() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH down +} + +purge() { + docker volume rm alf-acs-volume + docker volume rm alf-db-volume + docker volume rm alf-ass-volume +} + +build() { + docker rmi alfresco-content-services-${rootArtifactId}:development + docker rmi alfresco-share-${rootArtifactId}:development + mvn clean install -DskipTests=true +} + +build_share() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH kill ${rootArtifactId}-share + yes | docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH rm -f ${rootArtifactId}-share + docker rmi alfresco-share-${rootArtifactId}:development + mvn clean install -DskipTests=true -pl ${rootArtifactId}-share-jar +} + +build_acs() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH kill ${rootArtifactId}-acs + yes | docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH rm -f ${rootArtifactId}-acs + docker rmi alfresco-content-services-${rootArtifactId}:development + mvn clean install -DskipTests=true -pl ${rootArtifactId}-platform-jar +} + +tail() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs -f +} + +test() { + mvn verify -pl integration-tests +} + +case "${symbol_dollar}1" in + build_start) + down + build + start + tail + ;; + start) + start + tail + ;; + stop) + down + ;; + purge) + down + purge + ;; + tail) + tail + ;; + reload_share) + build_share + start_share + tail + ;; + reload_acs) + build_acs + start_acs + tail + ;; + build_test) + down + build + start + test + down + ;; + test) + test + ;; + *) + echo "Usage: ${symbol_dollar}0 {build_start|stop|purge|tail|reload_share|reload_acs|build_test|test}" +esac \ No newline at end of file diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/license/README.md b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/license/README.md deleted file mode 100644 index 8cefbed8..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/license/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Enterprise License location - -Put the Alfresco Enterprise license file in this directory. -It will then be copied into the Platform WAR in the -WEB-INF/classes/alfresco/extension/license directory. - -And then not be part of any other classpaths. - - - diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml deleted file mode 100644 index 07829ea1..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/disable-webscript-caching-context.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - javascript - - - js - - - - false - - - - - true - - - - - - - - - - ${spaces.store} - - - ${spaces.company_home.childname} - - - - - diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/log4j.properties b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/log4j.properties deleted file mode 100644 index aa7a414c..00000000 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/src/test/resources/share/log4j.properties +++ /dev/null @@ -1,54 +0,0 @@ -# Set root logger level to error -log4j.rootLogger=error, Console, File - -###### Console appender definition ####### - -# All outputs currently set to be a ConsoleAppender. -log4j.appender.Console=org.apache.log4j.ConsoleAppender -log4j.appender.Console.layout=org.apache.log4j.PatternLayout - -# use log4j NDC to replace %x with tenant domain / username -log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n -#log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n - -###### File appender definition ####### -log4j.appender.File=org.apache.log4j.DailyRollingFileAppender -log4j.appender.File.File=share.log -log4j.appender.File.Append=true -log4j.appender.File.DatePattern='.'yyyy-MM-dd -log4j.appender.File.layout=org.apache.log4j.PatternLayout -log4j.appender.File.layout.ConversionPattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %m%n - -# Spring -log4j.logger.org.springframework=warn -# Turn off Spring remoting warnings that should really be info or debug. -log4j.logger.org.springframework.remoting.support=error -log4j.logger.org.springframework.util=error - -# MyFaces -log4j.logger.org.apache.myfaces.util.DebugUtils=info -log4j.logger.org.apache.myfaces.el.VariableResolverImpl=error -log4j.logger.org.apache.myfaces.application.jsp.JspViewHandlerImpl=error -log4j.logger.org.apache.myfaces.taglib=error - -# Alfresco -log4j.logger.org.alfresco=error -log4j.logger.org.alfresco.config=warn -log4j.logger.org.alfresco.config.JndiObjectFactoryBean=warn -log4j.logger.org.alfresco.web=info - -# Web Framework -log4j.logger.org.springframework.extensions.webscripts=info -log4j.logger.org.springframework.extensions.webscripts.ScriptLogger=warn -log4j.logger.org.springframework.extensions.webscripts.ScriptDebugger=off - -# Freemarker -# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler -log4j.logger.freemarker.runtime= - -#----------------------------------------------------------------------- -# Custom Share module logging goes here... -#----------------------------------------------------------------------- - - - From 82cb58f4724562f449d9cdaf0428563fff190168 Mon Sep 17 00:00:00 2001 From: Jose Luis Osorno Date: Wed, 19 Dec 2018 14:13:48 +0100 Subject: [PATCH 2/5] Platform archetype - Switch to docker environment Change the platform project to add the required configuration to execute it as an orchestrated docker environment that includes ACS, Share (optional), PostgreSQL and ASS. This will replace the use of the Alfresco Maven Plugin. New bash scripts has been added to manage the docker environment. A new docker-compose file configure the docker environment. All the unnecessary files and configuration have been removed from the archetype. --- .../resources/archetype-resources/run.bat | 4 +- .../main/resources/archetype-resources/run.sh | 2 +- .../META-INF/maven/archetype-metadata.xml | 63 +-- .../resources/archetype-resources/debug.bat | 9 - .../resources/archetype-resources/debug.sh | 3 - .../docker/docker-compose.yml | 54 +++ .../resources/archetype-resources/pom.xml | 457 +++++++++++------- .../resources/archetype-resources/run.bat | 79 ++- .../main/resources/archetype-resources/run.sh | 70 ++- .../src/main/assembly/amp.xml | 6 +- .../src/main/docker/Dockerfile | 18 + .../docker}/alfresco-global.properties | 30 +- .../docker}/dev-log4j.properties | 11 +- .../disable-webscript-caching-context.xml | 0 .../docker/hotswap-agent.properties} | 11 +- .../src/main/docker/license/README.md | 6 + .../src/main/java/platformsample/Demo.java | 17 + .../java/platformsample/DemoComponent.java | 33 +- .../platformsample/HelloWorldWebScript.java | 33 +- .../context/service-context.xml | 30 +- .../module/__artifactId__/module-context.xml | 3 +- .../HelloWorldWebScriptControllerTest.java | 56 +++ .../src/test/license/README.md | 10 - 23 files changed, 685 insertions(+), 320 deletions(-) delete mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.bat delete mode 100755 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.sh create mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml create mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/docker/Dockerfile rename archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/{test/properties/local => main/docker}/alfresco-global.properties (80%) rename archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/{test/resources/alfresco/extension => main/docker}/dev-log4j.properties (97%) rename archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/{test/resources/alfresco/extension => main/docker}/disable-webscript-caching-context.xml (100%) rename archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/{test/resources/platform-hotswap-agent.properties => main/docker/hotswap-agent.properties} (85%) create mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/docker/license/README.md create mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/java/platformsample/HelloWorldWebScriptControllerTest.java delete mode 100644 archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat index 5ee7f710..83244366 100644 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.bat @@ -4,7 +4,7 @@ SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml IF [%1]==[] ( - echo "Usage: %0 {build_start|stop|purge|tail|reload_share|reload_acs|build_test|test}" + echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}" GOTO END ) @@ -57,7 +57,7 @@ IF %1==test ( CALL :test GOTO END ) -echo "Usage: %0 {build_start|stop|purge|tail|reload_share|reload_acs|build_test|test}" +echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}" :END EXIT /B %ERRORLEVEL% diff --git a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh index e2fa1b3e..c8888bc0 100755 --- a/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh +++ b/archetypes/alfresco-allinone-archetype/src/main/resources/archetype-resources/run.sh @@ -98,5 +98,5 @@ case "${symbol_dollar}1" in test ;; *) - echo "Usage: ${symbol_dollar}0 {build_start|stop|purge|tail|reload_share|reload_acs|build_test|test}" + echo "Usage: ${symbol_dollar}0 {build_start|start|stop|purge|tail|reload_share|reload_acs|build_test|test}" esac \ No newline at end of file diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/alfresco-platform-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml index 208bbe40..b5bf1590 100644 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -11,12 +11,46 @@ + + docker + + ** + + src/main/assembly ** + + src/main/docker/license + + ** + + + + src/main/docker + + license/** + Dockerfile + disable-webscript-caching-context.xml + + + **/*.properties + + + + src/main/docker + + **/*.properties + + + license/** + Dockerfile + disable-webscript-caching-context.xml + + src/main/java @@ -45,37 +79,8 @@ - src/test/resources - - **/dev-log4j.properties - - - - src/test/resources - - ** - - - **/dev-log4j.properties - - - - src/test/properties - - **/*.properties - - - - src/test/license - - ** - - - - debug.sh - debug.bat run.sh run.bat README.md diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.bat b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.bat deleted file mode 100644 index 70f01448..00000000 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.bat +++ /dev/null @@ -1,9 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Dev environment startup script for Alfresco Community :: -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -@echo off - -set MAVEN_OPTS=-Xms256m -Xmx2G - -mvnDebug clean install alfresco:run - diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.sh b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.sh deleted file mode 100755 index c8f887ea..00000000 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -MAVEN_OPTS="-Xms256m -Xmx2G" mvnDebug clean install alfresco:run diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml new file mode 100644 index 00000000..99f9c264 --- /dev/null +++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml @@ -0,0 +1,54 @@ +#set( $symbol_dollar = '$' ) +version: '3.4' +services: + ${rootArtifactId}-share: + image: ${symbol_dollar}{docker.share.image}:${symbol_dollar}{alfresco.share.version} + environment: + REPO_HOST: ${rootArtifactId}-acs + REPO_PORT: 8080 + ports: + - "${symbol_dollar}{share.port}:8080" + ${rootArtifactId}-acs: + image: alfresco-content-services-${rootArtifactId}:development + build: + dockerfile: ./Dockerfile + context: ../../../target + environment: + CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888" + ports: + - "${symbol_dollar}{acs.port}:8080" + - "${symbol_dollar}{acs.debug.port}:8888" + volumes: + - alf-acs-volume:/usr/local/tomcat/alf_data + depends_on: + - ${rootArtifactId}-postgres + ${rootArtifactId}-postgres: + image: postgres:9.6 + environment: + POSTGRES_DB: alfresco + POSTGRES_USER: alfresco + POSTGRES_PASSWORD: alfresco + ports: + - "${symbol_dollar}{postgres.port}:5432" + volumes: + - alf-db-volume:/var/lib/postgresql/data + ${rootArtifactId}-ass: + image: alfresco/alfresco-search-services:1.2.0 + environment: + SOLR_ALFRESCO_HOST: ${rootArtifactId}-acs + SOLR_ALFRESCO_PORT: 8080 + SOLR_SOLR_HOST: ${rootArtifactId}-ass + SOLR_SOLR_PORT: 8983 + SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive + ports: + - "8983:8983" + volumes: + - alf-ass-volume:/opt/alfresco-search-services/contentstore + - alf-ass-volume:/opt/alfresco-search-services/data +volumes: + alf-acs-volume: + external: true + alf-db-volume: + external: true + alf-ass-volume: + external: true \ No newline at end of file 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 188d5941..e8d00f36 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 @@ -5,8 +5,8 @@ ${groupId} ${artifactId} ${version} - ${artifactId} Platform Jar Module - SDK 4.0 - Platform JAR Module (to be included in the alfresco.war) - SDK 4.0 + ${artifactId} Platform/Repository JAR Module + Platform/Repo JAR Module (to be included in the alfresco.war) jar @@ -15,49 +15,91 @@ UTF-8 - - ${session.executionRootDirectory}/alf_data_dev - - org.alfresco - + acs-community-packaging - - 6.0.7-ga - 6.0.c + + + + - + + + alfresco/alfresco-content-repository-community + alfresco/alfresco-share + + + 1.1.6 - - local + + 1.8 + 1.8 + + + 8180 + 9898 + ${artifactId}-acs + 8080 + 8888 + 5555 + + - - 1.7 - 1.7 - + + + + + junit + junit + 4.12 + test + + + org.mockito + mockito-all + 1.9.5 + test + + + org.apache.httpcomponents + httpclient + 4.5.2 + test + + + + + ${alfresco.groupId} + alfresco-remote-api + provided + + + + + org.alfresco.maven + alfresco-rad + ${alfresco.sdk.version} + test + + + + ${alfresco.groupId} ${alfresco.bomDependencyArtifactId} @@ -68,100 +110,218 @@ - - - - ${alfresco.groupId} - alfresco-remote-api - - - - - org.alfresco.maven - alfresco-rad - ${alfresco.sdk.version} - test - - - - - org.springframework - spring-context - test - - - - - org.apache.httpcomponents - httpclient - 4.5.2 - test - - - - - + - org.alfresco.maven.plugin - alfresco-maven-plugin - ${alfresco.sdk.version} + 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 + + - start-alfresco + copy-and-filter-docker-compose-resources + validate - it + copy-resources - pre-integration-test + + ${project.build.outputDirectory}/docker + + + docker + true + + + + + + copy-and-filter-docker-resources + validate + + copy-resources + + + ${project.build.directory} + + + src/main/docker + true + + **/*.jar + **/*.so + + + + + + + copy-and-filter-docker-resources-non-filtered + validate + + copy-resources + + + ${project.build.directory} + + + src/main/docker + false + + **/*.jar + **/*.so + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.0.2 + + + + copy-repo-extension + pre-integration-test + + copy + + + + + ${groupId} + ${artifactId} + ${version} + false + ${project.build.directory}/extensions + + + + + org.alfresco.maven + alfresco-rad + ${alfresco.sdk.version} + false + ${project.build.directory}/extensions + + + junit + junit + 4.12 + false + ${project.build.directory}/extensions + + + org.mockito + mockito-all + 1.9.5 + false + ${project.build.directory}/extensions + + + org.apache.httpcomponents + httpclient + 4.5.2 + false + ${project.build.directory}/extensions + + + + + + + copy-third-party-dependencies + pre-integration-test + + copy-dependencies + + + ${project.build.directory}/extensions + runtime + + + + + + + + org.apache.maven.plugins + maven-failsafe-plugin + 2.19.1 - - true - - false - - true - - - - - - - ${alfresco.groupId} - alfresco-share-services - ${alfresco.share.version} - amp - - - - - ${project.groupId} - ${project.artifactId} - ${project.version} - - + + ${test.acs.endpoint.path} + + + + integration-test + integration-test + + integration-test + + + + verify-test + verify + + verify + + + + + + org.apache.maven.surefire + surefire-junit47 + 2.19.1 + + + Build an AMP if 3rd party libs are needed by the extensions + JARs are the default artifact produced in your modules, if you want to build an amp for each module + you have to enable this plugin and inspect the src/main/assembly.xml file if you want to customize + the layout of your AMP. The end result is that Maven will produce both a JAR file and an AMP with your + module. + --> + ${project.build.outputDirectory} + ${project.build.testOutputDirectory} @@ -224,73 +382,6 @@ 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 - - - - - - - - org.apache.maven.plugins - maven-failsafe-plugin - 2.19.1 - - - integration-test - integration-test - - integration-test - - - - verify-test - verify - - verify - - - - - - org.apache.maven.surefire - surefire-junit47 - 2.19.1 - - - @@ -307,10 +398,6 @@ true - - - - - + diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/module-context.xml b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/module-context.xml index f0e3a351..ef2fa267 100644 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/module-context.xml +++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/module-context.xml @@ -20,7 +20,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> - + + diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/java/platformsample/HelloWorldWebScriptControllerTest.java b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/java/platformsample/HelloWorldWebScriptControllerTest.java new file mode 100644 index 00000000..d0813fe4 --- /dev/null +++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/java/platformsample/HelloWorldWebScriptControllerTest.java @@ -0,0 +1,56 @@ +#set($symbol_pound='#') +#set($symbol_dollar='$') +#set($symbol_escape='\' ) +/** + * Copyright (C) 2017 Alfresco Software Limited. + *

+ * This file is part of the Alfresco SDK project. + *

+ * 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 ${package}.platformsample; + +import org.junit.Test; +import org.mockito.Mockito; +import org.springframework.extensions.webscripts.*; + +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +/** + * Unit testing the Web Script Java Controller + * + * @author martin.bergljung@alfresco.com + * @version 1.0 + * @since 3.0 + */ +public class HelloWorldWebScriptControllerTest { + + @Test + public void testController() { + WebScriptRequest req = Mockito.mock(WebScriptRequest.class); + Status status = Mockito.mock(Status.class); + Cache cache = Mockito.mock(Cache.class); + + String helloPropName = "fromJava"; + String helloPropExpectedValue = "HelloFromJava"; + HelloWorldWebScript ws = new HelloWorldWebScript(); + Map model = ws.executeImpl(req, status, cache); + + assertNotNull("Response from Web Script Java Controller is null", model); + assertEquals("Incorrect Web Script Java Controller Response", + helloPropExpectedValue, model.get(helloPropName)); + } +} \ No newline at end of file diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md deleted file mode 100644 index 8cefbed8..00000000 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/test/license/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Enterprise License location - -Put the Alfresco Enterprise license file in this directory. -It will then be copied into the Platform WAR in the -WEB-INF/classes/alfresco/extension/license directory. - -And then not be part of any other classpaths. - - - From 0ca57b20a16d5611dc3a5e508e4aa6df725743fa Mon Sep 17 00:00:00 2001 From: Jose Luis Osorno Date: Wed, 19 Dec 2018 14:20:21 +0100 Subject: [PATCH 3/5] Platform archetype - Make share container optional Comment out the share container in the docker-compose file because it is optional in this archetype. --- .../archetype-resources/docker/docker-compose.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml index 99f9c264..59df56eb 100644 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml +++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml @@ -1,13 +1,14 @@ #set( $symbol_dollar = '$' ) version: '3.4' services: - ${rootArtifactId}-share: - image: ${symbol_dollar}{docker.share.image}:${symbol_dollar}{alfresco.share.version} - environment: - REPO_HOST: ${rootArtifactId}-acs - REPO_PORT: 8080 - ports: - - "${symbol_dollar}{share.port}:8080" +# Optional +# ${rootArtifactId}-share: +# image: ${symbol_dollar}{docker.share.image}:${symbol_dollar}{alfresco.share.version} +# environment: +# REPO_HOST: ${rootArtifactId}-acs +# REPO_PORT: 8080 +# ports: +# - "${symbol_dollar}{share.port}:8080" ${rootArtifactId}-acs: image: alfresco-content-services-${rootArtifactId}:development build: From eae6c13de59cf860a0c1c9c590596fb5cae74b0e Mon Sep 17 00:00:00 2001 From: Jose Luis Osorno Date: Wed, 19 Dec 2018 15:35:04 +0100 Subject: [PATCH 4/5] Share archetype - Switch to docker environment Change the platform project to add the required configuration to execute it as an orchestrated docker environment that includes ACS (optional), Share, PostgreSQL and ASS. This will replace the use of the Alfresco Maven Plugin. New bash scripts has been added to manage the docker environment. A new docker-compose file configure the docker environment. All the unnecessary files and configuration have been removed from the archetype. --- .../alfresco-allinone-archetype/pom.xml | 4 - .../alfresco-platform-jar-archetype/pom.xml | 4 - .../resources/archetype-resources/pom.xml | 1 - .../src/main/docker/hotswap-agent.properties | 4 +- .../alfresco-share-jar-archetype/pom.xml | 4 - .../META-INF/maven/archetype-metadata.xml | 37 +- .../resources/archetype-resources/debug.bat | 10 - .../resources/archetype-resources/debug.sh | 4 - .../docker/docker-compose.yml | 65 ++++ .../resources/archetype-resources/pom.xml | 350 +++++++++++------- .../resources/archetype-resources/run.bat | 98 ++++- .../main/resources/archetype-resources/run.sh | 87 ++++- .../src/main/assembly/amp.xml | 6 +- .../src/main/docker/Dockerfile | 16 + .../docker/hotswap-agent.properties} | 12 +- .../share => main/docker}/log4j.properties | 7 +- .../src/main/docker/share-config-custom.xml | 105 ++++++ .../js/tutorials/widgets/TemplateWidget.js | 0 .../tutorials/widgets/css/TemplateWidget.css | 0 .../widgets/i18n/TemplateWidget.properties | 0 .../widgets/templates/TemplateWidget.html | 0 .../META-INF/share-config-custom.xml | 8 +- .../module.properties | 0 ...factId__-slingshot-application-context.xml | 2 +- 24 files changed, 632 insertions(+), 192 deletions(-) delete mode 100644 archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.bat delete mode 100755 archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.sh create mode 100644 archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml create mode 100644 archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/docker/Dockerfile rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/{test/resources/share-hotswap-agent.properties => main/docker/hotswap-agent.properties} (85%) rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/{test/resources/share => main/docker}/log4j.properties (93%) create mode 100644 archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/docker/share-config-custom.xml rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/{__artifactId__ => __rootArtifactId__-share-jar}/js/tutorials/widgets/TemplateWidget.js (100%) rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/{__artifactId__ => __rootArtifactId__-share-jar}/js/tutorials/widgets/css/TemplateWidget.css (100%) rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/{__artifactId__ => __rootArtifactId__-share-jar}/js/tutorials/widgets/i18n/TemplateWidget.properties (100%) rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/{__artifactId__ => __rootArtifactId__-share-jar}/js/tutorials/widgets/templates/TemplateWidget.html (100%) rename archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/{__artifactId__ => __rootArtifactId__-share-jar}/module.properties (100%) diff --git a/archetypes/alfresco-allinone-archetype/pom.xml b/archetypes/alfresco-allinone-archetype/pom.xml index a3bca5b8..60746654 100644 --- a/archetypes/alfresco-allinone-archetype/pom.xml +++ b/archetypes/alfresco-allinone-archetype/pom.xml @@ -23,8 +23,6 @@ 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 @@ -35,8 +33,6 @@ 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 diff --git a/archetypes/alfresco-platform-jar-archetype/pom.xml b/archetypes/alfresco-platform-jar-archetype/pom.xml index 9ed74b7d..04ec6adb 100644 --- a/archetypes/alfresco-platform-jar-archetype/pom.xml +++ b/archetypes/alfresco-platform-jar-archetype/pom.xml @@ -24,8 +24,6 @@ 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,8 +34,6 @@ 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 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 e8d00f36..bcb87182 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 @@ -43,7 +43,6 @@ 8180 - 9898 ${artifactId}-acs 8080 8888 diff --git a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/docker/hotswap-agent.properties b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/docker/hotswap-agent.properties index d94563e7..b86754f3 100644 --- a/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/docker/hotswap-agent.properties +++ b/archetypes/alfresco-platform-jar-archetype/src/main/resources/archetype-resources/src/main/docker/hotswap-agent.properties @@ -26,12 +26,12 @@ disabledPlugins=Hibernate,Spring # # Load web application resources (such as HTML, JSP, CSS, ...) from this directory prior to default processing. # Use this setting to set to serve resources from source directory directly (e.g. src/main/webapp). -extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform-jar/target/classes/META-INF/resources; +extraWebappContext=/usr/local/tomcat/hotswap-agent/${rootArtifactId}/target/classes/META-INF/resources; # Load static web resources from different directory. # # This setting is dependent on application server plugin(Jetty, Tomcat, JBoss, ...) -webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}-platform-jar/target/classes/META-INF/resources; +webappDir=/usr/local/tomcat/hotswap-agent/${rootArtifactId}/target/classes/META-INF/resources; # Watch for changes in a directory (resources only). # diff --git a/archetypes/alfresco-share-jar-archetype/pom.xml b/archetypes/alfresco-share-jar-archetype/pom.xml index 54f19391..b11da761 100644 --- a/archetypes/alfresco-share-jar-archetype/pom.xml +++ b/archetypes/alfresco-share-jar-archetype/pom.xml @@ -26,8 +26,6 @@ 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 @@ -38,8 +36,6 @@ 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 diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml b/archetypes/alfresco-share-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml index ea9d6425..62c41f07 100644 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml @@ -11,12 +11,38 @@ + + docker + + ** + + src/main/assembly ** + + src/main/docker + + Dockerfile + share-config-custom.xml + + + **/*.properties + + + + src/main/docker + + **/*.properties + + + Dockerfile + share-config-custom.xml + + src/main/java @@ -51,18 +77,9 @@ **/__artifactId__-example-widgets.xml - - src/test/resources - - ** - - - - + - debug.sh - debug.bat run.sh run.bat README.md diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.bat b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.bat deleted file mode 100644 index 40ba50e2..00000000 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.bat +++ /dev/null @@ -1,10 +0,0 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Dev environment startup script for Alfresco Community. :: -:: :: -:: Note. requires Alfresco.war to be running in another :: -:: Tomcat on port 8080. :: -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -@echo off - -mvnDebug clean install alfresco:run - diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.sh b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.sh deleted file mode 100755 index 773d0ac8..00000000 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/debug.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -# Note. requires Alfresco.war to be running in another Tomcat on port 8080 - -mvnDebug clean install alfresco:run diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml new file mode 100644 index 00000000..9c9d4961 --- /dev/null +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/docker/docker-compose.yml @@ -0,0 +1,65 @@ +#set( $symbol_dollar = '$' ) +version: '3.4' +services: + ${rootArtifactId}-share: + image: alfresco-share-${rootArtifactId}:development + build: + dockerfile: ./Dockerfile + context: ../../../target + environment: + CATALINA_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888" + REPO_HOST: ${rootArtifactId}-acs + REPO_PORT: 8080 + ports: + - "${symbol_dollar}{share.port}:8080" + - "${symbol_dollar}{share.debug.port}:8888" + ${rootArtifactId}-acs: + image: ${symbol_dollar}{docker.acs.image}:${symbol_dollar}{alfresco.platform.version} + environment: + JAVA_OPTS: " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://${rootArtifactId}-postgres:5432/alfresco + -Dsolr.host=${rootArtifactId}-ass + -Dsolr.port=8983 + -Dsolr.secureComms=none + -Dsolr.base.url=/solr + -Dindex.subsystem.name=solr6 + " + ports: + - "${symbol_dollar}{acs.port}:8080" + volumes: + - alf-acs-volume:/usr/local/tomcat/alf_data + depends_on: + - ${rootArtifactId}-postgres + ${rootArtifactId}-postgres: + image: postgres:9.6 + environment: + POSTGRES_DB: alfresco + POSTGRES_USER: alfresco + POSTGRES_PASSWORD: alfresco + ports: + - "${symbol_dollar}{postgres.port}:5432" + volumes: + - alf-db-volume:/var/lib/postgresql/data + ${rootArtifactId}-ass: + image: alfresco/alfresco-search-services:1.2.0 + environment: + SOLR_ALFRESCO_HOST: ${rootArtifactId}-acs + SOLR_ALFRESCO_PORT: 8080 + SOLR_SOLR_HOST: ${rootArtifactId}-ass + SOLR_SOLR_PORT: 8983 + SOLR_CREATE_ALFRESCO_DEFAULTS: alfresco,archive + ports: + - "8983:8983" + volumes: + - alf-ass-volume:/opt/alfresco-search-services/contentstore + - alf-ass-volume:/opt/alfresco-search-services/data +volumes: + alf-acs-volume: + external: true + alf-db-volume: + external: true + alf-ass-volume: + external: true \ No newline at end of file diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml index 8887bc54..c137fca3 100644 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml @@ -5,158 +5,108 @@ ${groupId} ${artifactId} ${version} - ${artifactId} Share Jar Module - SDK 4.0 - Share JAR Module (to be included in the share.war) - SDK 4.0 + ${artifactId} Share JAR Module + Sample Share JAR Module (to be included in the share.war) jar - @@alfresco.sdk.parent.version@@ + @@alfresco.sdk.parent.version@@ UTF-8 org.alfresco + + acs-community-packaging + 6.0.7-ga + 6.0.c + + + + - - 5.2.d - - - community - - - 6.11 - - - 8081 + + + alfresco/alfresco-content-repository-community + alfresco/alfresco-share + + + 1.1.6 - - 1.7 - 1.7 + + 1.8 + 1.8 + + + 8180 + 9898 + ${artifactId}-acs + 8080 + 5555 + + + - ${alfresco.groupId} share - ${alfresco.share.version} classes - provided - - - - org.alfresco.surf - spring-surf-api - ${alfresco.surf.version} - provided + + + + + ${alfresco.groupId} + ${alfresco.bomDependencyArtifactId} + ${alfresco.platform.version} + pom + import + + + + ${alfresco.groupId} + share + ${alfresco.share.version} + war + provided + + + ${alfresco.groupId} + share + ${alfresco.share.version} + classes + provided + + + ${alfresco.groupId} + alfresco-web-framework-commons + ${alfresco.share.version} + classes + provided + + + + + - - - org.alfresco.maven.plugin - alfresco-maven-plugin - ${alfresco.sdk.version} - - - - false - - - true - - - - - - ${project.groupId} - ${project.artifactId} - ${project.version} - - - - - - - - maven-assembly-plugin - 2.6 - - - build-amp-file - package - - single - - - false - src/main/assembly/amp.xml - - - - - - org.alfresco.maven.plugin - alfresco-maven-plugin - ${alfresco.sdk.version} - - - - - - - org.zeroturnaround - jrebel-maven-plugin - ${jrebel.version} - - - generate-rebel-xml - process-resources - - generate - - - - - - - all - - - - - - - - - true - - - + org.apache.maven.plugins maven-resources-plugin @@ -190,6 +140,150 @@ js + + + copy-and-filter-docker-compose-resources + validate + + copy-resources + + + ${project.build.outputDirectory}/docker + + + docker + true + + + + + + copy-and-filter-docker-resources + validate + + copy-resources + + + ${project.build.directory} + + + src/main/docker + true + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.0.2 + + + + copy-repo-extension + pre-integration-test + + copy + + + + + ${groupId} + ${artifactId} + ${version} + false + ${project.build.directory}/extensions + + + + + + + copy-third-party-dependencies + pre-integration-test + + copy-dependencies + + + ${project.build.directory}/extensions + runtime + + + + + + + + + + + org.zeroturnaround + jrebel-maven-plugin + ${jrebel.version} + + + generate-rebel-xml + process-resources + + generate + + + + + + + all + + + ${project.build.outputDirectory} + ${project.build.testOutputDirectory} + + + + + + true + @@ -231,6 +325,7 @@ https://artifacts.alfresco.com/nexus/content/groups/private + alfresco-plugin-public @@ -245,5 +340,4 @@ - - + \ No newline at end of file diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.bat b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.bat index 8c88313b..fa672748 100644 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.bat +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.bat @@ -1,9 +1,91 @@ -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: Dev environment startup script for Alfresco Community. :: -:: :: -:: Note. requires Alfresco.war to be running in another :: -:: Tomcat on port 8080. :: -:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -@echo off +#set( $symbol_dollar = '$' ) +@ECHO OFF -mvn clean install alfresco:run +SET COMPOSE_FILE_PATH=%CD%\target\classes\docker\docker-compose.yml + +IF [%1]==[] ( + echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|build_test|test}" + GOTO END +) + +IF %1==build_start ( + CALL :down + CALL :build + CALL :start + CALL :tail + GOTO END +) +IF %1==start ( + CALL :start + CALL :tail + GOTO END +) +IF %1==stop ( + CALL :down + GOTO END +) +IF %1==purge ( + CALL:down + CALL:purge + GOTO END +) +IF %1==tail ( + CALL :tail + GOTO END +) +IF %1==reload_share ( + CALL :build_share + CALL :start_share + CALL :tail + GOTO END +) +IF %1==build_test ( + CALL :down + CALL :build + CALL :start + CALL :test + CALL :down + GOTO END +) +IF %1==test ( + CALL :test + GOTO END +) +echo "Usage: %0 {build_start|start|stop|purge|tail|reload_share|build_test|test}" +:END +EXIT /B %ERRORLEVEL% + +:start + docker volume create alf-acs-volume + docker volume create alf-db-volume + docker volume create alf-ass-volume + docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d +EXIT /B 0 +:start_share + docker-compose -f "%COMPOSE_FILE_PATH%" up --build -d ${rootArtifactId}-share +EXIT /B 0 +:down + docker-compose -f "%COMPOSE_FILE_PATH%" down +EXIT /B 0 +:build + docker rmi alfresco-content-services-${rootArtifactId}:development + docker rmi alfresco-share-${rootArtifactId}:development + call mvn clean install -DskipTests +EXIT /B 0 +:build_share + docker-compose -f "%COMPOSE_FILE_PATH%" kill ${rootArtifactId}-share + docker-compose -f "%COMPOSE_FILE_PATH%" rm -f ${rootArtifactId}-share + docker rmi alfresco-share-${rootArtifactId}:development + call mvn clean install -DskipTests +EXIT /B 0 +:tail + docker-compose -f "%COMPOSE_FILE_PATH%" logs -f +EXIT /B 0 +:test + call mvn verify -pl +EXIT /B 0 +:purge + docker volume rm alf-acs-volume + docker volume rm alf-db-volume + docker volume rm alf-ass-volume +EXIT /B 0 \ No newline at end of file diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.sh b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.sh index 45abd23a..1ee67489 100755 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.sh +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/run.sh @@ -1,4 +1,85 @@ -#!/bin/bash -# Note. requires Alfresco.war to be running in another Tomcat on port 8080 +#set( $symbol_dollar = '$' ) +#!/bin/sh -mvn clean install alfresco:run +export COMPOSE_FILE_PATH=${symbol_dollar}{PWD}/target/classes/docker/docker-compose.yml + +start() { + docker volume create alf-acs-volume + docker volume create alf-db-volume + docker volume create alf-ass-volume + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d +} + +start_share() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH up --build -d ${rootArtifactId}-share +} + +down() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH down +} + +purge() { + docker volume rm alf-acs-volume + docker volume rm alf-db-volume + docker volume rm alf-ass-volume +} + +build() { + docker rmi alfresco-share-${rootArtifactId}:development + mvn clean install -DskipTests=true +} + +build_share() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH kill ${rootArtifactId}-share + yes | docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH rm -f ${rootArtifactId}-share + docker rmi alfresco-share-${rootArtifactId}:development + mvn clean install -DskipTests=true +} + +tail() { + docker-compose -f ${symbol_dollar}COMPOSE_FILE_PATH logs -f +} + +test() { + mvn verify -pl +} + +case "${symbol_dollar}1" in + build_start) + down + build + start + tail + ;; + start) + start + tail + ;; + stop) + down + ;; + purge) + down + purge + ;; + tail) + tail + ;; + reload_share) + build_share + start_share + tail + ;; + build_test) + down + build + start + test + down + ;; + test) + test + ;; + *) + echo "Usage: ${symbol_dollar}0 {build_start|start|stop|purge|tail|reload_share|build_test|test}" +esac \ 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..512c9071 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 @@ -1,7 +1,7 @@ + xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> + production + + + + false + + + + + + + + + true + + false + + + + + + + + + + + + + + alfresco-noauth + Alfresco - unauthenticated access + Access to Alfresco Repository WebScripts that do not require authentication + alfresco + http://${acs.host}:8080/alfresco/s + none + + + + alfresco + Alfresco - user access + Access to Alfresco Repository WebScripts that require user authentication + alfresco + http://${acs.host}:8080/alfresco/s + user + + + + alfresco-feed + Alfresco Feed + Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet + http + http://${acs.host}:8080/alfresco/s + true + user + + + + activiti-admin + Activiti Admin UI - user access + Access to Activiti Admin UI, that requires user authentication + activiti-admin-connector + http://${acs.host}:8080/alfresco/activiti-admin + user + + + + alfresco-api + alfresco + Alfresco Public API - user access + Access to Alfresco Repository Public API that require user authentication. + This makes use of the authentication that is provided by parent 'alfresco' endpoint. + alfresco + http://${acs.host}:8080/alfresco/api + user + + + + + diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/TemplateWidget.js b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/TemplateWidget.js similarity index 100% rename from archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/TemplateWidget.js rename to archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/TemplateWidget.js diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/css/TemplateWidget.css b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/css/TemplateWidget.css similarity index 100% rename from archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/css/TemplateWidget.css rename to archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/css/TemplateWidget.css diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/i18n/TemplateWidget.properties b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/i18n/TemplateWidget.properties similarity index 100% rename from archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/i18n/TemplateWidget.properties rename to archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/i18n/TemplateWidget.properties diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/templates/TemplateWidget.html b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/templates/TemplateWidget.html similarity index 100% rename from archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__artifactId__/js/tutorials/widgets/templates/TemplateWidget.html rename to archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/resources/__rootArtifactId__-share-jar/js/tutorials/widgets/templates/TemplateWidget.html diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/share-config-custom.xml b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/share-config-custom.xml index b7270ba9..0340f294 100644 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/share-config-custom.xml +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/META-INF/share-config-custom.xml @@ -11,10 +11,10 @@ --> + Make custom types and aspects visible in "Change Type" and "Manage Aspects" actions. + This will also make them visible when creating rules. + (will be merged with out-of-the-box configured types and aspects) + =============================================================================================================--> diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/module.properties b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__rootArtifactId__-share-jar/module.properties similarity index 100% rename from archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__artifactId__/module.properties rename to archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__rootArtifactId__-share-jar/module.properties diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/web-extension/__artifactId__-slingshot-application-context.xml b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/web-extension/__artifactId__-slingshot-application-context.xml index 22741e02..277751fa 100644 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/web-extension/__artifactId__-slingshot-application-context.xml +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/web-extension/__artifactId__-slingshot-application-context.xml @@ -17,7 +17,7 @@ --> - From c4dd6b01e6fbaec1faaa507e28b0047e8f130732 Mon Sep 17 00:00:00 2001 From: Jose Luis Osorno Date: Wed, 19 Dec 2018 16:06:27 +0100 Subject: [PATCH 5/5] Archetypes - Add properties to configure versions Add properties to configure the versions of ACS and Share to be used in the archetypes. --- .../resources/archetype-resources/pom.xml | 19 +++++-------------- .../resources/archetype-resources/pom.xml | 19 +++++-------------- .../resources/archetype-resources/pom.xml | 19 +++++-------------- pom.xml | 6 ++++++ 4 files changed, 21 insertions(+), 42 deletions(-) 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 0a8aae30..9419f9d5 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 @@ -17,22 +17,13 @@ org.alfresco - - acs-community-packaging - 6.0.7-ga - 6.0.c - - - - + @@alfresco.bomDependency.artifactId@@ + @@alfresco.platform.version@@ + @@alfresco.share.version@@ - - alfresco/alfresco-content-repository-community - alfresco/alfresco-share - - - + @@alfresco.platform.docker.image@@ + @@alfresco.share.docker.image@@ 1.1.6 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 bcb87182..138d0992 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 @@ -17,22 +17,13 @@ org.alfresco - - acs-community-packaging - 6.0.7-ga - 6.0.c - - - - + @@alfresco.bomDependency.artifactId@@ + @@alfresco.platform.version@@ + @@alfresco.share.version@@ - - alfresco/alfresco-content-repository-community - alfresco/alfresco-share - - - + @@alfresco.platform.docker.image@@ + @@alfresco.share.docker.image@@ 1.1.6 diff --git a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml index c137fca3..215d0c3e 100644 --- a/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml +++ b/archetypes/alfresco-share-jar-archetype/src/main/resources/archetype-resources/pom.xml @@ -17,22 +17,13 @@ org.alfresco - - acs-community-packaging - 6.0.7-ga - 6.0.c - - - - + @@alfresco.bomDependency.artifactId@@ + @@alfresco.platform.version@@ + @@alfresco.share.version@@ - - alfresco/alfresco-content-repository-community - alfresco/alfresco-share - - - + @@alfresco.platform.docker.image@@ + @@alfresco.share.docker.image@@ 1.1.6 diff --git a/pom.xml b/pom.xml index bb9bb6a4..68301c15 100644 --- a/pom.xml +++ b/pom.xml @@ -126,6 +126,12 @@ ${project.version} */*-enterprise*/* + acs-community-packaging + 6.0.7-ga + 6.0.c + alfresco/alfresco-content-repository-community + alfresco/alfresco-share + 5.2.f 5.2.0