Question
Comment implanter un importateur de page personnalisée CQ3.X ou CQ4.X ?
Cliquer ici pour obtenir des informations de base sur l'outil de mise à niveau.
Qu'est-ce qu'un importateur de page ?
Un importateur de page est un service OSGi qui exécute une méthode d'importation de page lorsqu'une page de type csd spécifique est requise par l'instance CQ3.X ou CQ4.x de l'outil de mise à niveau CQ5. Un importateur de page unique peut être implémenté pour plusieurs CSD ou pour un seul type de CSD.
Connaissances préalables requises pour cet article :
- Configuration de l’environnement de développement avec Eclipse.
- Comment créer et déployer un lot sur Apache Felix
Réponse, résolution
Vous trouverez ci-dessous des implémentations vides d'importateurs de page personnalisée. c’est-à-dire qu’ils n’importeront rien, sauf si vous créez les nœuds/types de nœuds/mixins et propriétés du contenu de la page à importer.
Mise en œuvre d'une catégorie important plusieurs modèles de page CSD
import javax.jcr.Node; import javax.jcr.PathNotFoundException; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.Value; import javax.jcr.ValueFormatException; import javax.jcr.lock.LockException; import javax.jcr.nodetype.ConstraintViolationException; import javax.jcr.version.VersionException; import org.apache.jackrabbit.util.Text; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.day.cq.commons.jcr.JcrUtil; import com.day.cq.compat.migration.ImporterContext; import com.day.cq.compat.migration.PageImporter; import com.day.cq.compat.migration.contentbus.Atom; import com.day.cq.compat.migration.contentbus.Container; import com.day.cq.compat.migration.contentbus.ContainerList; /** * The importer for all pages from daycare. * * @scr.component metatype="no" immediate="true" * @scr.service interface="com.day.cq.compat.migration.PageImporter" * @scr.property nameRef="PageImporter.PROP_CSD" valueRef="ALLCONTENTCSD" */ public class GenericContentPageImporter implements PageImporter { // this variable configures which template csds get processed by this page importer private final static String[] ALLCONTENTCSD = new String[] { "genericcontent", "globalhomepage", "localhomepage" }; public Node importPage(ImporterContext context, Page page) throws RepositoryException { Session session = context.getSession(); processPage(context, page, session); if (session.hasPendingChanges()) { session.save(); } return null; } public void processPage(ImporterContext context, Page page, Session session) { //TODO: Implement import functionality here... } }
Mise en œuvre d'une page qui importe un seul type de page CSD
import javax.jcr.Node; import javax.jcr.PathNotFoundException; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.Value; import javax.jcr.ValueFormatException; import javax.jcr.lock.LockException; import javax.jcr.nodetype.ConstraintViolationException; import javax.jcr.version.VersionException; import org.apache.jackrabbit.util.Text; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.day.cq.commons.jcr.JcrUtil; import com.day.cq.compat.migration.ImporterContext; import com.day.cq.compat.migration.PageImporter; import com.day.cq.compat.migration.contentbus.Atom; import com.day.cq.compat.migration.contentbus.Container; import com.day.cq.compat.migration.contentbus.ContainerList; import com.day.cq.compat.migration.GenericImporter; import com.day.cq.compat.migration.ProvidedPageImporter; public class CustomPageImporter extends GenericImporter implements ProvidedPageImporter { CustomPageImporter() { } public String getCSDName() { return "mytemplatecsdname"; } /** * Imports the given page into the Repository. * <p> * La différence d'une implémentation de catégorie de base est que la page * n'est pas stockée à la destination finale comme indiqué par * le mappage de poignée de page mais sous <code>/var/dam</code> où les * ressources sont sélectionnées pour être importées comme ressources DAM. */ public Node importPage(ImporterContext context, Page page) throws RepositoryException { //TODO: Implement import functionality here... } }
Versions concernées
CQ5.2+
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?