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.