Dropwizard – RESTful web services
Another technology gaining traction for its simplicity to build RESTful services in micro services world. Competing with Spring Boot in containerless deployment model.
Source: Home | Dropwizard… read the rest.
Akka – Actor model architecture
Excited to get introduced to Actor model architecture in Akka. Per Dzone survey 9% of technology stacks being used today are based on Akka.
… read the rest.Akka is a toolkit and runtime
for building highly concurrent,
distributed, and resilient
message-driven applications
on
AEM 6.0 Architect Certification tips
I took up Adobe Experience Manager (AEM) 6.0 Architect certification (9A0-385) recently. I thought to jot down few pointers for my fellow enthusiasts aspiring for passing this exam. You may find this post useful. Please post your question as comment … read the rest.
Creating a unique identifier for a node in JCR apart from path.
If you ever want to create an unique identifier for a node in JCR, you would’ve to add a mixin type [mix:referenceable] to it. Once you add this mixin, repository creates a UUID (Unique Idnetifier) for the node automatically.
You … read the rest.
Java rocks!!!
Java still going strong hitting top spot in programming language popularity index even after 20 years of its existence.
Mechanism to avoid sticky connection for CUG access in AEM 6.1
In a publish farm setup, if there is a need for Closed User Group (CUG) access for protected pages, we would’ve to setup sticky connection in load balancer.
AEM 6.1 introduces a new authentication mechanism using cryptographic token which would … read the rest.
New run mode addressing security in AEM 6.1
AEM 6.1 introduces a run mode ‘nosamplecontent’ which address few security configurations required for production instance. This may not get your production instance 100% secure. You are still asked to use the security checklist to keep a check on known … read the rest.
Reactor pattern (POSA2) explained
I was trying to understand the event handling reactor pattern from POSA2 for a while.
Here’s one good material I bumped on which explains this pattern pretty well with the help of java nio.… read the rest.
AEM touch UI Vs Classic UI – Which one to go for.
Clearly, Adobe moving towards touch UI across marketing cloud solutions to provide an unified experience. However, classic UI is going to stay.
Quote from Adobe doc –
… read the rest.Adobe has not announced that the classic UI is deprecated in 6.1; and
When to go for MongoMK in AEM
MongoMK (realized through MongoDB) was introduced to address the need of scaling author nodes horizontally. General notion is that a typical author node supports 30 concurrent users. What if there is more than 30 concurrent users when a single machine’s … read the rest.
AEM and User generated content
AEM was made for traditional one way websites. With Web 2.0, there was question of how AEM suits user generated content as it’s replication concept to share data across publish farm was the bottleneck. AEM trying to meet this gap … read the rest.
Binary data store in AEM
In AEM 6.x, binaries are by default chuncked and stored in the Node data store – Segment (TarMK) or Document (MongoMK). Options provided to store binary data (>4kb) in a separate data store – file system or S3 bucket. Separate … read the rest.
Solr in AEM
Source: adobe.com… read the rest.
Key AEM resources
AEM materials esp. for developers and architects.
- Gem sessions – Deep dive sessions on specific topics.
- Adobe communities – Knowledge exchange with Adobe experts. Still in beta. Find AEM communities inside.
How to configure an OSGi service before starting an AEM instance
- Unpack AEM by running the following command.
java –jar cq-quickstart-6.jar -unpack - Create a folder named crx-quickstart\install in the installation directory.
- Create a file with the name <service pid>.cfg. [From AEM 6.0 this should be .config] For example – org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService.cfg in
Clean Code – What & Why?
Why Clean Code
- Clean code gives little room for bugs to hide and hence reduced defects post live.
- Clean code establishes a common convention across projects improving readability and hence easier code maintenance.
- Clean code allows best practices to be
Overriding out of the box servlet in AEM (Sling)
Technical Context
In AEM (CQ), sevlets are defined as OSGi services implementing javax.servlet.Servlet
interface. A service listener org.apache.sling.servlets.resolver.internal.SlingServletResolver
in sling framework listens for OSGi services implementing javax.servlet.Servlet
interface and registers its reference. When a request hits the server, this SlingServletResolver
… read the rest.
Dynamic component programming model in OSGi
In OSGi deployment model for java, bundles come and go at run time. Hence, dependencies between the bundles would have to be resolved at run time. This would lead to inconsistency as programs cannot be written with confidence referring types … read the rest.
OSGi – A simplistic view
OSGi
OSGi is a specification describing dynamic modular system for java platform. Essentially, two key aspects here – dynamic modules called bundles in OSGi and the OSGi runtime facilitating these bundles.
More details on OSGi can be found here.… read the rest.