JSR-380 Bean Validation 2.0 in AEM
The AEM Maven
by Juan Ayala
1M ago
I have spent years writing and reviewing code. I have seen a lot of wheel re-invetions. I have even done a few my self But as much fun as re-inventing the wheel is, it gets tiresome. And I look for off-the-shelf solutions. For example I wrote an post on Open Feign. And how to avoid writing mountains of HTTP client code. This post is about validating user input. Something for which I have seen countless "util" classes written. This is insane, given that there is an entire implementation out there for this purpose. That is the Hibernate Validator. The reference implementation of JSR-380. Require ..read more
Visit website
Speed Up Your AEM Unit Tests
The AEM Maven
by Juan Ayala
4M ago
Back in December of 2022, I was working on an AEM 6.5 project. It was a typical project. Including the build time. Locally, I mitigated the long build by building only what was necessary. i.e. the core bundle. Or skipping the unit tests. Or using the repo tool to sync the only the changes needed. It was only on the CI/CD pipeline that I would have to wait upwards of an hour for it to complete. Then one day, an off-shore developer submitted a PR. Claiming to have improved the build time. "Popycock!" I said. Well it turns out he was right. And I was completely surprised by the issue. How could t ..read more
Visit website
Multiple AEM Sites on a Local Dispatcher
The AEM Maven
by Juan Ayala
5M ago
The dispatcher is an integral part of the AEM architecture. So important that it has made it into AEMaaCS. But it is simple and has not changed in a long time. In fact, I'm surprised it has even lasted this long. Its basic core functions are caching and filtering! Couldn't we do that with an Nginx module? Or a Traefik plugin? I'm willing to bet that in the years to come, it will get phased out in AEMaaCS. In favor of a more managed solution. What has improved is the tooling provided by Adobe. When I first started on AEM, I remember setting up Apache on my MacBook. Ewww... Then I set it up on V ..read more
Visit website
Simplify Integrations With OpenFeign in AEM
The AEM Maven
by Juan Ayala
7M ago
Sometimes when I meet someone, the question comes up "What do you do for a living." I answer "I'm an internet plumber!" I create the connections that connect back-end systems and people to the data they need. So last year when a pipe burst in my home, the plumber ran over to the hardware store. Bought some new pipes. And resolved the issue. Thats right! They ran over to the hardware store and bought some new pipes! They didn't go back to their workshop to smelt copper. Pour it into a cast. Then cut and clean to get a finished pipe. So why would I, an internet plumber, spend time and effort wri ..read more
Visit website
Adobe Summit 2023: Headless
The AEM Maven
by Juan Ayala
8M ago
Last week I had the opportunity to attend Adobe Summit 2023. Now that I've had the weekend to recuperate, and gather my thoughts, I'm ready to talk about the experience. There were tons sessions covering all sorts of Adobe solutions. There was no way to attend them all. So I will spend the next few months going back to review the sessions I attended. And the ones I wish I could have. My approach is going to be this. Instead of an overarching essay about an Adobe solution, I'm going to talk about the small tidbits. The small things I heard here or there. The small ideas that got planted in my h ..read more
Visit website
Testing Java HTTP Clients in AEM
The AEM Maven
by Juan Ayala
9M ago
As part of my job, I review a lot of code. One of the problems that I see often is that a lot of code gets written to integrate AEM with RESTful services. It is always very complex Because it has to deal with different content types. Authentication headers. And methods. And this complexity is hard to test and debug. HTTP Clients in AEM When I began working on AEM, it was on the last version of CQ5. Running on Java 1.8. And back then (if memory serves) there were 2 HTTP clients available. The native HttpURLConnection. And Apache HTTP Components 3. Today, the Apache HTTP Components has gotten up ..read more
Visit website
New Year Resolutions
The AEM Maven
by Juan Ayala
11M ago
Happy new year! A little over a year ago I started this blog. I figured it was a good way to push myself to learn new things. Share them. Improve my communication skills. And gain a little recognition. A couple of days ago I got an email from FeedSpot telling me I had made the Top 10 AEM Blogs list! Everyone in the AEM community knows these 10 blogs. So it seems like a pretty good list! Dan Klco and Jörg Hoh are the top 2 which wasn't surprising. I'm glad someone (or something ) thought my content was good enough to make this list. For 2023 I would like to keep this momentum going. Today I'll ..read more
Visit website
Localhost TLS/SSL Proxy With Docker
The AEM Maven
by Juan Ayala
1y ago
When doing local dev and testing, you may find that you need TLS (Transport Layer Security). Also known as SSL (Secure Socket Layer), it predecessor. For example if you are working with secure http cookies. Or content security policy headers. Recently I ran into this. I was trying to integrate AEM with a SAML identity provider. And the IdP would only send back the SAML assertion to a TLS protected assertion endpoint. Such as https://localhost/content/mysite/saml_login. Rather than waiting to test in a QA environment, I decided to setup TLS on my local host. And there is a plethora of ways to d ..read more
Visit website
The Templated Container's Structure Resources
The AEM Maven
by Juan Ayala
1y ago
One of the first things you will learn about AEM's architecture are its three basic parts. The content repository, implemented by Jackrabbit Oak. The OSGi container, implemented by Apache Felix. And the RESTful framework provided by Apache Sling. They are all open source. Then there is everything else Adobe bakes and ships with Adobe Experience Manager. Things like the Multi-Site Manager. Editable templates. Workflows. You know, all the things customers shell out big bucks for. These things are not open source. And their APIs rarely well documented. But with a little intuition, and some trial ..read more
Visit website
System Users in AEM 6.5 and AEMaaCS
The AEM Maven
by Juan Ayala
1y ago
In the old days, if you needed a Sling ResourceResolver, you would get a reference to a ResourceResolverFactory and call getAdministrativeResourceResolver(). Easy peasy. For obvious reasons that function is now deprecated. Who thought it would be a good idea to give admin privileges to anyone who asked without some sort of check?! Its successor is getServiceResourceResolver(). Unfortunately, it came with one pesky problem. We needed to create and manage system user accounts. I will talk about some of the ways to create and manage these system accounts. I will end with the new and preferred way ..read more
Visit website

Follow The AEM Maven on FeedSpot

Continue with Google
Continue with Apple
OR