O conector do LiveCycle Adobe Experience Manager (AEM) permite a invocação sem problemas do Adobe LiveCycle ES4 Acrobat AEM Services a partir de aplicativos e fluxos de trabalho da Web. O LiveCycle fornece um SDK cliente avançado, que permite que os aplicativos clientes iniciem serviços do LiveCycle usando APIs Java™. O Conector de LiveCycle AEM simplifica o uso dessas APIs no ambiente OSGi.
O Conector do LiveCycle AEM faz parte do Pacote complementar do AEM Forms. Depois de instalar o pacote complementar do AEM Forms, siga as etapas abaixo para adicionar detalhes do servidor LiveCycle ao Console da Web do AEM.
Embora as propriedades sejam autoexplicativas, as importantes são as seguintes:
URL do servidor - Especifica o URL para o servidor do LiveCycle. Se quiser que o LiveCycle e o AEM se comuniquem por https, inicie o AEM com a seguinte JVM
argument
-Djavax.net.ssl.trustStore=<<em>path to LC keystore</em>>
opção.
Nome de usuário- Especifica o nome de usuário da conta usada para estabelecer a comunicação entre o AEM e o LiveCycle. A conta é uma conta de usuário do LiveCycle que tem permissões para iniciar o Acrobat Services.
Senha- Especifica a senha.
Nome do serviço - Especifica os serviços que são iniciados usando as credenciais de usuário fornecidas nos campos Nome de Usuário e Senha. Por padrão, nenhuma credencial é passada ao iniciar os serviços do LiveCycle.
Os aplicativos clientes podem iniciar serviços do LiveCycle de forma programática usando uma API Java™, Serviços da Web, Comunicação remota e REST. Para clientes Java™, o aplicativo pode usar o SDK do LiveCycle. O SDK do LiveCycle fornece uma API Java™ para iniciar esses serviços remotamente. Por exemplo, para converter um documento do Microsoft® Word em PDF, o cliente inicia GeneratePDFService. O fluxo de chamada consiste nas seguintes etapas:
O Conector de LiveCycle AEM simplifica o fluxo ao expor essas instâncias do cliente como serviços OSGi que podem ser acessados usando meios OSGi padrão. O conector do LiveCycle oferece os seguintes recursos:
Para iniciar um serviço exposto de dentro do AEM, execute as seguintes etapas:
Determine as dependências do Maven. Adicione a dependência ao jar do cliente necessário em seu arquivo maven pom.xml. No mínimo, adicione dependência aos jars adobe-livecycle-client e 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>
Para iniciar um serviço, adicione uma dependência Maven correspondente para o serviço. Para obter a lista de dependências, consulte Lista de serviços da Acrobat. Por exemplo, para o serviço Gerar PDF, adicione a seguinte dependência:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-generatepdf-client</artifactId>
<version>11.0.0</version>
</dependency>
Obter a referência do serviço. Obtenha um identificador para a instância do serviço. Se você estiver gravando uma classe Java™, poderá usar as anotações do Declarative Services.
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
);
O trecho de código acima inicia a API createPDF de GeneratePdfServiceClient para converter um documento em PDF. Você pode executar uma invocação semelhante em um JSP usando o código a seguir. A principal diferença é que o código a seguir usa o Sling ScriptHelper para acessar o GeneratePdfServiceClient.
<%@ 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
);
Às vezes, a classe ServiceClientFactory é necessária. Por exemplo, você precisa de ServiceClientFactory para chamar processos.
import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
@Reference
ServiceClientFactoryProvider scfProvider;
...
ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory();
...
Quase todos os serviços da Acrobat no LiveCycle exigem autenticação. Você pode usar qualquer uma das seguintes opções para iniciar esses serviços sem fornecer credenciais explícitas no código:
A configuração do SDK do cliente do LiveCycle contém uma configuração sobre nomes de serviço. Essa configuração é uma lista de serviços para os quais a lógica de invocação usa uma credencial de administrador pronta para uso. Por exemplo, se você adicionar serviços do DiretoryManager (parte da API de gerenciamento de usuários) a essa lista, qualquer código de cliente poderá usar o serviço diretamente. Além disso, a camada de chamada passa automaticamente as credenciais configuradas como parte da solicitação enviada ao servidor do LiveCycle.
Como parte da integração, um novo serviço RunAsManager é fornecido. Ela permite controlar programaticamente uma credencial a ser usada ao chamar o servidor do 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);
Se quiser passar uma credencial diferente, você poderá usar o método sobrecarregado que usa uma instância PasswordCredential.
PasswordCredential credential = new PasswordCredential("administrator","password");
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
public List<Component> run() {
return componentRegistry.getComponents();
}
},credential);
Se você chamar um processo ou fizer uso direto da classe ServiceClientFactory e criar uma InvocationRequest, poderá especificar uma propriedade para indicar que a camada de chamada deve usar credenciais configuradas.
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);
Os seguintes serviços estão disponíveis:
<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>
Os seguintes serviços estão disponíveis:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-livecycle-cq-integration-api</artifactId>
<version>1.1.10</version>
</dependency>
Os seguintes serviços estão disponíveis:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-taskmanager-client</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-workflow-client-sdk</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-generatepdf-client</artifactId>
<version>11.0.0</version>
</dependency>
Os seguintes serviços estão disponíveis:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-applicationmanager-client-sdk</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-assembler-client</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-formdataintegration-client</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-forms-client</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-output-client</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-reader-extensions-client</artifactId>
<version>11.0.0</version>
</dependency>
Os seguintes serviços estão disponíveis:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-rightsmanagement-client</artifactId>
<version>11.0.0</version>
</dependency>
O seguinte serviço está disponível:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-signatures-client</artifactId>
<version>11.0.0</version>
</dependency>
Os seguintes serviços estão disponíveis:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-truststore-client</artifactId>
<version>11.0.0</version>
</dependency>
Os seguintes serviços estão disponíveis:
<dependency>
<groupId>com.adobe.livecycle</groupId>
<artifactId>adobe-repository-client</artifactId>
<version>11.0.0</version>
</dependency>