Adobe® Experience Manager (AEM) LiveCycle Connector permet l’invocation harmonieuse d’Adobe® LiveCycle® ES4 Document Services à partir d’applications et de flux de production Web AEM. LiveCycle fournit un SDK client riche, qui permet aux applications client d’invoquer les services LiveCycle à l’aide des API Java™. AEM LiveCycle Connector simplifie l’utilisation de ces API dans l’environnement OSGi.

Prise en main

Vous pouvez installer AEM LiveCycle Connector depuis Package Share en suivant la procédure suivante :

  1. Téléchargez le package aem-livecycle-connector depuis le Package Share de l’instance AEM.

  2. Dans l’Explorateur de packages, cliquez sur Installer pour installer le package.

Une fois le package installé, fournissez des détails du serveur LiveCycle en utilisant les paramètres de configuration dans la console Web AEM.

  1. Accédez à la page de configuration de la console Web AEM à l’adresse suivante : http://<nom_serveur>:<port>/system/console/configMgr.

  2. Localisez le composant de configuration du SDK client d’Adobe LiveCycle.

  3. Cliquez sur le composant pour modifier l’URL, le nom d’utilisateur et le mot de passe du serveur de configuration.

  4. Vérifiez les paramètres et cliquez sur Enregistrer.

123

Bien que les propriétés soient explicites, les plus importantes sont les suivantes :

  • URL du serveur : URL du serveur LiveCycle. Si vous souhaitez que LiveCycle et AEM communiquent via https, démarrez AEM avec l’option -Djavax.net.ssl.trustStore=<chemin vers le fichier de clés LC>.
  • Nom d’utilisateur : nom d’utilisateur du compte qui sera utilisé pour émettre des appels d’AEM à LiveCycle. Il peut s’agir de tout utilisateur de LiveCycle qui possède les autorisations pour appeler Document Services.
  • Mot de passe : mot de passe de l’utilisateur.
  • Nom du service : services qui doivent être appelés à l’aide des informations d’identification d’utilisateur fournies dans Nom d’utilisateur et Mot de passe. Par défaut, aucune information d’identification n’est transmise lors de l’appel de services LiveCycle.

Les applications client peuvent appeler, par programmation, des services LiveCycle en utilisant une API Java, des services Web, Remoting et REST. Pour les clients Java, l’application peut utiliser le SDK LiveCycle, qui fournit une API Java permettant d’invoquer ces services à distance. Par exemple, pour convertir un document Microsoft® Word au format PDF, le client a besoin d’invoquer GeneratePDFService. Le flux d’appel se compose des étapes suivantes :

  1. Créer une instance de ServiceClientFactory.

  2. Chaque service fournit une classe de client. Selon le service à appeler, l’instance de client correspondante doit être créée.

  3. Appeler le service.

  4. Traiter le résultat.

AEM LiveCycle Connector simplifie ce flux en exposant ces instances de client comme des services OSGi accessibles par des moyens OSGi standard. A un niveau élevé, il fournit les fonctionnalités suivantes :
  • Instances de client en tant que service OSGi : les clients conditionnés en tant que groupes OSGI sont répertoriés dans la section Liste de Document Services. Chaque jar client enregistre à son tour l’instance de client comme service OSGi auprès du registre de services OSGi.
  • Propagation des informations d’identification : les détails de connexion requis pour la connexion au serveur LiveCycle sont maintenant gérés de manière centralisée.
  • Service ServiceClientFactory : les applications clientes peuvent encore accéder à l’instance de ServiceClientFactory si elles doivent appeler des processus.

Appel via les références des services depuis le registre des services OSGi

