Loading .gitignore 0 → 100644 +11 −0 Original line number Diff line number Diff line # Maven target pom.xml.versionsBackup # Eclipse .project .classpath .settings # Visual Studio Code .vscode pom.xml 0 → 100644 +142 −0 Original line number Diff line number Diff line <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.inteligr8</groupId> <artifactId>common-rest-api</artifactId> <version>1.0-SNAPSHOT</version> <name>ReST API Client for Java</name> <properties> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <junit.version>5.7.2</junit.version> <spring.version>5.2.14.RELEASE</spring.version> <jersey.version>2.34</jersey.version> <cxf.version>3.3.2</cxf.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.29</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-proxy-client</artifactId> <version>${jersey.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-client</artifactId> <version>${cxf.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> </dependency> </dependencies> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>3.0.0-M5</version> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>io.repaint.maven</groupId> <artifactId>tiles-maven-plugin</artifactId> <version>2.21</version> <extensions>true</extensions> <configuration> <filtering>true</filtering> <tiles> <tile>com.inteligr8:maven-public-deploy-tile:[1.0.0,2.0.0)</tile> </tiles> </configuration> </plugin> </plugins> </build> <pluginRepositories> <pluginRepository> <id>inteligr8-releases</id> <url>http://repos.inteligr8.com/nexus/repository/inteligr8-public</url> </pluginRepository> </pluginRepositories> </project> No newline at end of file src/main/java/com/inteligr8/rs/AccessTokenRequestFilter.java 0 → 100644 +20 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.HttpHeaders; public class AccessTokenRequestFilter implements ClientRequestFilter { private final String token; public AccessTokenRequestFilter(String token) { this.token = token; } @Override public void filter(ClientRequestContext requestContext) { requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + this.token); } } src/main/java/com/inteligr8/rs/BasicAuthRequestFilter.java 0 → 100644 +28 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import java.io.UnsupportedEncodingException; import java.util.Base64; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.HttpHeaders; public class BasicAuthRequestFilter implements ClientRequestFilter { private final String username; private final String password; public BasicAuthRequestFilter(String username, String password) { this.username = username; this.password = password; } @Override public void filter(ClientRequestContext requestContext) throws UnsupportedEncodingException { String userAndPass = this.username + ":" + this.password; String userAndPassEncoded = Base64.getEncoder().encodeToString(userAndPass.getBytes("utf-8")); requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Basic " + userAndPassEncoded); } } src/main/java/com/inteligr8/rs/Client.java 0 → 100644 +34 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.client.WebTarget; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; /** * Configured JAX-RS Client & WebTarget */ public abstract class Client { protected abstract ClientConfiguration getConfig(); public javax.ws.rs.client.Client getClient() { ClientRequestFilter authFilter = this.getConfig().getAuthorizationFilter(); ClientBuilder clientBuilder = ClientBuilder.newBuilder() .register(new JacksonJaxbJsonProvider()); if (authFilter != null) clientBuilder.register(authFilter); return clientBuilder.build(); } public WebTarget getTarget() { return this.getClient() .target(this.getConfig().getBaseUrl()); } public abstract <T> T getApi(Class<T> apiClass); } Loading
.gitignore 0 → 100644 +11 −0 Original line number Diff line number Diff line # Maven target pom.xml.versionsBackup # Eclipse .project .classpath .settings # Visual Studio Code .vscode
pom.xml 0 → 100644 +142 −0 Original line number Diff line number Diff line <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.inteligr8</groupId> <artifactId>common-rest-api</artifactId> <version>1.0-SNAPSHOT</version> <name>ReST API Client for Java</name> <properties> <project.build.sourceEncoding>utf-8</project.build.sourceEncoding> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <junit.version>5.7.2</junit.version> <spring.version>5.2.14.RELEASE</spring.version> <jersey.version>2.34</jersey.version> <cxf.version>3.3.2</cxf.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.12.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.29</version> </dependency> <dependency> <groupId>jakarta.ws.rs</groupId> <artifactId>jakarta.ws.rs-api</artifactId> <version>2.1.6</version> </dependency> <dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-proxy-client</artifactId> <version>${jersey.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-rs-client</artifactId> <version>${cxf.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>${jersey.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.9</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M5</version> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> </dependency> </dependencies> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>3.0.0-M5</version> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> </dependency> </dependencies> </plugin> <plugin> <groupId>io.repaint.maven</groupId> <artifactId>tiles-maven-plugin</artifactId> <version>2.21</version> <extensions>true</extensions> <configuration> <filtering>true</filtering> <tiles> <tile>com.inteligr8:maven-public-deploy-tile:[1.0.0,2.0.0)</tile> </tiles> </configuration> </plugin> </plugins> </build> <pluginRepositories> <pluginRepository> <id>inteligr8-releases</id> <url>http://repos.inteligr8.com/nexus/repository/inteligr8-public</url> </pluginRepository> </pluginRepositories> </project> No newline at end of file
src/main/java/com/inteligr8/rs/AccessTokenRequestFilter.java 0 → 100644 +20 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.HttpHeaders; public class AccessTokenRequestFilter implements ClientRequestFilter { private final String token; public AccessTokenRequestFilter(String token) { this.token = token; } @Override public void filter(ClientRequestContext requestContext) { requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + this.token); } }
src/main/java/com/inteligr8/rs/BasicAuthRequestFilter.java 0 → 100644 +28 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import java.io.UnsupportedEncodingException; import java.util.Base64; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.core.HttpHeaders; public class BasicAuthRequestFilter implements ClientRequestFilter { private final String username; private final String password; public BasicAuthRequestFilter(String username, String password) { this.username = username; this.password = password; } @Override public void filter(ClientRequestContext requestContext) throws UnsupportedEncodingException { String userAndPass = this.username + ":" + this.password; String userAndPassEncoded = Base64.getEncoder().encodeToString(userAndPass.getBytes("utf-8")); requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Basic " + userAndPassEncoded); } }
src/main/java/com/inteligr8/rs/Client.java 0 → 100644 +34 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.ClientRequestFilter; import javax.ws.rs.client.WebTarget; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; /** * Configured JAX-RS Client & WebTarget */ public abstract class Client { protected abstract ClientConfiguration getConfig(); public javax.ws.rs.client.Client getClient() { ClientRequestFilter authFilter = this.getConfig().getAuthorizationFilter(); ClientBuilder clientBuilder = ClientBuilder.newBuilder() .register(new JacksonJaxbJsonProvider()); if (authFilter != null) clientBuilder.register(authFilter); return clientBuilder.build(); } public WebTarget getTarget() { return this.getClient() .target(this.getConfig().getBaseUrl()); } public abstract <T> T getApi(Class<T> apiClass); }