Actualizaciones sostenibles

Marco de personalización

Arquitectura (funcional/infraestructura/contenido/aplicación)

La función Marco de trabajo de personalización está diseñada para ayudar a reducir las infracciones en áreas no ampliables del código (como las API) o en contenido (como las superposiciones) que no son compatibles con las actualizaciones.

El marco de trabajo de personalización consta de dos componentes: Superficie API y el Clasificación del contenido.

Superficie API

AEM En las versiones anteriores de muchas API se exponían a través de Uber Jar. AEM Algunas de estas API no estaban pensadas para que las utilizaran los clientes, sino que estuvieron expuestas a la funcionalidad de soporte de los paquetes de soluciones de, que es más fácil de usar. En adelante, las API de Java se marcarán como Públicas o Privadas para indicar a los clientes qué API son seguras de usar en el contexto de las actualizaciones. Otros detalles específicos incluyen:

  • API de Java marcadas como Public Los paquetes de implementación personalizados pueden utilizarlos y hacer referencia a ellos.

  • Las API públicas serán compatibles con la instalación de un paquete de compatibilidad.

  • El paquete de compatibilidad contendrá una compatibilidad con Uber JAR para garantizar la compatibilidad con versiones anteriores

  • API de Java marcadas como Private AEM están pensados para ser utilizados únicamente por paquetes internos de la y no deben ser utilizados por paquetes personalizados.

NOTA

El concepto de Private y Public en este contexto, no debe confundirse con las nociones de Java de clases públicas y privadas.

image2018-2-12_23-52-48

Clasificaciones de contenido

AEM AEM Durante mucho tiempo, ha utilizado el principio de superposiciones y la fusión de recursos de Sling para permitir a los clientes ampliar y personalizar la funcionalidad de la. AEM La funcionalidad predefinida que alimenta las consolas y la interfaz de usuario de la se almacena en /libs. Los clientes nunca pueden modificar nada por debajo de /libs pero podría añadir contenido adicional debajo de /apps para superponer y ampliar la funcionalidad definida en /libs (Consulte Desarrollo de superposiciones para obtener más información). AEM Esto seguía causando numerosos problemas al actualizar el contenido como de la versión de la aplicación de la versión de la aplicación de la versión de /libs puede cambiar, lo que provoca que la funcionalidad de superposición se rompa de forma inesperada. AEM Los clientes también pueden ampliar los componentes de la mediante la herencia mediante sling:resourceSuperType, o simplemente haga referencia a un componente en /libs directamente mediante sling:resourceType. Pueden producirse problemas de actualización similares con los casos de uso de referencia y anulación.

Para que sea más seguro y fácil para los clientes comprender qué áreas de /libs son seguros de usar y superponer el contenido en /libs se ha clasificado con las siguientes mezclas:

  • Público (granite:PublicArea) : define un nodo como público para que pueda superponerse, heredado ( sling:resourceSuperType) o se utiliza directamente ( sling:resourceType). Los nodos debajo de /libs marcados como públicos se actualizarán con seguridad con la adición de un paquete de compatibilidad. En general, los clientes solo deben aprovechar los nodos marcados como Públicos.

  • Abstracto (granite:AbstractArea) : define un nodo como abstracto. Los nodos se pueden superponer o heredar ( sling:resourceSupertype), pero no debe utilizarse directamente ( sling:resourceType).

  • Final (granite:FinalArea) : define un nodo como final. Los nodos clasificados como finales no se deben superponer ni heredar. Los nodos finales se pueden utilizar directamente mediante sling:resourceType. Los subnodos bajo el nodo final se consideran internos de forma predeterminada.

  • Interno (granite:InternalArea) *- * Define un nodo como interno. Los nodos clasificados como internos no deben superponerse, heredarse ni utilizarse directamente. AEM Estos nodos solo están pensados para la funcionalidad interna de los entornos de trabajo de los que se puede acceder a

  • Sin anotación : los nodos heredan la clasificación en función de la jerarquía del árbol. La raíz / es de forma predeterminada pública. Los nodos con un nodo principal clasificado como Interno o Final también deben tratarse como Interno.

NOTA

Estas políticas solo se aplican a los mecanismos basados en rutas de búsqueda de Sling. Otras áreas de /libs como una biblioteca del lado del cliente, puede marcarse como Internal, pero se podría seguir utilizando con la inclusión clientlib estándar. Es importante que un cliente siga respetando la clasificación interna en estos casos.

Indicadores de tipo de contenido de CRXDE Lite

Los mixins aplicados en el CRXDE Lite mostrarán nodos de contenido y árboles marcados como INTERNAL como si estuviera atenuado. Para FINAL solo el icono aparece atenuado. Los elementos secundarios de estos nodos también aparecerán en gris. La funcionalidad Nodo de superposición está desactivada en ambos casos.

Público

image2018-2-8_23-34-5

Final

image2018-2-8_23-34-56

Interno

image2018-2-8_23-38-23

Comprobación de estado del contenido

NOTA

AEM A partir de la versión 6.5, Adobe recomienda utilizar Pattern Detector para detectar infracciones de acceso al contenido. Los informes de detector de patrones son más detallados, detectan más problemas y reducen la probabilidad de falsos positivos.

Para obtener más información, consulte Evaluación de la complejidad de la actualización con Pattern Detector.

AEM La versión 6.5 se enviará con una comprobación de estado para alertar a los clientes de si el contenido superpuesto o referenciado se utiliza de una manera incoherente con la clasificación de contenido.

AEM La ​ Comprobación de acceso al contenido de Sling/Granite es una nueva comprobación de estado que supervisa el repositorio para ver si el código de cliente accede incorrectamente a los nodos protegidos en el.

Esto analizará /apps y normalmente tarda varios segundos en completarse.

Para acceder a esta nueva comprobación de estado, debe hacer lo siguiente:

  1. AEM En la pantalla de inicio de la, vaya a Herramientas > Operaciones > Informes de estado

  2. Haga clic en Comprobación de acceso al contenido de Sling/Granite como se muestra a continuación:

    screen_shot_2017-12-14at55648pm

Una vez finalizado el análisis, aparecerá una lista de advertencias notificando al usuario final del nodo protegido al que se hace referencia incorrectamente:

screenshot-2018-2-5health reports

Después de corregir las infracciones, volverá al estado verde:

screenshot-2018-2-5health reports-violaciones

La comprobación de estado muestra información recopilada por un servicio en segundo plano que comprueba asincrónicamente cada vez que se utiliza una superposición o un tipo de recurso en todas las rutas de búsqueda de Sling. Si los mixins de contenido se utilizan incorrectamente, informa de una infracción.

En esta página