Pour appeler un service exposé à partir d’AEM, effectuez les étapes suivantes :

  1. Déterminez les dépendances maven.

    Ajoutez une dépendance au jar client requis dans pom.xml de maven. Au minimum, vous devez ajouter une dépendance aux jars adobe-livecycle-client et adobe-usermanager-client.

    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-livecycle-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-usermanager-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-cq-integration-api</artifactId>
      <version>11.0.0</version>
    </dependency>

    Maintenant, selon le service à invoquer, ajoutez la dépendance Maven correspondante en fonction du tableau ci-dessous (voir la section Liste de Document Services). Par exemple, pour générer un fichier PDF, ajoutez la dépendance suivante.

    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-generatepdf-client</artifactId>
      <version>11.0.0</version>
    </dependency>
  2. Obtenez la référence du service.

    Ajoutez une poignée l’instance de service. Si vous écrivez une classe Java, vous pouvez utiliser les annotations de services déclaratifs.

    import com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient;
    import com.adobe.livecycle.generatepdf.client.CreatePDFResult;
    import com.adobe.idp.Document;
     
    @Reference
    GeneratePdfServiceClient generatePDF;
    ...
     
    Resource r = resourceResolver.getResource("/path/tp/docx");
    Document sourceDoc = new Document(r.adaptTo(InputStream.class));
    CreatePDFResult result = generatePDF.createPDF2(
                        sourceDoc,
                        extension, //inputFileExtension
                        null, //fileTypeSettings
                        null, //pdfSettings
                        null, //securitySettings
                        settingsDoc, //settingsDoc
                        null //xmpDoc
                );

    Dans le fragment de code ci-dessus, nous appelons l’API createPDF de GeneratePdfServiceClient pour convertir un document au format PDF. Elle implémente la même logique, comme décrit dans l’exemple de mise en route.

    Vous pouvez effectuer le même appel dans un JSP en utilisant le code suivant. La principale différence ici est la façon dont nous obtenons l’accès à GeneratePdfServiceClient via le Sling ScriptHelper.

    <%@ page import="com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient" %>
    <%@ page import="com.adobe.livecycle.generatepdf.client.CreatePDFResult" %>
    <%@ page import="com.adobe.idp.Document" %>
     
    GeneratePdfServiceClient generatePDF = sling.getService(GeneratePdfServiceClient.class);
    Document sourceDoc = ...
    CreatePDFResult result = generatePDF.createPDF2(
                        sourceDoc,
                        extension, //inputFileExtension
                        null, //fileTypeSettings
                        null, //pdfSettings
                        null, //securitySettings
                        settingsDoc, //settingsDoc
                        null //xmpDoc
                );

Exemple de package

Vous pouvez télécharger et utiliser l’exemple de package suivant pour la conversion d’un document Microsoft Word au format PDF.

Telechargement

<p">Pour utiliser l’exemple de package, procédez comme suit :</p">

  1. Cliquez sur le fichier aem-lc-connector-sample-pkg-1.0.0.zip pour télécharger l’exemple de package.
  2. Téléchargez et installez le package joint dans AEM.
  3. Pour convertir un document Microsoft Word au format PDF, accédez à http://<nom_hôte>:<port>/content/livecycle/connector/samples/convertdoc-toPDF.html.
  4. Choisissez le fichier à convertir au format PDF, puis cliquez sur Convertir.
  5. Pour parcourir le code de ce service à l’aide de CRXDE Lite, accédez à apps/livecycle/connector/samples/pdfg/POST.jsp.

Appel via ServiceClientFactory

Dans certains cas, comme appeler un processus, la logique de client nécessite d’accéder au ServiceClientFactory.

import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
 
@Reference
ServiceClientFactoryProvider scfProvider;
 
...
ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory();
...

La plupart des Document services dans LiveCycle nécessitent une authentification. Il est possible d’appeler ces services sans fournir d’informations d’identification explicites dans le code. Vous pouvez utiliser l’une des options suivantes.

Configuration de liste blanche

La configuration du SDK client LiveCycle contient un paramètre sur les noms de service. Il s’agit d’une liste de services pour lesquels la logique d’appel utilise des informations d’identification d’administrateur (partie de la même configuration) de manière standard. Si, par exemple, vous ajoutez des services DirectoryManager (qui font partie de l’API de gestion d’utilisateur) à cette liste, tout code client peut utiliser directement le service et la couche d’appel transmet automatiquement les informations d’identification configurées dans le cadre de la demande envoyée au serveur LiveCycle

RunAsManager

Dans le cadre de l’intégration, un nouveau service RunAsManager est fourni. Il permet de contrôler par programmation les informations d’identification à utiliser quand vous émettez un appel au serveur LiveCycle.

import com.adobe.livecycle.dsc.clientsdk.security.PasswordCredential;
import com.adobe.livecycle.dsc.clientsdk.security.PrivilegedAction;
import com.adobe.livecycle.dsc.clientsdk.security.RunAsManager;
import com.adobe.idp.dsc.registry.component.ComponentRegistry;
  
@Reference
private RunAsManager runAsManager;
  
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
            public List<Component> run() {
                return componentRegistry.getComponents();
            }
        });
assertNotNull(components);

Si vous souhaitez transmettre des informations d’identification, vous pouvez utiliser la méthode surchargée qui prend une instance de PasswordCredential.

PasswordCredential credential = new PasswordCredential("administrator","password");
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
    public List<Component> run() {
        return componentRegistry.getComponents();
    }
},credential);

Propriété InvocationRequest

Si vous appelez un processus ou utilisez directement ServiceClientFactory et créez une InvocationRequest, vous pouvez spécifier une propriété pour indiquer que cette couche d’appel doit utiliser des informations d’identification configurées.

