Groovy Console Integration and executing scripts in AEM
Steps to install Groovy in AEM.
Below Github have the steps to install the latest Groovy console
https://github.com/icfnext/aem-groovy-console
You can also navigate to the releases section and download the required package.
https://github.com/icfnext/aem-groovy-console/releases
I have used 12.0.0 version for this demo.
Note: From 13.0.0 release, the paths were changed from /etc/ to /apps/ to access Groovy Console
Sample Groovy Scripts:
Printing a simple String
Click on Run Script
Displays Hello World in the Console
Get a Page Object
Update the data on the nodes
Below Github have the steps to install the latest Groovy console
https://github.com/icfnext/aem-groovy-console
You can also navigate to the releases section and download the required package.
https://github.com/icfnext/aem-groovy-console/releases
I have used 12.0.0 version for this demo.
- Download the Groovy Package (Direct link to the package )
 - Upload the package to AEM via Package manager http://localhost:4502/crx/packmgr/index.jsp
 - Once the package is installed, you should be able to access the groovy console http://localhost:4502/etc/groovyconsole.html
 
Note: From 13.0.0 release, the paths were changed from /etc/ to /apps/ to access Groovy Console
Sample Groovy Scripts:
Printing a simple String
println 'Hello World';
Click on Run Script
Displays Hello World in the Console
final def page = getPage('/content/aem-flash')
println 'page path is: ' + page.path;
Result: page path is: /content/aem-flash
Querying and displaying page names
def buildQuery(page) {
    def queryManager = session.workspace.queryManager;
    def statement = 'SELECT * FROM [cq:Page] AS s WHERE ISDESCENDANTNODE(s,\'/content/aem-flash\')';
    queryManager.createQuery(statement, 'sql');
}
final def page = getPage('/content/aem-flash')
final def query = buildQuery(page);
final def result = query.execute()
result.nodes.each { node ->
    println 'node path is: ' + node.path
}
Result:
node path is: /content/aem-flash/en node path is: /content/aem-flash/fr
Update the data on the nodes
result.nodes.each { node ->
    println 'node path is: ' + node.path
    node.set('customTitle', 'Title Set from Groovy');
    session.save();
}


Super post . Very Helpful.
ReplyDelete