Scénario : Ajout de gestionnaires pour les opérations CRUD

Selon vos besoins, vous pouvez ajouter des gestionnaires pour le prétraitement et le post-traitement relatifs aux opérations CRUD (de création, lecture, mise à jour et suppression) pour un type d’actif. Implémentez les modifications à l’aide de l’interface du gestionnaire d’action (ActionHandler).

Présentation de l’implémentation

Cet exemple crée un gestionnaire de création de texte pour mettre à jour le module de texte dans l’étape de prétraitement :
  1. Créez une classe TextCreateHandler en implémentant l’interface du gestionnaire d’action dans au sein du projet CorrespondenceManagementSolutionTemplate/Services. Cette interface contient les méthodes preProcess() et postProcess() appelées respectivement avant et après la méthode de création :
    package com.adobe.icc; 
     
    import java.util.Map; 
    import com.adobe.icc.dbforms.obj.TextModule; 
    import com.adobe.livecycle.content.repository.action.ActionHandler; 
    import com.adobe.livecycle.content.repository.action.ActionType; 
     
    /** 
     * TextCreateHandler is the handler associated with the Create operation of the Form. The preProcess() and postProcess() methods of 
     * this class are invoked just before and after the Create operation. 
     */ 
    public class TextCreateHandler implements ActionHandler { 
     
            private static final String PREFIX = "PREFIX"; 
        /** 
         * This method is invoked just prior to the Create operation of TextModule. The first parameter of this API is the form object that 
         * is being Created. 
         */ 
        public void preProcess(String nodeType, ActionType actionType, Object obj, Map<String, Object> arg1) 
        { 
            TextModule text = (TextModule) obj; 
                    text.setName(PREFIX + text.getName()); 
        } 
         
        /** 
         * This method is invoked just after to the Create operation of Text. The first parameter is the form object that has been 
         * Created. 
         */ 
        public void postProcess(String nodeType, ActionType actionType, Object arg0, Map<String, Object> arg1) { 
            // Do nothing 
        } 
    }
  2. Configurez le gestionnaire en ajoutant l’entrée suivante à la section <bp:blueprint> du fichier CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\osgi-context.xml :
    <bp:reference interface="com.adobe.livecycle.content.repository.RepositoryService" />
  3. Mettez à jour la classe AssetDefinitionDeployer en ajoutant une variable privée repositoryService de la classe com.adobe.livecycle.content.repository.RepositoryService :
    @Autowired 
    private RepositoryService repositoryService;
  4. Puis, ajoutez le code suivant à la méthode afterPropertiesSet() :
    List<ActionHandler> handlers = new ArrayList<ActionHandler>(); 
    handlers = new ArrayList<ActionHandler>(); 
    handlers.add(new TextCreateHandler()); 
    repositoryService.addActionHandlers(ActionHandlerService.APP_ROOT_GLOBAL, TextModule.class.getName(), ActionType.CREATE, handlers);
  5. Régénérez et redéployez le modèle de solution pour afficher les changements. Pour plus d’informations sur la régénération et le redéploiement, voir Génération et déploiement du modèle de solution.