Histórico da Página
No desenvolvimento de um widget para o Fluig Plataforma é possível programar 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 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 que implemente a classe "com.fluig.sdk.api.component.activation.ActivationListener". É necessário também inserir uma annotation de mapeamento, que depois deverá ser referenciada no arquivo application.info.
Veja abaixo um exemplo 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 deve ser criada a propriedade "activation.class", cujo valor deve ser o mesmo da propriedade "name" da annotation da classe de ativação.
Para o exemplo dado acima a propriedade 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. |