Since my last post about passing the Adobe AEM 6.0 Developer exam, I’ve had a few people contact me to ask for advice on the best way to pass this exam.
The first tip I have is to use the product. Seems simple, but the more you use AEM the more you’ll learn. Experiment and try things out. One the things I like about AEM is its ease to create back up packages. Package up your code, experiment, and if it doesn’t work, re-install your package. But keep on using it, and you’ll become more and more proficient, which will help you in the exam.
The next tip is make sure you are familiar with the topics outlined in the AEM 6.0 Developer Exam Guide. These topics are listed in the exam guide for a reason – they form the questions for the exam! So use them as the basis for some self study with the official .
The final piece of advice I have is to sit some AEM training if possible. In particular I’d suggest the AEM Sites: Developer (AEM 6.0), AEM Sites: Advanced Developer (AEM 6.0), and AEM Sites: System Administration (AEM 6.0) courses.
There’s nothing mind shattering in this post, but hopefully it will help people on the right track towards passing the exam. If it’s not possible to sit the courses, I suggest studying the exam guide and the docs, and trying out what you’ve learned on a running AEM instance at the very least – that should be enough to get you through.
With the update from CQ 5.5 to AEM 6 earlier this year, Adobe has also updated their Adobe Certified Expert exams for the new version. I thought I should ensure I keep my certification current, so I sat the exam.
I’m now an Adobe Certified Expert, AEM 6.0 Developer. And according to Adobe, I’m the first person to get this credential in Australia. :-)
As part of general security hardening of an AEM instance, Adobe recommends turning off the debug filter in Production Publish instances as part of the OSGi configurations (http://dev.day.com/docs/en/cq/current/deploying/security_checklist.html#OSGI Settings).
However, it seems that this configuration is no longer found in the OSGi configurations in AEM 5.6.1. It’s back in AEM 6.0 and from what I’ve heard this may be addressed in a future release of AEM 5.6.x.
But for those currently on 5.6.1, how can you change a configuration that does not exist and prevent debug output being enabled? By either stopping the com.day.cq.wcm.core.impl.WCMDebugFilter component under http://localhost:4502/system/console/components, or by curl:
curl -u admin:admin -d "action=disable" http://localhost:4503/system/console/components/com.day.cq.wcm.core.impl.WCMDebugFilter
I was working with a client who had a problem with no packages showing in the CRX package manager. I checked the usual suspects of not being logged in etc, but everything looked fine. When checking the error.log, I saw this line:
log: 27.06.2014 13:16:53.845 *ERROR* [127.0.0.1  GET /crx/packmgr/list.jsp?_dc=1402543013769&_charset_=utf-8&includeVersions=true HTTP/1.1] com.day.crx.packmgr.impl.servlets.ListServlet Error while retrieving infos: javax.jcr.RepositoryException: Invalid path:/etc/packages/my_packages/.snapshot/My Packagename
CRXDE Lite showed that the path /etc/packages/my_packages/.snapshot/My Packagename was indeed valid. Checking the packages installed via curl gave me the the clue to the problem:
curl -u admin:admin http://localhost:4502/crx/packmgr/service.jsp?cmd=ls
<crx version="2.4.42" user="admin" workspace="crx.default">
<param name="cmd" value="ls"/>
. . .
. . .
<name>My Packagename </name>
<created>Thu, 12 Jun 2014 15:25:33 +1000</created>
<lastModified>Thu, 12 Jun 2014 15:25:33 +1000</lastModified>
. . .
. . .
What I couldn’t see in the error log you can clearly see in the package listing – a trailing space at the end of the package name.
After ducking back into CRXDE Lite, it was easy to rename the package by editing the ‘name’ property of the vault definition located at /etc/packages/my_packages/My Packagename-1.0.zip/jcr:content/vlt:definition. Then after refreshing the packages in Package Manager, packages were displayed and all was working as expected again.