Gerando um .jar a partir de um Custom Interceptor Java
O primeiro passo da criação de um Custom Interceptor Java é a criação de um projeto Java.
Neste caso, criaremos um projeto Maven.
Dentro dele, vamos configurar e instalar a dependência interceptor-java-spec, que pode ser obtida nesta página.
| É possível subir qualquer biblioteca externa? Não, mas é possível usar qualquer lib entre as dependências suportadas pelo API gateway. Você pode acessar a lista de dependências suportadas aqui. | 
pom.xml
Este é um exemplo de pom.xml retirado de um dos repositórios de exemplos sobre Custom Java Interceptor.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.sensedia</groupId>
	<artifactId>custom-java-example</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>
	<name>custom-java-example</name>
	<url>http://maven.apache.org</url>
	<properties>
		<java.version>1.8</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<interceptor-java-spec.version>3.0.1</interceptor-java-spec.version>
		<maven-install-plugin.version>3.0.0-M1</maven-install-plugin.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>com.sensedia</groupId>
			<artifactId>api-interceptor-java-spec</artifactId>
			<version>${interceptor-java-spec.version}</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-install-plugin</artifactId>
				<version>${maven-install-plugin.version}</version>
				<configuration>
					<groupId>com.sensedia</groupId>
					<artifactId>api-interceptor-java-spec</artifactId>
					<version>${interceptor-java-spec.version}</version>
					<packaging>jar</packaging>
					<file>${basedir}/src/main/resources/api-interceptor-java-spec-${interceptor-java-spec.version}.jar</file>
					<generatePom>true</generatePom>
				</configuration>
				<executions>
					<execution>
						<id>install-jar-lib</id>
						<goals>
							<goal>install-file</goal>
						</goals>
						<phase>validate</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					<exclude>**/*.jar</exclude>
				</excludes>
			</resource>
		</resources>
	</build>
	<developers>
		<developer>
			<name>Claudenir Freitas</name>
			<email>claudenir.machado@sensedia.com</email>
			<organization>Sensedia</organization>
			<organizationUrl>https://sensedia.com</organizationUrl>
		</developer>
	</developers>
</project>| A dependência interceptor-java-specdeve estar dentro da pastasrc/main/resources.
Além disso, sua versão deve ser informada nopom.xmlpor meio da tag<interceptor-java-spec.version>. | 
Por fim, instale a dependência com o seguinte comando:
mvn validateCustom Interceptor
Com o projeto e dependências configuradas, os interceptores poderão ser escritos e compilados. Segue abaixo um exemplo:
package com.sensedia.CustomJavaExample;
import com.sensedia.interceptor.externaljar.annotation.ApiSuiteInterceptor;
import com.sensedia.interceptor.externaljar.annotation.InterceptorMethod;
import com.sensedia.interceptor.externaljar.dto.ApiCallData;
@ApiSuiteInterceptor
public class Fluxo01 {
	@InterceptorMethod
	public void setarHeaderRequest(ApiCallData apiCallData) {
		apiCallData.request.addHeader("exec01", "adicionado no request");
	}
	@InterceptorMethod
	public void setarHeaderResponse(ApiCallData apiCallData) {
		apiCallData.response.addHeader("exec02", "adicionado no response");
	}
}Com o interceptor em mãos, podemos gerar um .jar dele para posteriormente subi-lo para a plataforma e utilizar suas funções nos fluxos das APIs.
Para gerar o .jar, você pode utilizar o seguinte comando:
mvn packageApós o término do comando, o .jar será gerado dentro da pasta /target.
Com isso, você já poderá fazer o upload do interceptor na Plataforma e utilizar suas funções nos fluxos.
 
Share your suggestions with us!
          Click here and then [+ Submit idea]