Histórico da Página
>>>> >>>> PS: Acredito que o local em que essa documentação melhor se encaixe é em "Desenvolvimento sobre a plataforma". <<<< <<<<
No desenvolvimento de uma um widget para o fluig Fluig Plataforma é possível programar certos comportamentos para essa certas ações a serem executadas em tempo de instalação, ativação ou desativação.
Informações | ||
---|---|---|
| ||
Esses eventos estão disponíveis desde que se utilize a "Central de Componentes" disponível no agrupador Aplicativos do Painel de controle ou a "Exportação e Importação de Páginas". Ambas as rotinas encontram-se no painel de controle, na sessão "WCM". disponível no agrupador Personalização do Painel de controle |
Para que isso seja possível, é necessário criar uma classe em seu projeto fluig Fluig que implemente a classe "com.fluig.sdk.api.component.activation.ActivationListener". É necessário também inserir uma annotation de mapeamento para ser depois (mais abaixo) referenciada em seu , que depois deverá ser referenciada no arquivo application.info.
Veja abaixo um exemplo de uma dessa classe:
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
package com.fluig; import javax.ejb.Singleton; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; import com.fluig.sdk.api.component.activation.ActivationEvent; import com.fluig.sdk.api.component.activation.ActivationListener; @Singleton(mappedName = "activator/codigo_widget", name = "activator/codigo_widget") public class ActivationClass implements ActivationListener { /** * @return nome do arquivo que será gerado e feito o deploy na central de componentes * @throws Exception */ @Override public String getArtifactFileName() throws Exception { return "nome-do-arquivo-gerado.war"; } /** * Evento chamado no momento da instalação (deploy) do artefato dentro da Central de Componentes. * @param event * @throws Exception */ @Override public void install(ActivationEvent event) throws Exception { } /** * Evento chamado no momento da ativação do artefato dentro da Central de Componentes. * @param event * @throws Exception */ @Override public void enable(ActivationEvent event) throws Exception { } /** * Evento chamado no momento da desativação do artefato dentro da Central de Componentes. * @param event * @throws Exception */ @Override public void disable(ActivationEvent event) throws Exception { } } |
Em seguida, no arquivo application.info crie deve ser criada a propriedade "activation.class", cujo valor deve ser o mesmo da propriedade "name" da annotation de sua da classe de ativação.
Para o exemplo dado acima a propriedade ficaria ficaria assim:
Bloco de código | ||||
---|---|---|---|---|
| ||||
activation.class=activator/codigo_widget |
...
Além disso, para que seu artefato seja corretamente gerado, é necessário adicionar algumas dependências ao seu projeto. Caso o seu projeto seja do tipo maven.
Utilize o código abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
<dependencies>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>foundation-security-authentication-saml</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>wcm-sdk-service</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>wcm-common</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>fluig-sdk-common</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>fluig-sdk-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>wcm-core</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.fluig</groupId>
<artifactId>ecm-ejb-api</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<archive>
<manifestEntries>
<Dependencies>org.slf4j, com.fluig.api, com.fluig.api.common</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compress</goal>
</goals>
</execution>
</executions>
<configuration>
<nosuffix>false</nosuffix>
<force>true</force>
<linebreakpos>-1</linebreakpos>
<disableOptimizations>false</disableOptimizations>
<gzip>false</gzip>
<jswarn>false</jswarn>
<nomunge>true</nomunge>
<preserveAllSemiColons>false</preserveAllSemiColons>
</configuration>
</plugin>
</plugins>
</build>
|
Informações | ||
---|---|---|
| ||
Para uma visão mais completa dessa técnica, é possível visualizar um dos widgets disponibilizados pela equipe do TOTVS Fluig Plataforma em nosso repositório de samples, como por exemplo o widget de convênios. |