Fermer

juin 17, 2020

Un seul outil pour les configurer tous: Sling RepoInit


Le paradigme de base pour Java Content Repository (JCR) le référentiel d'Adobe Experience Manager (AEM) est Tout est contenu. Ce principe stimule la flexibilité qui a fait d'AEM une solution leader sur le marché. Cependant, cela présente un inconvénient, la gestion de l'état initial du référentiel est difficile car l'état du référentiel est une combinaison du contenu, du code et de la configuration d'une application AEM.

La gestion de cet état initial est importante pour les développeurs et les administrateurs être capable de lever des instances locales, de lever de nouveaux environnements et de maintenir les environnements synchronisés.

Plusieurs équipes ont élaboré des éléments d'une solution à ce problème, notamment:

Récemment cependant, une autre solution est apparue pour la configuration l'état initial du référentiel.

Apache Sling RepoInit

Apache Sling RepoInit est une fonctionnalité d'Apache Sling depuis 2016, mais a historiquement été utilisé pour l'initialisation du référentiel de base dans le cadre du démarreur slingstart / launchpad, pas pour Initialisation du référentiel au niveau du projet.

 Expérience et conception client - Créez une meilleure expérience client avec AEM sur Microsoft Azure

Version 1.1.6+ o f Sling JCR RepoInit inclut la possibilité d'enregistrer des configurations avec des scripts ou des références RepoInit. Cela fait qu'Apache Sling Repoint n'est plus seulement un initialiseur de référentiel de base pour permettre une utilisation par les équipes de projet.

Avec Sling Repoint, nous avons une grammaire consolidée pour:

  • Créer des groupes
  • Attribuer des autorisations
  • Créer des chemins
  • Définir les propriétés
  • Attribuer l'appartenance à un groupe
  • Créer des configurations OSGi [19659011] Créer des utilisateurs de service

Activation de RepoInit dans AEM

Remarque: ceci est basé sur AEM 6.5.5, les nouveaux service packs et AEM Cloud Service peuvent avoir différentes versions de dépendance.

AEM inclut une version assez ancienne version de Sling RepoInit, afin d'exploiter toute la puissance de Sling RepoInit, vous devez mettre à niveau vers les dépendances suivantes pour AEM 6.5.5:

Configuration de RepositoryInitializer

Nous pouvons configurer les scripts RepoInit à exécuter en enregistrant une configuration de org.apache.sling.jcr.repoinit.impl.RepositoryInitializer Service Factory, mais la façon dont ce service résout les références pose problème. Chaque référence devrait être sous la forme d'une URL et OSGi prend en charge l'exposition des bundles en tant qu'URL, mais lorsque Apache Felix résout l'URL d'un bundle dans URLHandlersBundleStreamHandler il s'attend à ce que l'hôte URL soit l'UUID de l'ensemble, pas un ID stable tel que le nom symbolique de l'ensemble.

J'ai ouvert un ticket pour résoudre ce problème, mais jusqu'à ce qu'il soit complet et généralement disponible, la meilleure option est de créer un composant OSGi pour résoudre l'URL de l'ensemble et

Vous trouverez ci-dessous un exemple d'implémentation montrant comment cela pourrait être fait, montrant comment prendre en charge plusieurs fichiers RepoInit dans un seul ensemble:

Maintenant que vous avez la configuration et le fonctionnement de Sling RepoInit, vous pouvez créez un nombre illimité de scripts RepoInit dans le dossier ./src/main/resources/repoinits et lors de l'installation du bundle, ils seront rechargés en direct.

Avec les scripts RepoInit, vous pouvez configurer complètement votre référentiel avec des commandes comme:

 # Créer des chemins
créer chemin / contenu / mon-site (cq: Page)

# Créer un groupe
créer un groupe my-site-admin
définir l'ACL pour my-site-admin
    autoriser crx: répliquer, jcr: lockManagement, jcr: versionManagement, rep: écrire sur / content / mon-site
fin

# Ajouter des membres du groupe
ajouter my-site-admin aux administrateurs de groupe

# Et plus! 

Apache Sling RepoInit est le moyen consolidé d'initialiser un référentiel pour tout système basé sur Apache Sling, y compris AEM 6.5, AEM en tant que service cloud et Apache Sling CMS . Avec RepoInit, vous pouvez être assuré que votre solution fonctionnera à la fois sur la version actuelle d'AEM ainsi que sur AEM en tant que service cloud.






Source link