Commit d5e10d56 authored by Brian Long's avatar Brian Long
Browse files

initial checkin

parents
Loading
Loading
Loading
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
+196 −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>activiti-java-enterprise-api</artifactId>
	<version>1.11-v2-SNAPSHOT</version>
	<name>Alfresco Process Services 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>

		<!-- If you want to build for your specific version, point to your own 
			installation -->
		<aps.baseUrl>https://activiti.alfresco.com</aps.baseUrl>

		<spring.version>5.2.14.RELEASE</spring.version>
		<spring-boot.version>2.3.10.RELEASE</spring-boot.version>
		<jersey.version>2.34</jersey.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
			<version>${jersey.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.inject</groupId>
			<artifactId>jersey-hk2</artifactId>
			<version>${jersey.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-json-jackson</artifactId>
			<version>${jersey.version}</version>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.security</groupId>
			<artifactId>oauth2-client</artifactId>
			<version>${jersey.version}</version>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>5.7.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</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>5.7.2</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<!-- Implement when descriptor is available -->
		<profile>
			<id>openapi-codegen</id>
		</profile>
		<!-- RAML seems legacy, but works -->
		<profile>
			<id>raml-codegen</id>
			<properties>
				<aps.ramlUrl>${aps.baseUrl}/activiti-app/raml/activiti.raml</aps.ramlUrl>
			</properties>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-clean-plugin</artifactId>
						<version>3.1.0</version>
						<configuration>
							<filesets>
								<fileset>
									<directory>src/main/java</directory>
									<includes>
										<include>com/inteligr8/alfresco/activiti/raml/**/*</include>
									</includes>
								</fileset>
							</filesets>
						</configuration>
					</plugin>
					<plugin>
						<groupId>com.googlecode.maven-download-plugin</groupId>
						<artifactId>download-maven-plugin</artifactId>
						<version>1.6.3</version>
						<executions>
							<execution>
								<id>download-aps-raml</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>wget</goal>
								</goals>
								<configuration>
									<url>${aps.ramlUrl}</url>
									<outputDirectory>${project.build.directory}/downloads</outputDirectory>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>com.inteligr8</groupId>
						<artifactId>regex-maven-plugin</artifactId>
						<version>1.0.2</version>
						<executions>
							<execution>
								<id>fix-displayName</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>replace-file</goal>
								</goals>
								<configuration>
									<filesets>
										<fileset>
											<directory>${project.build.directory}/downloads</directory>
											<includes>
												<include>activiti.raml</include>
											</includes>
											<outputDirectory>${project.build.directory}/regexed</outputDirectory>
										</fileset>
									</filesets>
									<regexes>
										<regex>
											<pattern>(^|[^A-Za-z])task-id([^A-Za-z]|$)</pattern>
											<replacement>$1taskId$2</replacement>
										</regex>
										<regex>
											<pattern>^([ ]*)displayName</pattern>
											<replacement>#$1 displayName</replacement>
										</regex>
									</regexes>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.mule.raml.codegen</groupId>
						<artifactId>raml-client-generator-maven-plugin</artifactId>
						<version>0.11</version>
						<executions>
							<execution>
								<id>raml-aps-codegen</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>generate-client</goal>
								</goals>
								<configuration>
									<basePackage>com.inteligr8.alfresco.activiti.raml</basePackage>
									<ramlFile>${project.build.directory}/regexed/activiti.raml</ramlFile>
									<includeAdditionalProperties>false</includeAdditionalProperties>
									<outputDir>${basedir}/src/main/java</outputDir>
									<outputVersion>v2</outputVersion>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
			<pluginRepositories>
				<pluginRepository>
					<id>mulesoft-releases</id>
					<url>https://repository.mulesoft.org/releases</url>
				</pluginRepository>
				<pluginRepository>
					<id>inteligr8-public</id>
					<url>http://repos.inteligr8.com/nexus/repository/inteligr8-public</url>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>
</project>
 No newline at end of file
+39 −0
Original line number Diff line number Diff line
package com.inteligr8.alfresco.activiti;

import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Feature;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.inteligr8.alfresco.activiti.raml.resource.enterprise.Enterprise;

/**
 * Afresco Process Services Spring Client
 */
@Component
public class Client {
	
	private static final Client INSTANCE = new Client();
	
	public static Client getInstance() {
		return Client.INSTANCE;
	}
	

	
	@Autowired
	private ClientConfiguration config;
	
	public Enterprise getEnterpriseApi() {
		javax.ws.rs.client.Client client = ClientBuilder
				.newClient();
		
		Feature feature = this.config.getAuthorizationFeature();
		if (feature != null)
			client.register(feature);
		
		return new Enterprise(this.config.getBaseUrl() + "/api", client);
	}

}
+41 −0
Original line number Diff line number Diff line
package com.inteligr8.alfresco.activiti;

import javax.ws.rs.core.Feature;

import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
import org.glassfish.jersey.client.oauth2.OAuth2ClientSupport;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan
public class ClientConfiguration {

	@Value("${process.service.baseUrl}")
	private String baseUrl;

	@Value("${process.service.security.basicAuth.username}")
	private String basicAuthUsername;

	@Value("${process.service.security.basicAuth.password}")
	private String basicAuthPassword;

	@Value("${process.service.security.accessToken}")
	private String accessToken;
	
	public String getBaseUrl() {
		return this.baseUrl;
	}

	public Feature getAuthorizationFeature() {
		if (this.basicAuthUsername != null) {
			return HttpAuthenticationFeature.basic(this.basicAuthUsername, this.basicAuthPassword);
		} else if (this.accessToken != null) {
			return OAuth2ClientSupport.feature(this.accessToken);
		}
		
		return null;
	}

}
+43 −0
Original line number Diff line number Diff line

package com.inteligr8.alfresco.activiti.raml.api;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import com.inteligr8.alfresco.activiti.raml.resource.enterprise.Enterprise;


/**
 * Afresco Process Services API Documentation
 * 
 */
public class AfrescoProcessServicesAPIClient {

    private String _baseUrl;
    public final Enterprise enterprise;

    public AfrescoProcessServicesAPIClient(String baseUrl) {
        _baseUrl = baseUrl;
        enterprise = new Enterprise(getBaseUri(), getClient());
    }

    public AfrescoProcessServicesAPIClient() {
        this("http://localhost:8080/activiti-app/raml/activiti.raml");
    }

    protected Client getClient() {
        return ClientBuilder.newClient();
    }

    protected String getBaseUri() {
        return _baseUrl;
    }

    public static AfrescoProcessServicesAPIClient create(String baseUrl) {
        return new AfrescoProcessServicesAPIClient(baseUrl);
    }

    public static AfrescoProcessServicesAPIClient create() {
        return new AfrescoProcessServicesAPIClient();
    }

}
Loading