AEM Guide

Aprende

Fundamentos de AEM, Sling, JCR, Oak, OSGi, HTL, Dispatcher y Edge Delivery Services.

Servicios OSGi en AEM: @Component, @Reference y su ciclo de vida

Cómo declara AEM un servicio OSGi con @Component, inyecta dependencias con @Reference (cardinality, policy, bind/unbind), y por qué el error más común ocurre en fugas de ResourceResolver dentro de @Activate.

Consultar contenido en AEM: JCR-SQL2, QueryBuilder y por qué necesitas un índice de Oak

Cómo elegir entre QueryBuilder y JCR-SQL2 al consultar contenido en AEM, por qué una query sin índice de Oak se convierte en una traversal, y por qué eso puede fallar en AEM as a Cloud Service aunque funcione en local.

El patrón de delegación de Sling: extender la lógica Java de los Core Components sin copiar y pegar

Cómo cambiar la lógica del Sling Model de un Core Component en AEM — por ejemplo, cómo el Teaser elige su imagen — sin bifurcar la clase, usando @Via(type = ResourceSuperType.class) de Sling y @Delegate de Lombok.

Cómo Sling resuelve una petición hasta un componente de AEM

Cómo Sling convierte una URL en un Resource y luego en un componente AEM a través de sling:resourceType, las search paths /apps y /libs, y por qué sling:resourceSuperType es el patrón correcto para extender los Core Components.

Cómo el módulo ui.frontend convierte un build de Webpack en un ClientLib de AEM

Cómo ui.frontend compila JS/CSS con webpack a través de frontend-maven-plugin, y cómo aem-clientlib-generator transforma ese dist/ en un cq:ClientLibraryFolder que ui.apps termina desplegando en AEM.

¿Qué es un ResourceResolver de Sling?

Cómo el ResourceResolver de Sling mapea contenido JCR a Resources, por qué hay que cerrarlo, y cómo se producen las fugas en AEM.