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.
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.
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.
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... } }
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... } }
CQ5.2+
Accéder à votre compte