diff --git a/README.md b/README.md index d15ce2bf..6da596e6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # AEM Groovy Console +_This project has moved to https://github.com/CID15/aem-groovy-console and will no longer be maintained in this repository._ + ## Overview The AEM Groovy Console provides an interface for running [Groovy](http://www.groovy-lang.org/) scripts in Adobe Experience Manager. Scripts can be created to manipulate content in the JCR, call OSGi services, or execute arbitrary code using the AEM, Sling, or JCR APIs. After ainstalling the package in AEM (instructions below), see the [console page](http://localhost:4502/apps/groovyconsole.html) for documentation on the available bindings and methods. Sample scripts are included in the package for reference. @@ -108,4 +110,4 @@ Sample scripts can be found in the `src/main/scripts` directory. ## Versioning -Follows [Semantic Versioning](http://semver.org/) guidelines. \ No newline at end of file +Follows [Semantic Versioning](http://semver.org/) guidelines. diff --git a/pom.xml b/pom.xml index acfa3814..7d437ef2 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.icfolson.aem.groovy.console aem-groovy-console jar - 16.0.0 + 16.1.0-SNAPSHOT AEM Groovy Console The AEM Groovy Console provides an interface for running Groovy scripts in the AEM container. Scripts can be @@ -22,6 +22,13 @@ http://www.icfnext.com + + + local-server + https://cmsnew/maven-repository + + + Mark Daugherty @@ -49,10 +56,15 @@ + + + + - sonatype-nexus-staging - https://oss.sonatype.org/service/local/staging/deploy/maven2/ + local-server + https://cmsnew/maven-repository + diff --git a/src/main/groovy/com/icfolson/aem/groovy/console/job/event/impl/DefaultGroovyConsoleEmailNotificationEventHandler.groovy b/src/main/groovy/com/icfolson/aem/groovy/console/job/event/impl/DefaultGroovyConsoleEmailNotificationEventHandler.groovy index 76a016f4..039d1e8d 100644 --- a/src/main/groovy/com/icfolson/aem/groovy/console/job/event/impl/DefaultGroovyConsoleEmailNotificationEventHandler.groovy +++ b/src/main/groovy/com/icfolson/aem/groovy/console/job/event/impl/DefaultGroovyConsoleEmailNotificationEventHandler.groovy @@ -16,7 +16,7 @@ import org.osgi.service.event.propertytypes.EventTopics @EventTopics(NotificationConstants.TOPIC_JOB_FINISHED) @EventFilter("(event.job.topic=groovyconsole/job*)") @Slf4j("LOG") -class DefaultGroovyConsoleEmailNotificationEventHandler extends AbstractGroovyConsoleScheduledJobEventHandler { +class DefaultGroovyConsoleEmailNotificationEventHandler { @Reference private EmailNotificationService emailNotificationService diff --git a/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptDownloadServlet.groovy b/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptDownloadServlet.groovy index caaef599..c46035b4 100644 --- a/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptDownloadServlet.groovy +++ b/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptDownloadServlet.groovy @@ -13,6 +13,10 @@ import javax.servlet.Servlet import static javax.servlet.http.HttpServletResponse.SC_BAD_REQUEST +class GroovyScriptLet extends Object { + +} + @Component(service = Servlet, immediate = true, property = [ "sling.servlet.paths=/bin/groovyconsole/download" ]) diff --git a/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptPostServlet.groovy b/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptPostServlet.groovy index df74d122..79dfdd73 100755 --- a/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptPostServlet.groovy +++ b/src/main/groovy/com/icfolson/aem/groovy/console/servlets/ScriptPostServlet.groovy @@ -6,6 +6,7 @@ import com.icfolson.aem.groovy.console.GroovyConsoleService import com.icfolson.aem.groovy.console.api.context.ScriptContext import com.icfolson.aem.groovy.console.api.impl.RequestScriptContext import com.icfolson.aem.groovy.console.configuration.ConfigurationService +import com.icfolson.aem.groovy.console.utils.GroovyScriptException import groovy.util.logging.Slf4j import org.apache.sling.api.SlingHttpServletRequest import org.apache.sling.api.SlingHttpServletResponse @@ -14,7 +15,8 @@ import org.osgi.service.component.annotations.Reference import javax.jcr.Session import javax.servlet.Servlet -import javax.servlet.ServletException + +//import javax.servlet.ServletException import static com.google.common.base.Preconditions.checkNotNull import static com.icfolson.aem.groovy.console.constants.GroovyConsoleConstants.SCRIPT @@ -36,7 +38,7 @@ class ScriptPostServlet extends AbstractJsonResponseServlet { @Override protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws - ServletException, IOException { + GroovyScriptException, IOException { if (configurationService.hasPermission(request)) { def scriptPaths = request.getParameterValues(SCRIPT_PATHS) diff --git a/src/main/groovy/com/icfolson/aem/groovy/console/utils/GroovyScriptException.groovy b/src/main/groovy/com/icfolson/aem/groovy/console/utils/GroovyScriptException.groovy new file mode 100644 index 00000000..9e867666 --- /dev/null +++ b/src/main/groovy/com/icfolson/aem/groovy/console/utils/GroovyScriptException.groovy @@ -0,0 +1,5 @@ +package com.icfolson.aem.groovy.console.utils + +class GroovyScriptException extends Throwable { + +} diff --git a/ui.content/web/WEB-INF/web.xml b/ui.content/web/WEB-INF/web.xml new file mode 100644 index 00000000..90cb8b1c --- /dev/null +++ b/ui.content/web/WEB-INF/web.xml @@ -0,0 +1,15 @@ + + + + Groovy + groovy.servlet.GroovyServlet + + + + Groovy + *.groovy + + diff --git a/ui.content/web/index.jsp b/ui.content/web/index.jsp new file mode 100644 index 00000000..e4c7cea2 --- /dev/null +++ b/ui.content/web/index.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: jordankanter + Date: 10/22/22 + Time: 4:42 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + $Title$ + + + $END$ + + diff --git a/ui.standalone/.gitignore b/ui.standalone/.gitignore new file mode 100644 index 00000000..5ff6309b --- /dev/null +++ b/ui.standalone/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/ui.standalone/pom.xml b/ui.standalone/pom.xml new file mode 100644 index 00000000..8945113e --- /dev/null +++ b/ui.standalone/pom.xml @@ -0,0 +1,261 @@ + + + + aem-groovy-console + org.cid15.aem.groovy.console + 17.1.0-SNAPSHOT + + + + 4.0.0 + + ui.standalone + 17.1.0-SNAPSHOT + jar + AEM Groovy Console - UI Standalone + + + 11 + 11 + 1.4.0 + UTF-8 + + + + + + + + src/main/resources + + + + + src/test/resources + true + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.0.0 + + + generate-sources + + add-source + + + + src/main/groovy + src/main/java + + + + + + + + maven-compiler-plugin + 3.8.1 + + + + maven-surefire-plugin + + + + maven-assembly-plugin + 2.3 + + + javadoc + deploy + + single + + + + src/main/assembly/javadoc.xml + + + + + + + + maven-source-plugin + 2.2.1 + + + deploy + + jar + + + + + + + + + + + + + + + + org.apache.ivy + ivy + 2.5.0-rc1 + + + + javax.servlet + servlet-api + 2.4 + + + + org.osgi + org.osgi.service.component.annotations + ${osgi.dependencies.version} + + + + org.osgi + org.osgi.service.metatype.annotations + ${osgi.dependencies.version} + + + + org.osgi + org.osgi.service.component + ${osgi.dependencies.version} + + + + org.osgi + org.osgi.service.event + ${osgi.dependencies.version} + + + + junit + junit + 4.13.2 + compile + + + + + javax.jcr + jcr + 2.0 + provided + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + javax.inject + javax.inject + 1 + provided + + + javax.annotation + javax.annotation-api + 1.3.2 + provided + + + javax.mail + mail + 1.5.0-b01 + provided + + + org.osgi + osgi.core + 6.0.0 + provided + + + org.osgi + osgi.cmpn + 6.0.0 + provided + + + org.osgi + osgi.annotation + 6.0.1 + provided + + + org.slf4j + slf4j-api + 1.7.25 + provided + + + org.apache.commons + commons-lang3 + 3.5 + provided + + + org.apache.commons + commons-email + 1.5 + provided + + + + org.codehaus.groovy + groovy-all + 2.4.21 + + + + + + com.icfolson.aem.groovy.extension + aem-groovy-extension-bundle + + + + + + com.adobe.aem + aem-sdk-api + + + + com.icfolson.aem.prosper + prosper + + + + com.perficient.clj_aem.core.clojure + com.perficient.clj_aem.core.clojure + 0.1.0-SNAPSHOT + + + io.wcm + io.wcm.wcm.core.components + 1.12.0-2.20.0 + compile + + + + diff --git a/ui.standalone/src/site/screenshot.png b/ui.standalone/src/site/screenshot.png new file mode 100644 index 00000000..dad9486e Binary files /dev/null and b/ui.standalone/src/site/screenshot.png differ diff --git a/ui.standalone/src/tools/GoVel.groovy b/ui.standalone/src/tools/GoVel.groovy new file mode 100644 index 00000000..02f1b9de --- /dev/null +++ b/ui.standalone/src/tools/GoVel.groovy @@ -0,0 +1,40 @@ +import java.io.StringWriter; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.Template; +import org.apache.velocity.app.Velocity; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.MethodInvocationException; + +Velocity.init(); + +VelocityContext context = new VelocityContext(); + +context.put( "name", new String("Velocity") ); + +Template template = null; + +try +{ + template = Velocity.getTemplate("helloworld.vm"); +} +catch( ResourceNotFoundException rnfe ) +{ + // couldn't find the template +} +catch( ParseErrorException pee ) +{ + // syntax error: problem parsing the template +} +catch( MethodInvocationException mie ) +{ + // something invoked in the template + // threw an exception +} +catch( Exception e ) +{} + +StringWriter sw = new StringWriter(); + +template.merge( context, sw ); + diff --git a/ui.standalone/src/tools/Initialize.groovy b/ui.standalone/src/tools/Initialize.groovy new file mode 100644 index 00000000..8fc6423c --- /dev/null +++ b/ui.standalone/src/tools/Initialize.groovy @@ -0,0 +1,3 @@ +import com.icfolson.aem.groovy.console.GroovyConsoleService + +println "Initialized" diff --git a/ui.standalone/src/tools/JCRExport.groovy b/ui.standalone/src/tools/JCRExport.groovy new file mode 100644 index 00000000..961ebff4 --- /dev/null +++ b/ui.standalone/src/tools/JCRExport.groovy @@ -0,0 +1,7 @@ +import javax.jcr.Repository +import javax.jcr.Node +import javax.jcr.Session +import org.apache.jackrabbit.oak.core.ContentRepositoryImpl + +class JCRExport { +} diff --git a/ui.standalone/src/tools/vlt b/ui.standalone/src/tools/vlt new file mode 120000 index 00000000..d274c1ac --- /dev/null +++ b/ui.standalone/src/tools/vlt @@ -0,0 +1 @@ +/Users/jordan.kanter/Developer/Projects/PerficientSandbox/Tools/vault-cli/bin/vlt \ No newline at end of file diff --git a/ui.standalone/src/tools/vlt.bat b/ui.standalone/src/tools/vlt.bat new file mode 120000 index 00000000..2643b5f1 --- /dev/null +++ b/ui.standalone/src/tools/vlt.bat @@ -0,0 +1 @@ +vault-cli/bin/vlt.bat \ No newline at end of file diff --git a/web/WEB-INF/web.xml b/web/WEB-INF/web.xml new file mode 100644 index 00000000..0011958b --- /dev/null +++ b/web/WEB-INF/web.xml @@ -0,0 +1,17 @@ + + + + Groovy + groovy.servlet.GroovyServlet + + + + Groovy + *.groovy + *.gdo + + + diff --git a/web/index.jsp b/web/index.jsp new file mode 100644 index 00000000..e9e4d570 --- /dev/null +++ b/web/index.jsp @@ -0,0 +1,16 @@ +<%-- + Created by IntelliJ IDEA. + User: jordankanter + Date: 10/22/22 + Time: 8:57 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + $Title$ + + + $END$ + +