import com.adobe.idp.dsc.InvocationResponse
import com.adobe.idp.dsc.InvocationRequest
import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory
import com.adobe.livecycle.dsc.clientsdk.InvocationProperties
   
ServiceClientFactoryProvider scfp = sling.getService(ServiceClientFactoryProvider.class)
ServiceClientFactory serviceClientFactory = scfp.getDefaultServiceClientFactory()
InvocationRequest ir = serviceClientFactory.createInvocationRequest("sample/LetterSubmissionProcess", "invoke", new HashMap(), true);
  
//Here we are invoking the request with system user
ir.setProperty(InvocationProperties.INVOKER_TYPE,InvocationProperties.INVOKER_TYPE_SYSTEM)
   
InvocationResponse response = serviceClientFactory.getServiceClient().invoke(ir);

Groupe d’API de SDK client Adobe LiveCycle


Services exposés :

  • com.adobe.idp.um.api.AuthenticationManager
  • com.adobe.idp.um.api.DirectoryManager
  • com.adobe.idp.um.api.AuthorizationManager
  • com.adobe.idp.dsc.registry.service.ServiceRegistry
  • com.adobe.idp.dsc.registry.component.ComponentRegistry

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-livecycle-client</artifactId>
  <version>11.0.0</version>
</dependency>
<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-usermanager-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de SDK client Adobe LiveCycle


Services exposés :

  • com.adobe.livecycle.dsc.clientsdk.security.RunAsManager
  • com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-livecycle-cq-integration-api</artifactId>
  <version>1.1.10</version>
</dependency>

Groupe de client Adobe Livecycle TaskManager


Services exposés :

  • com.adobe.idp.taskmanager.dsc.client.task.TaskManager
  • com.adobe.idp.taskmanager.dsc.client.TaskManagerQueryService
  • com.adobe.idp.taskmanager.dsc.client.queuemanager.QueueManager
  • com.adobe.idp.taskmanager.dsc.client.emailsettings.EmailSettingService
  • com.adobe.idp.taskmanager.dsc.client.endpoint.TaskManagerEndpointClient
  • com.adobe.idp.taskmanager.dsc.client.userlist.UserlistService

Dépendances Maven :


<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-taskmanager-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Workflow


Services exposés :

  • com.adobe.idp.workflow.client.WorkflowServiceClient

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-workflow-client-sdk</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle PDF Generator


Services exposés :

  • com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient

Dépendances Maven :


<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-generatepdf-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Application Manager


Services exposés :

  • com.adobe.idp.applicationmanager.service.ApplicationManager
  • com.adobe.livecycle.applicationmanager.client.ApplicationManager
  • com.adobe.livecycle.design.service.DesigntimeService

Dépendances Maven :


<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-applicationmanager-client-sdk</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Assembler


Services exposés :

  • com.adobe.livecycle.assembler.client.AssemblerServiceClient

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-assembler-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Form Data Integration


Services exposés :

  • com.adobe.livecycle.formdataintegration.client.FormDataIntegrationClient

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-formdataintegration-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Forms


Services exposés :

  • com.adobe.livecycle.formsservice.client.FormsServiceClient

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-forms-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Output


Services exposés :

  • com.adobe.livecycle.output.client.OutputClient

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-output-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Reader Extensions


Services exposés :

  • com.adobe.livecycle.readerextensions.client.ReaderExtensionsServiceClient   

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-reader-extensions-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Rights Manager


Services exposés :

  • com.adobe.livecycle.rightsmanagement.client.DocumentManager
  • com.adobe.livecycle.rightsmanagement.client.EventManager
  • com.adobe.livecycle.rightsmanagement.client.ExternalUserManager
  • com.adobe.livecycle.rightsmanagement.client.LicenseManager
  • com.adobe.livecycle.rightsmanagement.client.WatermarkManager
  • com.adobe.livecycle.rightsmanagement.client.PolicyManager
  • com.adobe.livecycle.rightsmanagement.client.AbstractPolicyManager

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-rightsmanagement-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Signatures


Services exposés :

  • com.adobe.livecycle.signatures.client.SignatureServiceClientInterface

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-signatures-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Truststore


Services exposés :

  • com.adobe.truststore.dsc.TrustConfigurationService
  • com.adobe.truststore.dsc.CRLService
  • com.adobe.truststore.dsc.CredentialService
  • com.adobe.truststore.dsc.CertificateService

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-truststore-client</artifactId>
  <version>11.0.0</version>
</dependency>

Groupe de client Adobe LiveCycle Repository


Services exposés :

  • com.adobe.repository.bindings.ResourceRepository
  • com.adobe.repository.bindings.ResourceSynchronizer

Dépendances Maven :

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-repository-client</artifactId>
  <version>11.0.0</version>
</dependency>

Ressources

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne