Skip to content

Commit

Permalink
Release v1.0.1: added the swagger module #1
Browse files Browse the repository at this point in the history
  • Loading branch information
OpenPj committed Jun 29, 2022
1 parent c7426da commit 7696170
Show file tree
Hide file tree
Showing 13 changed files with 10,434 additions and 11 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Activiti SDK v1.0.0
# Activiti SDK v1.0.1

The project consists of the following Maven submodules:

Expand All @@ -7,6 +7,7 @@ The project consists of the following Maven submodules:
* Activiti Rest Overlay WAR (`activiti-app-rest-overlay-war`): generate activiti-rest WAR overlay with Activiti Extensions JAR embedded
* Activiti Admin Overlay WAR (`activiti-admin-overlay-war`): generate activiti-admin WAR overlay
* Activiti Overlay Docker (`activiti-app-overlay-docker`): put your overlayed WAR into the APS Docker container
* Activiti Rest Swagger Client (`activiti-swagger-client`): generate the Activiti Rest Java Swagger client
* Activiti Integration Tests (`activiti-integration-tests`): integration tests

## Capabilities
Expand Down Expand Up @@ -94,7 +95,7 @@ Start your Activiti Docker containers with the following architecture:

* Purge all the Docker volumes:

`mvn clean -Ppurge-volumes`
`mvn clean -Ppurge`

# Activiti Integration Tests Module
This module includes tests for interacting with the Activiti Platform on Docker using Http Client 5.
Expand Down
2 changes: 1 addition & 1 deletion activiti-admin-overlay-war/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.activiti.community</groupId>
<artifactId>activiti-sdk</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<dependencies>
Expand Down
2 changes: 1 addition & 1 deletion activiti-app-overlay-war/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.activiti.community</groupId>
<artifactId>activiti-sdk</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<dependencies>
Expand Down
2 changes: 1 addition & 1 deletion activiti-app-rest-overlay-war/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.activiti.community</groupId>
<artifactId>activiti-sdk</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<dependencies>
Expand Down
2 changes: 1 addition & 1 deletion activiti-docker-overlay/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.activiti.community</groupId>
<artifactId>activiti-sdk</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<build>
Expand Down
2 changes: 1 addition & 1 deletion activiti-extensions-jar/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.activiti.community</groupId>
<artifactId>activiti-sdk</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<dependencyManagement>
Expand Down
11 changes: 10 additions & 1 deletion activiti-integration-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.activiti.community</groupId>
<artifactId>activiti-sdk</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<dependencyManagement>
Expand All @@ -22,6 +22,11 @@
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-jupiter.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>activiti-swagger-client</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

Expand All @@ -35,6 +40,10 @@
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>activiti-swagger-client</artifactId>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package org.activiti.sdk.integrationtests;

import static org.junit.Assert.fail;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.activiti.community.swagger.handler.ApiClient;
import org.activiti.community.swagger.handler.ApiException;
import org.activiti.community.swagger.handler.DeploymentApi;
import org.activiti.community.swagger.handler.ProcessDefinitionsApi;
import org.activiti.community.swagger.handler.ProcessInstancesApi;
import org.activiti.community.swagger.handler.TasksApi;
import org.activiti.community.swagger.handler.UsersApi;
import org.activiti.community.swagger.model.UserRequest;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;

import com.google.gson.internal.LinkedTreeMap;

public class ActivitiSwaggerClientIT {

protected static final String ACTIVITI_REST_USERNAME = "admin";
protected static final String ACTIVITI_REST_PASSWORD = "test";
protected static final String BASE_PATH_PROTOCOL = "http";
protected static final String BASE_PATH_HOSTNAME = "localhost";
protected static final int BASE_PATH_PORT = 8081;

protected static final String ACTIVITI_REST_BASE_PATH = BASE_PATH_PROTOCOL + "://" + BASE_PATH_HOSTNAME + ":"
+ BASE_PATH_PORT + "/activiti-rest/service";

ApiClient activitiClient = null;

ProcessDefinitionsApi processDefApi = null;
TasksApi tasksApi = null;
ProcessInstancesApi processInstancesApi = null;
DeploymentApi deploymentApi = null;
UsersApi usersApi = null;

@BeforeEach
public void init() {
activitiClient = new ApiClient();
activitiClient.setBasePath(ACTIVITI_REST_BASE_PATH);
activitiClient.setUsername(ACTIVITI_REST_USERNAME);
activitiClient.setPassword(ACTIVITI_REST_PASSWORD);

processDefApi = new ProcessDefinitionsApi(activitiClient);
tasksApi = new TasksApi(activitiClient);
processInstancesApi = new ProcessInstancesApi(activitiClient);
deploymentApi = new DeploymentApi(activitiClient);
usersApi = new UsersApi(activitiClient);

}

@SuppressWarnings("unchecked")
@Test
@Order(1)
public void testActivitiSwaggerApi() {
try {
// create a new user
UserRequest userRequest = new UserRequest();
userRequest.setId("plucidi");
userRequest.setFirstName("Piergiorgio");
userRequest.setLastName("Lucidi");
userRequest.setEmail("[email protected]");

usersApi.createUser(userRequest);

// get all the users
List<LinkedTreeMap<String, String>> usersList = (List<LinkedTreeMap<String, String>>) usersApi
.getUsers(null, null, null, null, null, null, null, null, null, null).getData();
Iterator<LinkedTreeMap<String, String>> iteratorUsers = usersList.iterator();
System.out.println("Get Users: ");
while (iteratorUsers.hasNext()) {
LinkedTreeMap<java.lang.String, java.lang.String> linkedTreeMap = (LinkedTreeMap<java.lang.String, java.lang.String>) iteratorUsers
.next();
Iterator<Entry<String, String>> props = linkedTreeMap.entrySet().iterator();
while (props.hasNext()) {
Map.Entry<java.lang.String, java.lang.String> entry = (Map.Entry<java.lang.String, java.lang.String>) props
.next();
System.out.println(entry.getKey() + " = " + entry.getValue());
}
System.out.println("--- --- --- ---");
}

} catch (ApiException e) {
fail(e.getMessage() + " Response body:" + e.getResponseBody());
}
}

@AfterEach
public void clean() {
try {
usersApi.deleteUser("plucidi");
} catch (ApiException e) {
fail(e.getMessage() + " Response body:" + e.getResponseBody());
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.junit.jupiter.api.Test;

public class CustomEndpointIT {

protected static final String ACTIVITI_APP_USERNAME = "admin";
protected static final String ACTIVITI_APP_PASSWORD = "test";
protected static final String BASE_PATH_PROTOCOL = "http";
Expand All @@ -20,7 +20,8 @@ public class CustomEndpointIT {
@Test
@Order(1)
public void testCustomPrivateRestEndpoint() {
IntegrationTestUtils.executePrivateGETRequest(ACTIVITI_APP_USERNAME, ACTIVITI_APP_PASSWORD, BASE_PATH_PROTOCOL,
IntegrationTestUtils
.executePrivateGETRequest(ACTIVITI_APP_USERNAME, ACTIVITI_APP_PASSWORD, BASE_PATH_PROTOCOL,
BASE_PATH_HOSTNAME, BASE_PATH_PORT, PRIVATE_ENDPOINT);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
package org.activiti.sdk.integrationtests;

import static org.junit.Assert.fail;
import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.List;

import org.activiti.community.swagger.handler.ApiClient;
import org.activiti.community.swagger.handler.ApiException;
import org.activiti.community.swagger.handler.ProcessDefinitionsApi;
import org.activiti.community.swagger.handler.ProcessInstancesApi;
import org.activiti.community.swagger.handler.TasksApi;
import org.activiti.community.swagger.handler.UsersApi;
import org.activiti.community.swagger.model.DataResponse;
import org.activiti.community.swagger.model.ProcessDefinitionResponse;
import org.activiti.community.swagger.model.ProcessInstanceCreateRequest;
import org.activiti.community.swagger.model.ProcessInstanceResponse;
import org.activiti.community.swagger.model.TaskActionRequest;
import org.junit.jupiter.api.Order;

import com.google.gson.internal.LinkedTreeMap;

/**
* This test requires that the FourEyes process definition, or any other similar
* processes is installed in the Activiti Engine. Here we are assuming to have a
* process definition that allows to complete the entire process instance with
* just two submissions of two user tasks
*/
public class FourEyesAppIT {

protected static final String ACTIVITI_REST_USERNAME = "admin";
protected static final String ACTIVITI_REST_PASSWORD = "test";
protected static final String BASE_PATH_PROTOCOL = "http";
protected static final String BASE_PATH_HOSTNAME = "localhost";
protected static final int BASE_PATH_PORT = 8081;

protected static final String ACTIVITI_REST_BASE_PATH = BASE_PATH_PROTOCOL + "://" + BASE_PATH_HOSTNAME + ":"
+ BASE_PATH_PORT + "/activiti-rest/service";

ApiClient activitiClient = null;

ProcessDefinitionsApi processDefApi = null;
TasksApi tasksApi = null;
ProcessInstancesApi processInstancesApi = null;
UsersApi usersApi = null;

@SuppressWarnings("unchecked")
// @Test
@Order(1)
public void testActivitiSwaggerApi() {

activitiClient = new ApiClient();
activitiClient.setBasePath(ACTIVITI_REST_BASE_PATH);
activitiClient.setUsername(ACTIVITI_REST_USERNAME);
activitiClient.setPassword(ACTIVITI_REST_PASSWORD);

processDefApi = new ProcessDefinitionsApi(activitiClient);
tasksApi = new TasksApi(activitiClient);
processInstancesApi = new ProcessInstancesApi(activitiClient);

try {

// Get all the process definition
DataResponse dataResponse = processDefApi.getProcessDefinitions(null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null);

List<LinkedTreeMap<String, String>> processDefsList = (List<LinkedTreeMap<String, String>>) dataResponse
.getData();

// Get the first processDefinitionId available in the engine
String processDefinitionId = processDefsList.get(0).get("id");

// Get the process definition
ProcessDefinitionResponse processDefResponse = processDefApi.getProcessDefinition(processDefinitionId);

// Get the process definition key and creates the createRequest for creating a
// new workflow instance
ProcessInstanceCreateRequest createRequest = new ProcessInstanceCreateRequest();
createRequest.setProcessDefinitionId(processDefinitionId);
createRequest.setBusinessKey(processDefResponse.getKey());

// Create a new workflow instance
ProcessInstanceResponse processInstanceResponse = processInstancesApi.createProcessInstance(createRequest);
String processInstanceId = processInstanceResponse.getId();

// Get the current active tasks for this specific process instance
dataResponse = tasksApi.getTasks(null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, processInstanceId, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, Boolean.TRUE, null, null, null, null, null,
null, null);

List<LinkedTreeMap<String, String>> tasksList = (List<LinkedTreeMap<String, String>>) dataResponse
.getData();
String taskId = tasksList.get(0).get("id");

// Execute the submit for the first user task
TaskActionRequest taskActionRequest = new TaskActionRequest();
taskActionRequest.setAction("complete");
tasksApi.executeTaskAction(taskId, taskActionRequest);

// Get the current active tasks again after the submission
dataResponse = tasksApi.getTasks(null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, processInstanceId, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, Boolean.TRUE, null, null, null, null, null,
null, null);

tasksList = (List<LinkedTreeMap<String, String>>) dataResponse.getData();
taskId = tasksList.get(0).get("id");

// Execute the submit for the second user task
taskActionRequest.setAction("complete");
tasksApi.executeTaskAction(taskId, taskActionRequest);

dataResponse = tasksApi.getTasks(null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, processInstanceId, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, Boolean.TRUE, null, null, null, null, null,
null, null);
tasksList = (List<LinkedTreeMap<String, String>>) dataResponse.getData();

// Checking if the process instance is completed
assertEquals(tasksList.size(), 0);

} catch (ApiException e) {
fail(e.getMessage());
}
}

}
Loading

0 comments on commit 7696170

Please sign in to comment.