diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.ps1 b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.ps1 index 61bcb2f..01d9964 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.ps1 +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.ps1 @@ -5,27 +5,27 @@ function discoverArtifactId { function rebuild { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } function start_ { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } function start_log { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad "-Ddocker.showLogs" process-classes + mvn -Drad "-Ddocker.showLogs" process-test-classes } function stop_ { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop (docker container ls -q --filter name=${ARTIFACT_ID}-*) + docker container stop (docker container ls -q --filter name="^/${ARTIFACT_ID}") echo "Removing containers ..." - docker container rm (docker container ls -aq --filter name=${ARTIFACT_ID}-*) + docker container rm (docker container ls -aq --filter name="^/${ARTIFACT_ID}") } function tail_logs { @@ -34,12 +34,12 @@ function tail_logs { ) discoverArtifactId - docker container logs -f (docker container ls -q --filter name=${ARTIFACT_ID}-${container}) + docker container logs -f (docker container ls -q --filter name="^/${ARTIFACT_ID}-${container}$") } function list { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } switch ($args[0]) { diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.sh b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.sh index 7cb0a80..eb8c2bc 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.sh +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/rad.sh @@ -1,42 +1,42 @@ #!/bin/sh discoverArtifactId() { - ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` + local ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` } rebuild() { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } start() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } start_log() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad -Ddocker.showLogs process-classes + mvn -Drad -Ddocker.showLogs process-test-classes } stop() { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop `docker container ls -q --filter name=${ARTIFACT_ID}-*` + docker container stop `docker container ls -q --filter name="^/${ARTIFACT_ID}"` echo "Removing containers ..." - docker container rm `docker container ls -aq --filter name=${ARTIFACT_ID}-*` + docker container rm `docker container ls -aq --filter name="^/${ARTIFACT_ID}"` } tail_logs() { discoverArtifactId - docker container logs -f `docker container ls -q --filter name=${ARTIFACT_ID}-$1` + docker container logs -f `docker container ls -q --filter name="^/${ARTIFACT_ID}-$1$"` } list() { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } case "$1" in diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleBootstrap.java b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleBootstrap.java index b2e12b4..800257a 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleBootstrap.java +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleBootstrap.java @@ -20,27 +20,47 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransacti import org.alfresco.service.ServiceRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationEvent; +import org.springframework.extensions.surf.util.AbstractLifecycleBean; import org.springframework.stereotype.Component; /** * This class is an example of how you can use the Alfresco Java Public API on startup or shutdown. */ @Component -public class ExampleBootstrap implements InitializingBean, DisposableBean { +public class ExampleBootstrap extends AbstractLifecycleBean { private final Logger logger = LoggerFactory.getLogger(this.getClass()); // this is the Alfresco Public Java API entrypoint @Autowired protected ServiceRegistry serviceRegistry; - - @Override - public void afterPropertiesSet() throws Exception { - if (this.logger.isTraceEnabled()) - this.logger.trace("onStartup()"); + + @Value("${example.config.value:default}") + private String configValue; + + @Value("${example.config.value:#{null}}") + private String configValueWithNullDefault; + + /** + * This is called after Spring beans and configuration are injected, but + * before ACS services are ready. So don't call any ACS services, start an + * ACS transaction, or try to create an authentication context. + */ + @PostConstruct + private void init() { + } + + /** + * This is called after @PostConstruct and all the ACS services are + * initialized and ready. You will have no authentication or transaction + * context. + */ + @Override + protected void onBootstrap(ApplicationEvent event) { + this.logger.trace("onBootstrap()"); // provide some authority within the Alfresco context AuthenticationUtil.runAsSystem(new RunAsWork() { @@ -57,11 +77,15 @@ public class ExampleBootstrap implements InitializingBean, DisposableBean { } }); } - - @Override - public void destroy() throws Exception { - if (this.logger.isTraceEnabled()) - this.logger.trace("onShutdown()"); + + /** + * This is called after @PostConstruct and all the ACS services are + * initialized and ready. You will have no authentication or transaction + * context. + */ + @Override + protected void onShutdown(ApplicationEvent event) { + this.logger.trace("onShutdown()"); // provide some authority within the Alfresco context AuthenticationUtil.runAsSystem(new RunAsWork() { diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleEventListener.java b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleEventListener.java index e40b34c..ef3c358 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleEventListener.java +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleEventListener.java @@ -21,15 +21,15 @@ import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.extensions.surf.util.AbstractLifecycleBean; import org.springframework.stereotype.Component; /** * This class is an example of how you can use the Alfresco Java Public API when Alfresco triggers an event. */ @Component -public class ExampleEventListener implements InitializingBean, OnCreateNodePolicy { +public class ExampleEventListener extends AbstractLifecycleBean implements OnCreateNodePolicy { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -37,24 +37,34 @@ public class ExampleEventListener implements InitializingBean, OnCreateNodePolic @Autowired protected ServiceRegistry serviceRegistry; - @Override - public void afterPropertiesSet() throws Exception { + @Override + protected void onBootstrap(ApplicationEvent event) { this.bind(); } - + + /** + * This must be called after the `PolicyComponent` is initialized/ready. + * So you cannot call it from with `@PostConstruct` or using + * `InitializingBean`. + */ public void bind() { - if (this.logger.isTraceEnabled()) - this.logger.trace("bind()"); + this.logger.trace("bind()"); // example listener this.serviceRegistry.getPolicyComponent().bindClassBehaviour(OnCreateNodePolicy.QNAME, this, new JavaBehaviour(this, OnCreateNodePolicy.QNAME.getLocalName(), NotificationFrequency.TRANSACTION_COMMIT)); } + /** + * This will execute with the same authentication and transaction context + * as was used to create the node, unless the binding is + * `TRANSACTION_COMMIT`. Then it will only have the same transaction + * context and the authentication context used when starting the + * transaction. + */ @Override public void onCreateNode(ChildAssociationRef childAssocRef) { - if (this.logger.isTraceEnabled()) - this.logger.trace("onCreateNode('" + childAssocRef.getChildRef() + "')"); + this.logger.trace("onCreateNode('" + childAssocRef.getChildRef() + "')"); // TODO do some work } diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleGetWebScript.java b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleGetWebScript.java index dc6b0c7..75967eb 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleGetWebScript.java +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleGetWebScript.java @@ -39,6 +39,11 @@ public class ExampleGetWebScript extends AbstractWebScript { @Autowired protected ServiceRegistry serviceRegistry; + /** + * This will have the authentication context of the authenticated user + * calling the REST endpoint. The transaction context is defined in the + * web script descriptor. + */ @Override public void execute(WebScriptRequest req, WebScriptResponse res) throws IOException { if (this.logger.isTraceEnabled()) diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleJavaScriptRootObject.java b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleJavaScriptRootObject.java index 341991a..4dc1564 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleJavaScriptRootObject.java +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/java/ExampleJavaScriptRootObject.java @@ -32,11 +32,17 @@ public class ExampleJavaScriptRootObject extends BaseProcessorExtension { @Autowired protected ServiceRegistry serviceRegistry; + /** + * An example method that called from within a JavaScript within the ACS + * application: `example.getMessage("example.property")`. All simple + * parameter and return types are generally supported. + * + * The `example` root name comes from the `module-context.xml` file. + */ public String getMessage(String messageKey) { if (this.logger.isTraceEnabled()) this.logger.trace("getMessage('" + messageKey + "')"); - // just and example method, called in JS with: example.getMessage("example.property"); return this.serviceRegistry.getDictionaryService().getMessage(messageKey); } diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml index dd06a10..43fd3a7 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml @@ -1,9 +1,10 @@ - + Example Webscript Example Java-backed webscript description - /exampleJava?paramName={paramValue} - user - ${shortname} + /exampleJava?paramName={paramValue} + + user diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml index ad5d68a..0190202 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml @@ -1,9 +1,10 @@ - + Example Webscript Example JS-backed webscript description - /exampleJs?paramName={paramValue} - guest - ${shortname} + /exampleJs?paramName={paramValue} + + guest diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties new file mode 100644 index 0000000..5ae7c61 --- /dev/null +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties @@ -0,0 +1,2 @@ +logger.example.name=${package} +logger.example.level=info diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/test/resources/alfresco/extension/debug-log4j2.properties b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/test/resources/alfresco/extension/debug-log4j2.properties new file mode 100644 index 0000000..2e526b4 --- /dev/null +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/platform-module-A/src/test/resources/alfresco/extension/debug-log4j2.properties @@ -0,0 +1,8 @@ +# Module debugging +logger.example.level=trace + +# WebScript debugging +logger.springframework-extensions-webscripts-ScriptLogger.level=debug + +# non-WebScript JavaScript execution debugging +logger.alfresco-repo-jscript-ScriptLogger.level=debug diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.ps1 b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.ps1 index 61bcb2f..01d9964 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.ps1 +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.ps1 @@ -5,27 +5,27 @@ function discoverArtifactId { function rebuild { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } function start_ { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } function start_log { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad "-Ddocker.showLogs" process-classes + mvn -Drad "-Ddocker.showLogs" process-test-classes } function stop_ { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop (docker container ls -q --filter name=${ARTIFACT_ID}-*) + docker container stop (docker container ls -q --filter name="^/${ARTIFACT_ID}") echo "Removing containers ..." - docker container rm (docker container ls -aq --filter name=${ARTIFACT_ID}-*) + docker container rm (docker container ls -aq --filter name="^/${ARTIFACT_ID}") } function tail_logs { @@ -34,12 +34,12 @@ function tail_logs { ) discoverArtifactId - docker container logs -f (docker container ls -q --filter name=${ARTIFACT_ID}-${container}) + docker container logs -f (docker container ls -q --filter name="^/${ARTIFACT_ID}-${container}$") } function list { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } switch ($args[0]) { diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.sh b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.sh index 7cb0a80..eb8c2bc 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.sh +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/rad.sh @@ -1,42 +1,42 @@ #!/bin/sh discoverArtifactId() { - ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` + local ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` } rebuild() { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } start() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } start_log() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad -Ddocker.showLogs process-classes + mvn -Drad -Ddocker.showLogs process-test-classes } stop() { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop `docker container ls -q --filter name=${ARTIFACT_ID}-*` + docker container stop `docker container ls -q --filter name="^/${ARTIFACT_ID}"` echo "Removing containers ..." - docker container rm `docker container ls -aq --filter name=${ARTIFACT_ID}-*` + docker container rm `docker container ls -aq --filter name="^/${ARTIFACT_ID}"` } tail_logs() { discoverArtifactId - docker container logs -f `docker container ls -q --filter name=${ARTIFACT_ID}-$1` + docker container logs -f `docker container ls -q --filter name="^/${ARTIFACT_ID}-$1$"` } list() { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } case "$1" in diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties new file mode 100644 index 0000000..5ae7c61 --- /dev/null +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties @@ -0,0 +1,2 @@ +logger.example.name=${package} +logger.example.level=info diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/src/test/resources/log4j2.properties b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/src/test/resources/log4j2.properties new file mode 100644 index 0000000..f019915 --- /dev/null +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/share-module-A/src/test/resources/log4j2.properties @@ -0,0 +1,74 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +# Set root logger level to error +rootLogger.level=error +rootLogger.appenderRef.stdout.ref=ConsoleAppender +rootLogger.appenderRef.rolling.ref=RollingAppender + +# All outputs currently set to be a ConsoleAppender. +appender.console.type=Console +appender.console.name=ConsoleAppender +appender.console.layout.type=PatternLayout +appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n + +###### File appender definition ####### +appender.rolling.type=RollingFile +appender.rolling.name=RollingAppender +appender.rolling.fileName=share.log +appender.rolling.filePattern=share.log.%d{yyyy-MM-dd} +appender.rolling.layout.type=PatternLayout +appender.rolling.layout.pattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %replace{%m}{[\r\n]+}{}%n +appender.rolling.policies.type = Policies +appender.rolling.policies.time.type=TimeBasedTriggeringPolicy +appender.rolling.policies.time.interval=1 + +# Spring +logger.springframework.name=org.springframework +logger.springframework.level=warn + +# Turn off Spring remoting warnings that should really be info or debug. +logger.springframework-remoting-support.name=org.springframework.remoting.support +logger.springframework-remoting-support.level=error +logger.springframework-util.name=org.springframework.util +logger.springframework-util.level=error + +# MyFaces +logger.apache-myfaces-util-DebugUtils.name=org.apache.myfaces.util.DebugUtils +logger.apache-myfaces-util-DebugUtils.level=info +logger.apache-myfaces-el-VariableResolverImpl.name=org.apache.myfaces.el.VariableResolverImpl +logger.apache-myfaces-el-VariableResolverImpl.level=error +logger.apache-myfaces-application-jsp-JspViewHandlerImpl.name=org.apache.myfaces.application.jsp.JspViewHandlerImpl +logger.apache-myfaces-application-jsp-JspViewHandlerImpl.level=error +logger.apache-myfaces-taglib.name=org.apache.myfaces.taglib +logger.apache-myfaces-taglib.level=error + +# Alfresco +logger.alfresco.name=org.alfresco +logger.alfresco.level=error +logger.alfresco-config.name=org.alfresco.config +logger.alfresco-config.level=warn +logger.alfresco-config-JndiObjectFactoryBean.name=org.alfresco.config.JndiObjectFactoryBean +logger.alfresco-config-JndiObjectFactoryBean.level=warn +logger.alfresco-web.name=org.alfresco.web +logger.alfresco-web.level=info + +# Web Framework +logger.springframework-extensions-webscripts.name=org.springframework.extensions.webscripts +logger.springframework-extensions-webscripts.level=info +logger.springframework-extensions-webscripts-ScriptLogger.name=org.springframework.extensions.webscripts.ScriptLogger +logger.springframework-extensions-webscripts-ScriptLogger.level=warn +logger.springframework-extensions-webscripts-ScriptDebugger.name=org.springframework.extensions.webscripts.ScriptDebugger +logger.springframework-extensions-webscripts-ScriptDebugger.level=off + +# Freemarker +# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler +logger.freemarker-runtime.name=freemarker.runtime +logger.freemarker-runtime.level= + +#----------------------------------------------------------------------- +# Custom Share module logging goes here... +#----------------------------------------------------------------------- + +logger.example.name=${package} +logger.example.level=debug diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.ps1 b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.ps1 index e4e3b6e..d00dcfb 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.ps1 +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.ps1 @@ -5,12 +5,12 @@ function discoverArtifactId { function rebuild { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } function start_ { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } function stop_ { diff --git a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.sh b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.sh index 1b37cf5..22fedf3 100644 --- a/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.sh +++ b/beedk-acs-allinone-archetype/src/main/resources/archetype-resources/tengine-A/rad.sh @@ -6,12 +6,12 @@ discoverArtifactId() { rebuild() { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } start() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } stop() { diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.ps1 b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.ps1 index 61bcb2f..01d9964 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.ps1 +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.ps1 @@ -5,27 +5,27 @@ function discoverArtifactId { function rebuild { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } function start_ { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } function start_log { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad "-Ddocker.showLogs" process-classes + mvn -Drad "-Ddocker.showLogs" process-test-classes } function stop_ { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop (docker container ls -q --filter name=${ARTIFACT_ID}-*) + docker container stop (docker container ls -q --filter name="^/${ARTIFACT_ID}") echo "Removing containers ..." - docker container rm (docker container ls -aq --filter name=${ARTIFACT_ID}-*) + docker container rm (docker container ls -aq --filter name="^/${ARTIFACT_ID}") } function tail_logs { @@ -34,12 +34,12 @@ function tail_logs { ) discoverArtifactId - docker container logs -f (docker container ls -q --filter name=${ARTIFACT_ID}-${container}) + docker container logs -f (docker container ls -q --filter name="^/${ARTIFACT_ID}-${container}$") } function list { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } switch ($args[0]) { diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.sh b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.sh index 7cb0a80..eb8c2bc 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.sh +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/rad.sh @@ -1,42 +1,42 @@ #!/bin/sh discoverArtifactId() { - ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` + local ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` } rebuild() { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } start() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } start_log() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad -Ddocker.showLogs process-classes + mvn -Drad -Ddocker.showLogs process-test-classes } stop() { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop `docker container ls -q --filter name=${ARTIFACT_ID}-*` + docker container stop `docker container ls -q --filter name="^/${ARTIFACT_ID}"` echo "Removing containers ..." - docker container rm `docker container ls -aq --filter name=${ARTIFACT_ID}-*` + docker container rm `docker container ls -aq --filter name="^/${ARTIFACT_ID}"` } tail_logs() { discoverArtifactId - docker container logs -f `docker container ls -q --filter name=${ARTIFACT_ID}-$1` + docker container logs -f `docker container ls -q --filter name="^/${ARTIFACT_ID}-$1$"` } list() { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } case "$1" in diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleBootstrap.java b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleBootstrap.java index b2e12b4..800257a 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleBootstrap.java +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleBootstrap.java @@ -20,27 +20,47 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransacti import org.alfresco.service.ServiceRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationEvent; +import org.springframework.extensions.surf.util.AbstractLifecycleBean; import org.springframework.stereotype.Component; /** * This class is an example of how you can use the Alfresco Java Public API on startup or shutdown. */ @Component -public class ExampleBootstrap implements InitializingBean, DisposableBean { +public class ExampleBootstrap extends AbstractLifecycleBean { private final Logger logger = LoggerFactory.getLogger(this.getClass()); // this is the Alfresco Public Java API entrypoint @Autowired protected ServiceRegistry serviceRegistry; - - @Override - public void afterPropertiesSet() throws Exception { - if (this.logger.isTraceEnabled()) - this.logger.trace("onStartup()"); + + @Value("${example.config.value:default}") + private String configValue; + + @Value("${example.config.value:#{null}}") + private String configValueWithNullDefault; + + /** + * This is called after Spring beans and configuration are injected, but + * before ACS services are ready. So don't call any ACS services, start an + * ACS transaction, or try to create an authentication context. + */ + @PostConstruct + private void init() { + } + + /** + * This is called after @PostConstruct and all the ACS services are + * initialized and ready. You will have no authentication or transaction + * context. + */ + @Override + protected void onBootstrap(ApplicationEvent event) { + this.logger.trace("onBootstrap()"); // provide some authority within the Alfresco context AuthenticationUtil.runAsSystem(new RunAsWork() { @@ -57,11 +77,15 @@ public class ExampleBootstrap implements InitializingBean, DisposableBean { } }); } - - @Override - public void destroy() throws Exception { - if (this.logger.isTraceEnabled()) - this.logger.trace("onShutdown()"); + + /** + * This is called after @PostConstruct and all the ACS services are + * initialized and ready. You will have no authentication or transaction + * context. + */ + @Override + protected void onShutdown(ApplicationEvent event) { + this.logger.trace("onShutdown()"); // provide some authority within the Alfresco context AuthenticationUtil.runAsSystem(new RunAsWork() { diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleEventListener.java b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleEventListener.java index e40b34c..ef3c358 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleEventListener.java +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleEventListener.java @@ -21,15 +21,15 @@ import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.extensions.surf.util.AbstractLifecycleBean; import org.springframework.stereotype.Component; /** * This class is an example of how you can use the Alfresco Java Public API when Alfresco triggers an event. */ @Component -public class ExampleEventListener implements InitializingBean, OnCreateNodePolicy { +public class ExampleEventListener extends AbstractLifecycleBean implements OnCreateNodePolicy { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @@ -37,24 +37,34 @@ public class ExampleEventListener implements InitializingBean, OnCreateNodePolic @Autowired protected ServiceRegistry serviceRegistry; - @Override - public void afterPropertiesSet() throws Exception { + @Override + protected void onBootstrap(ApplicationEvent event) { this.bind(); } - + + /** + * This must be called after the `PolicyComponent` is initialized/ready. + * So you cannot call it from with `@PostConstruct` or using + * `InitializingBean`. + */ public void bind() { - if (this.logger.isTraceEnabled()) - this.logger.trace("bind()"); + this.logger.trace("bind()"); // example listener this.serviceRegistry.getPolicyComponent().bindClassBehaviour(OnCreateNodePolicy.QNAME, this, new JavaBehaviour(this, OnCreateNodePolicy.QNAME.getLocalName(), NotificationFrequency.TRANSACTION_COMMIT)); } + /** + * This will execute with the same authentication and transaction context + * as was used to create the node, unless the binding is + * `TRANSACTION_COMMIT`. Then it will only have the same transaction + * context and the authentication context used when starting the + * transaction. + */ @Override public void onCreateNode(ChildAssociationRef childAssocRef) { - if (this.logger.isTraceEnabled()) - this.logger.trace("onCreateNode('" + childAssocRef.getChildRef() + "')"); + this.logger.trace("onCreateNode('" + childAssocRef.getChildRef() + "')"); // TODO do some work } diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleGetWebScript.java b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleGetWebScript.java index dc6b0c7..75967eb 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleGetWebScript.java +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleGetWebScript.java @@ -39,6 +39,11 @@ public class ExampleGetWebScript extends AbstractWebScript { @Autowired protected ServiceRegistry serviceRegistry; + /** + * This will have the authentication context of the authenticated user + * calling the REST endpoint. The transaction context is defined in the + * web script descriptor. + */ @Override public void execute(WebScriptRequest req, WebScriptResponse res) throws IOException { if (this.logger.isTraceEnabled()) diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleJavaScriptRootObject.java b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleJavaScriptRootObject.java index 341991a..4dc1564 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleJavaScriptRootObject.java +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/java/ExampleJavaScriptRootObject.java @@ -32,11 +32,17 @@ public class ExampleJavaScriptRootObject extends BaseProcessorExtension { @Autowired protected ServiceRegistry serviceRegistry; + /** + * An example method that called from within a JavaScript within the ACS + * application: `example.getMessage("example.property")`. All simple + * parameter and return types are generally supported. + * + * The `example` root name comes from the `module-context.xml` file. + */ public String getMessage(String messageKey) { if (this.logger.isTraceEnabled()) this.logger.trace("getMessage('" + messageKey + "')"); - // just and example method, called in JS with: example.getMessage("example.property"); return this.serviceRegistry.getDictionaryService().getMessage(messageKey); } diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml index dd06a10..43fd3a7 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJava.get.desc.xml @@ -1,9 +1,10 @@ - + Example Webscript Example Java-backed webscript description - /exampleJava?paramName={paramValue} - user - ${shortname} + /exampleJava?paramName={paramValue} + + user diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml index ad5d68a..0190202 100644 --- a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/extension/templates/webscripts/exampleJavaScript.get.desc.xml @@ -1,9 +1,10 @@ - + Example Webscript Example JS-backed webscript description - /exampleJs?paramName={paramValue} - guest - ${shortname} + /exampleJs?paramName={paramValue} + + guest diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties new file mode 100644 index 0000000..5ae7c61 --- /dev/null +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties @@ -0,0 +1,2 @@ +logger.example.name=${package} +logger.example.level=info diff --git a/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/debug-log4j2.properties b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/debug-log4j2.properties new file mode 100644 index 0000000..2e526b4 --- /dev/null +++ b/beedk-acs-platform-module-archetype/src/main/resources/archetype-resources/src/test/resources/alfresco/extension/debug-log4j2.properties @@ -0,0 +1,8 @@ +# Module debugging +logger.example.level=trace + +# WebScript debugging +logger.springframework-extensions-webscripts-ScriptLogger.level=debug + +# non-WebScript JavaScript execution debugging +logger.alfresco-repo-jscript-ScriptLogger.level=debug diff --git a/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.ps1 b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.ps1 index 61bcb2f..01d9964 100644 --- a/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.ps1 +++ b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.ps1 @@ -5,27 +5,27 @@ function discoverArtifactId { function rebuild { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } function start_ { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } function start_log { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad "-Ddocker.showLogs" process-classes + mvn -Drad "-Ddocker.showLogs" process-test-classes } function stop_ { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop (docker container ls -q --filter name=${ARTIFACT_ID}-*) + docker container stop (docker container ls -q --filter name="^/${ARTIFACT_ID}") echo "Removing containers ..." - docker container rm (docker container ls -aq --filter name=${ARTIFACT_ID}-*) + docker container rm (docker container ls -aq --filter name="^/${ARTIFACT_ID}") } function tail_logs { @@ -34,12 +34,12 @@ function tail_logs { ) discoverArtifactId - docker container logs -f (docker container ls -q --filter name=${ARTIFACT_ID}-${container}) + docker container logs -f (docker container ls -q --filter name="^/${ARTIFACT_ID}-${container}$") } function list { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } switch ($args[0]) { diff --git a/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.sh b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.sh index 7cb0a80..eb8c2bc 100644 --- a/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.sh +++ b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/rad.sh @@ -1,42 +1,42 @@ #!/bin/sh discoverArtifactId() { - ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` + local ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` } rebuild() { echo "Rebuilding project ..." - mvn process-classes + mvn process-test-classes } start() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad process-classes + mvn -Drad process-test-classes } start_log() { echo "Rebuilding project and starting Docker containers to support rapid application development ..." - mvn -Drad -Ddocker.showLogs process-classes + mvn -Drad -Ddocker.showLogs process-test-classes } stop() { discoverArtifactId echo "Stopping Docker containers that supported rapid application development ..." - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" echo "Stopping containers ..." - docker container stop `docker container ls -q --filter name=${ARTIFACT_ID}-*` + docker container stop `docker container ls -q --filter name="^/${ARTIFACT_ID}"` echo "Removing containers ..." - docker container rm `docker container ls -aq --filter name=${ARTIFACT_ID}-*` + docker container rm `docker container ls -aq --filter name="^/${ARTIFACT_ID}"` } tail_logs() { discoverArtifactId - docker container logs -f `docker container ls -q --filter name=${ARTIFACT_ID}-$1` + docker container logs -f `docker container ls -q --filter name="^/${ARTIFACT_ID}-$1$"` } list() { discoverArtifactId - docker container ls --filter name=${ARTIFACT_ID}-* + docker container ls --filter name="^/${ARTIFACT_ID}" } case "$1" in diff --git a/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties new file mode 100644 index 0000000..5ae7c61 --- /dev/null +++ b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/src/main/resources/alfresco/module/__groupId__.__artifactId__/log4j2.properties @@ -0,0 +1,2 @@ +logger.example.name=${package} +logger.example.level=info diff --git a/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/src/test/resources/log4j2.properties b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/src/test/resources/log4j2.properties new file mode 100644 index 0000000..f019915 --- /dev/null +++ b/beedk-acs-share-module-archetype/src/main/resources/archetype-resources/src/test/resources/log4j2.properties @@ -0,0 +1,74 @@ +#set( $symbol_pound = '#' ) +#set( $symbol_dollar = '$' ) +#set( $symbol_escape = '\' ) +# Set root logger level to error +rootLogger.level=error +rootLogger.appenderRef.stdout.ref=ConsoleAppender +rootLogger.appenderRef.rolling.ref=RollingAppender + +# All outputs currently set to be a ConsoleAppender. +appender.console.type=Console +appender.console.name=ConsoleAppender +appender.console.layout.type=PatternLayout +appender.console.layout.pattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %replace{%m}{[\r\n]+}{}%n + +###### File appender definition ####### +appender.rolling.type=RollingFile +appender.rolling.name=RollingAppender +appender.rolling.fileName=share.log +appender.rolling.filePattern=share.log.%d{yyyy-MM-dd} +appender.rolling.layout.type=PatternLayout +appender.rolling.layout.pattern=%d{yyyy-MM-dd} %d{ABSOLUTE} %-5p [%c] [%t] %replace{%m}{[\r\n]+}{}%n +appender.rolling.policies.type = Policies +appender.rolling.policies.time.type=TimeBasedTriggeringPolicy +appender.rolling.policies.time.interval=1 + +# Spring +logger.springframework.name=org.springframework +logger.springframework.level=warn + +# Turn off Spring remoting warnings that should really be info or debug. +logger.springframework-remoting-support.name=org.springframework.remoting.support +logger.springframework-remoting-support.level=error +logger.springframework-util.name=org.springframework.util +logger.springframework-util.level=error + +# MyFaces +logger.apache-myfaces-util-DebugUtils.name=org.apache.myfaces.util.DebugUtils +logger.apache-myfaces-util-DebugUtils.level=info +logger.apache-myfaces-el-VariableResolverImpl.name=org.apache.myfaces.el.VariableResolverImpl +logger.apache-myfaces-el-VariableResolverImpl.level=error +logger.apache-myfaces-application-jsp-JspViewHandlerImpl.name=org.apache.myfaces.application.jsp.JspViewHandlerImpl +logger.apache-myfaces-application-jsp-JspViewHandlerImpl.level=error +logger.apache-myfaces-taglib.name=org.apache.myfaces.taglib +logger.apache-myfaces-taglib.level=error + +# Alfresco +logger.alfresco.name=org.alfresco +logger.alfresco.level=error +logger.alfresco-config.name=org.alfresco.config +logger.alfresco-config.level=warn +logger.alfresco-config-JndiObjectFactoryBean.name=org.alfresco.config.JndiObjectFactoryBean +logger.alfresco-config-JndiObjectFactoryBean.level=warn +logger.alfresco-web.name=org.alfresco.web +logger.alfresco-web.level=info + +# Web Framework +logger.springframework-extensions-webscripts.name=org.springframework.extensions.webscripts +logger.springframework-extensions-webscripts.level=info +logger.springframework-extensions-webscripts-ScriptLogger.name=org.springframework.extensions.webscripts.ScriptLogger +logger.springframework-extensions-webscripts-ScriptLogger.level=warn +logger.springframework-extensions-webscripts-ScriptDebugger.name=org.springframework.extensions.webscripts.ScriptDebugger +logger.springframework-extensions-webscripts-ScriptDebugger.level=off + +# Freemarker +# Note the freemarker.runtime logger is used to log non-fatal errors that are handled by Alfresco's retrying transaction handler +logger.freemarker-runtime.name=freemarker.runtime +logger.freemarker-runtime.level= + +#----------------------------------------------------------------------- +# Custom Share module logging goes here... +#----------------------------------------------------------------------- + +logger.example.name=${package} +logger.example.level=debug diff --git a/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/pom.xml b/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/pom.xml index 7de1929..a38b2f5 100644 --- a/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/pom.xml +++ b/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/pom.xml @@ -15,8 +15,8 @@ 8 8 - 5.23.0 - 4.3.20.RELEASE + 7.11.0 + 5.3.29 @@ -33,6 +33,39 @@ provided + + + + + io.repaint.maven + tiles-maven-plugin + 2.40 + true + + + + com.inteligr8.ootbee:beedk-aps-ext-rad-tile:1.1-SNAPSHOT + + + + + + + + + rad + + + rad + + + + 2.4.1 + + -Dproperty-to-set=value + + + diff --git a/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/rad.ps1 b/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/rad.ps1 new file mode 100644 index 0000000..01d9964 --- /dev/null +++ b/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/rad.ps1 @@ -0,0 +1,74 @@ + +function discoverArtifactId { + $script:ARTIFACT_ID=(mvn -q -Dexpression=project"."artifactId -DforceStdout help:evaluate) +} + +function rebuild { + echo "Rebuilding project ..." + mvn process-test-classes +} + +function start_ { + echo "Rebuilding project and starting Docker containers to support rapid application development ..." + mvn -Drad process-test-classes +} + +function start_log { + echo "Rebuilding project and starting Docker containers to support rapid application development ..." + mvn -Drad "-Ddocker.showLogs" process-test-classes +} + +function stop_ { + discoverArtifactId + echo "Stopping Docker containers that supported rapid application development ..." + docker container ls --filter name="^/${ARTIFACT_ID}" + echo "Stopping containers ..." + docker container stop (docker container ls -q --filter name="^/${ARTIFACT_ID}") + echo "Removing containers ..." + docker container rm (docker container ls -aq --filter name="^/${ARTIFACT_ID}") +} + +function tail_logs { + param ( + $container + ) + + discoverArtifactId + docker container logs -f (docker container ls -q --filter name="^/${ARTIFACT_ID}-${container}$") +} + +function list { + discoverArtifactId + docker container ls --filter name="^/${ARTIFACT_ID}" +} + +switch ($args[0]) { + "start" { + start_ + } + "start_log" { + start_log + } + "stop" { + stop_ + } + "restart" { + stop_ + start_ + } + "rebuild" { + rebuild + } + "tail" { + tail_logs $args[1] + } + "containers" { + list + } + default { + echo "Usage: .\rad.ps1 [ start | start_log | stop | restart | rebuild | tail {container} | containers ]" + } +} + +echo "Completed!" + diff --git a/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/rad.sh b/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/rad.sh new file mode 100644 index 0000000..eb8c2bc --- /dev/null +++ b/beedk-activiti-ext-archetype/src/main/resources/archetype-resources/rad.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +discoverArtifactId() { + local ARTIFACT_ID=`mvn -q -Dexpression=project.artifactId -DforceStdout help:evaluate` +} + +rebuild() { + echo "Rebuilding project ..." + mvn process-test-classes +} + +start() { + echo "Rebuilding project and starting Docker containers to support rapid application development ..." + mvn -Drad process-test-classes +} + +start_log() { + echo "Rebuilding project and starting Docker containers to support rapid application development ..." + mvn -Drad -Ddocker.showLogs process-test-classes +} + +stop() { + discoverArtifactId + echo "Stopping Docker containers that supported rapid application development ..." + docker container ls --filter name="^/${ARTIFACT_ID}" + echo "Stopping containers ..." + docker container stop `docker container ls -q --filter name="^/${ARTIFACT_ID}"` + echo "Removing containers ..." + docker container rm `docker container ls -aq --filter name="^/${ARTIFACT_ID}"` +} + +tail_logs() { + discoverArtifactId + docker container logs -f `docker container ls -q --filter name="^/${ARTIFACT_ID}-$1$"` +} + +list() { + discoverArtifactId + docker container ls --filter name="^/${ARTIFACT_ID}" +} + +case "$1" in + start) + start + ;; + start_log) + start_log + ;; + stop) + stop + ;; + restart) + stop + start + ;; + rebuild) + rebuild + ;; + tail) + tail_logs $2 + ;; + containers) + list + ;; + *) + echo "Usage: ./rad.sh [ start | start_log | stop | restart | rebuild | tail {container} | containers ]" + exit 1 +esac + +echo "Completed!" +