Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
6dff96f35f | |||
09d6f5b885 | |||
c716057a24 | |||
ce6e4752df | |||
bf779a8d18 | |||
6e0e1eaa1c | |||
17515d4be3 | |||
b146e1d55a |
2
pom.xml
2
pom.xml
@@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>com.inteligr8.alfresco</groupId>
|
||||
<artifactId>aps-public-rest-api</artifactId>
|
||||
<version>2.0.12</version>
|
||||
<version>2.0.14</version>
|
||||
|
||||
<name>Alfresco Process Services ReST API for Java</name>
|
||||
<description>An APS API library for building REST API clients that support both the CXF and Jersey frameworks</description>
|
||||
|
@@ -14,7 +14,13 @@
|
||||
*/
|
||||
package com.inteligr8.activiti;
|
||||
|
||||
import com.inteligr8.activiti.api.DeadletterJobsApi;
|
||||
import com.inteligr8.activiti.api.ExecutionApi;
|
||||
import com.inteligr8.activiti.api.JobsApi;
|
||||
import com.inteligr8.activiti.api.ManagementApi;
|
||||
import com.inteligr8.activiti.api.ProcessInstanceApi;
|
||||
import com.inteligr8.activiti.api.RuntimeApi;
|
||||
import com.inteligr8.activiti.api.TimerJobsApi;
|
||||
|
||||
/**
|
||||
* This interface consolidates the JAX-RS APIs available in the open-source
|
||||
@@ -30,4 +36,28 @@ public interface ActivitiPublicRestApi {
|
||||
return this.getApi(ManagementApi.class);
|
||||
}
|
||||
|
||||
default RuntimeApi getRuntimeApi() {
|
||||
return this.getApi(RuntimeApi.class);
|
||||
}
|
||||
|
||||
default JobsApi getJobsApi() {
|
||||
return this.getApi(JobsApi.class);
|
||||
}
|
||||
|
||||
default DeadletterJobsApi getDeadletterJobsApi() {
|
||||
return this.getApi(DeadletterJobsApi.class);
|
||||
}
|
||||
|
||||
default TimerJobsApi getTimerJobsApi() {
|
||||
return this.getApi(TimerJobsApi.class);
|
||||
}
|
||||
|
||||
default ProcessInstanceApi getProcessInstanceApi() {
|
||||
return this.getApi(ProcessInstanceApi.class);
|
||||
}
|
||||
|
||||
default ExecutionApi getExecutionApi() {
|
||||
return this.getApi(ExecutionApi.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
163
src/main/java/com/inteligr8/activiti/api/BaseJobsApi.java
Normal file
163
src/main/java/com/inteligr8/activiti/api/BaseJobsApi.java
Normal file
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.activiti.api;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import com.inteligr8.activiti.model.Action;
|
||||
import com.inteligr8.activiti.model.Action.ActionValue;
|
||||
import com.inteligr8.activiti.model.Job;
|
||||
import com.inteligr8.activiti.model.ResultList;
|
||||
|
||||
public interface BaseJobsApi {
|
||||
|
||||
@GET
|
||||
@Path("{jobId}")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public Job getJob(
|
||||
@PathParam("jobId") String jobId);
|
||||
|
||||
@DELETE
|
||||
@Path("{jobId}")
|
||||
public void deleteJob(
|
||||
@PathParam("jobId") String jobId);
|
||||
|
||||
@POST
|
||||
@Path("{jobId}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
public void executeJob(
|
||||
@PathParam("jobId") String jobId,
|
||||
Action execute);
|
||||
|
||||
default void executeJob(
|
||||
String jobId,
|
||||
ActionValue action) {
|
||||
this.executeJob(jobId, new Action(action));
|
||||
}
|
||||
|
||||
default void executeJob(
|
||||
String jobId) {
|
||||
this.executeJob(jobId, new Action(ActionValue.Execute));
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("{jobId}/execution-stacktrace")
|
||||
@Produces({ MediaType.APPLICATION_OCTET_STREAM })
|
||||
public File getJobStacktrace(
|
||||
@PathParam("jobId") String jobId);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("withoutTenantId") Boolean withoutTenatId,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("tenantId") String tenantId,
|
||||
@QueryParam("tenantIdLike") String tenantIdLike,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("withoutTenantId") Boolean withoutTenatId,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("tenantId") String tenantId,
|
||||
@QueryParam("tenantIdLike") String tenantIdLike,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("id") String jobId,
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("withoutTenantId") Boolean withoutTenatId,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("id") String jobId,
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("tenantId") String tenantId,
|
||||
@QueryParam("tenantIdLike") String tenantIdLike,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.activiti.api;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
@Path("/api/management/deadletter-jobs")
|
||||
public interface DeadletterJobsApi extends BaseJobsApi {
|
||||
}
|
@@ -163,7 +163,7 @@ public interface ExecutionApi {
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Execution> getByAny(
|
||||
ResultList<Execution> getByAny(
|
||||
@QueryParam("id") String executionId,
|
||||
@QueryParam("activityId") String activityId,
|
||||
@QueryParam("processDefinitionKey") String processDefinitionKey,
|
||||
|
21
src/main/java/com/inteligr8/activiti/api/JobsApi.java
Normal file
21
src/main/java/com/inteligr8/activiti/api/JobsApi.java
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.activiti.api;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
@Path("/api/management/jobs")
|
||||
public interface JobsApi extends BaseJobsApi {
|
||||
}
|
@@ -14,25 +14,13 @@
|
||||
*/
|
||||
package com.inteligr8.activiti.api;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import com.inteligr8.activiti.model.Action;
|
||||
import com.inteligr8.activiti.model.Action.ActionValue;
|
||||
import com.inteligr8.activiti.model.Engine;
|
||||
import com.inteligr8.activiti.model.EngineProperties;
|
||||
import com.inteligr8.activiti.model.Job;
|
||||
import com.inteligr8.activiti.model.ResultList;
|
||||
|
||||
@Path("/api/management")
|
||||
public interface ManagementApi {
|
||||
@@ -46,146 +34,5 @@ public interface ManagementApi {
|
||||
@Path("properties")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public EngineProperties getEngineProperties();
|
||||
|
||||
|
||||
|
||||
@Path("jobs")
|
||||
public interface JobsApiImpl extends JobsApi {}
|
||||
|
||||
@Path("timer-jobs")
|
||||
public interface TimerJobsApiImpl extends JobsApi {}
|
||||
|
||||
@Path("deadletter-jobs")
|
||||
public interface DeadletterJobsApiImpl extends JobsApi {}
|
||||
|
||||
public interface JobsApi {
|
||||
|
||||
@GET
|
||||
@Path("{jobId}")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public Job getJob(
|
||||
@PathParam("jobId") String jobId);
|
||||
|
||||
@DELETE
|
||||
@Path("{jobId}")
|
||||
public void deleteJob(
|
||||
@PathParam("jobId") String jobId);
|
||||
|
||||
@POST
|
||||
@Path("{jobId}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
public void executeJob(
|
||||
@PathParam("jobId") String jobId,
|
||||
Action execute);
|
||||
|
||||
default void executeJob(
|
||||
String jobId,
|
||||
ActionValue action) {
|
||||
this.executeJob(jobId, new Action(action));
|
||||
}
|
||||
|
||||
default void executeJob(
|
||||
String jobId) {
|
||||
this.executeJob(jobId, new Action(ActionValue.Execute));
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("{jobId}/execution-stacktrace")
|
||||
@Produces({ MediaType.APPLICATION_OCTET_STREAM })
|
||||
public File getJobStacktrace(
|
||||
@PathParam("jobId") String jobId);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("withoutTenantId") Boolean withoutTenatId,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("tenantId") String tenantId,
|
||||
@QueryParam("tenantIdLike") String tenantIdLike,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("withoutTenantId") Boolean withoutTenatId,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("tenantId") String tenantId,
|
||||
@QueryParam("tenantIdLike") String tenantIdLike,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("id") String jobId,
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("withoutTenantId") Boolean withoutTenatId,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
@GET
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<Job> queryJobs(
|
||||
@QueryParam("id") String jobId,
|
||||
@QueryParam("processInstanceId") String processInstanceId,
|
||||
@QueryParam("executionId") String executionId,
|
||||
@QueryParam("processDefinitionId") String processDefinitionId,
|
||||
@QueryParam("withRetriesLeft") Boolean withRetriesLeft,
|
||||
@QueryParam("executable") Boolean executable,
|
||||
@QueryParam("withException") Boolean withException,
|
||||
@QueryParam("dueBefore") LocalDate dueBefore,
|
||||
@QueryParam("dueAfter") LocalDate dueAfter,
|
||||
@QueryParam("exceptionMessage") String exceptionMessage,
|
||||
@QueryParam("tenantId") String tenantId,
|
||||
@QueryParam("tenantIdLike") String tenantIdLike,
|
||||
@QueryParam("sort") String sort);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
21
src/main/java/com/inteligr8/activiti/api/TimerJobsApi.java
Normal file
21
src/main/java/com/inteligr8/activiti/api/TimerJobsApi.java
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.activiti.api;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
@Path("/api/management/timer-jobs")
|
||||
public interface TimerJobsApi extends BaseJobsApi {
|
||||
}
|
@@ -24,6 +24,7 @@ import com.inteligr8.alfresco.activiti.api.ProcessInstancesApi;
|
||||
import com.inteligr8.alfresco.activiti.api.ProfileApi;
|
||||
import com.inteligr8.alfresco.activiti.api.ShareApi;
|
||||
import com.inteligr8.alfresco.activiti.api.TasksApi;
|
||||
import com.inteligr8.alfresco.activiti.api.TemplatesApi;
|
||||
|
||||
/**
|
||||
* This interface consolidates the JAX-RS APIs available in the APS Public
|
||||
@@ -75,4 +76,8 @@ public interface ApsPublicRestApi extends ActivitiPublicRestApi {
|
||||
return this.getApi(ShareApi.class);
|
||||
}
|
||||
|
||||
default TemplatesApi getTemplatesApi() {
|
||||
return this.getApi(TemplatesApi.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.inteligr8.alfresco.activiti;
|
||||
|
||||
import com.inteligr8.alfresco.activiti.api.AppDefinitionsCxfApi;
|
||||
import com.inteligr8.alfresco.activiti.api.TemplatesCxfApi;
|
||||
|
||||
/**
|
||||
* This interface appends Apache CXF implementation specific methods to the
|
||||
@@ -14,5 +15,9 @@ public interface ApsPublicRestCxfApi extends ApsPublicRestApi {
|
||||
default AppDefinitionsCxfApi getAppDefinitionsCxfApi() {
|
||||
return this.getApi(AppDefinitionsCxfApi.class);
|
||||
}
|
||||
|
||||
default TemplatesCxfApi getTemplatesCxfApi() {
|
||||
return this.getApi(TemplatesCxfApi.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.inteligr8.alfresco.activiti;
|
||||
|
||||
import com.inteligr8.alfresco.activiti.api.AppDefinitionsJerseyApi;
|
||||
import com.inteligr8.alfresco.activiti.api.TemplatesJerseyApi;
|
||||
|
||||
/**
|
||||
* This interface appends Jersey implementation specific methods to the JAX-RS
|
||||
@@ -14,5 +15,9 @@ public interface ApsPublicRestJerseyApi extends ApsPublicRestApi {
|
||||
default AppDefinitionsJerseyApi getAppDefinitionsJerseyApi() {
|
||||
return this.getApi(AppDefinitionsJerseyApi.class);
|
||||
}
|
||||
|
||||
default TemplatesJerseyApi getTemplatesJerseyApi() {
|
||||
return this.getApi(TemplatesJerseyApi.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,133 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.alfresco.activiti.api;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.DELETE;
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.PUT;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import com.inteligr8.activiti.model.ResultList;
|
||||
import com.inteligr8.alfresco.activiti.model.DocumentTemplateLight;
|
||||
import com.inteligr8.alfresco.activiti.model.EmailTemplate;
|
||||
import com.inteligr8.alfresco.activiti.model.EmailTemplateLight;
|
||||
|
||||
/**
|
||||
* This is an undocumented API.
|
||||
*
|
||||
* @author brian@inteligr8.com
|
||||
*/
|
||||
@Path("/app/rest")
|
||||
public interface TemplatesApi {
|
||||
|
||||
@GET
|
||||
@Path("email-templates/system")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<EmailTemplateLight> getSystemEmailTemplates(
|
||||
@QueryParam("tenantId") Long tenantId);
|
||||
|
||||
@GET
|
||||
@Path("email-templates/custom")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<EmailTemplateLight> getCustomEmailTemplates(
|
||||
@QueryParam("nameFilter") String nameFilter,
|
||||
@QueryParam("start") Integer start,
|
||||
@QueryParam("size") Integer size,
|
||||
@QueryParam("sort") String sort,
|
||||
@QueryParam("tenantId") Long tenantId);
|
||||
|
||||
@GET
|
||||
@Path("email-templates/custom/{templateName}")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public EmailTemplate getSystemEmailTemplate(
|
||||
@PathParam("templateName") String name,
|
||||
@QueryParam("tenantId") Long tenantId);
|
||||
|
||||
@GET
|
||||
@Path("email-templates/custom/{templateId}")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public EmailTemplate getCustomEmailTemplate(
|
||||
@PathParam("templateId") long id,
|
||||
@QueryParam("tenantId") Long tenantId);
|
||||
|
||||
@POST
|
||||
@Path("email-templates/custom")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public EmailTemplateLight createCustomEmailTemplate(
|
||||
EmailTemplate template);
|
||||
|
||||
@PUT
|
||||
@Path("email-templates/custom/{templateName}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public EmailTemplate updateSystemEmailTemplate(
|
||||
@PathParam("templateName") String name,
|
||||
EmailTemplate template);
|
||||
|
||||
@PUT
|
||||
@Path("email-templates/custom/{templateId}")
|
||||
@Consumes({ MediaType.APPLICATION_JSON })
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public EmailTemplate updateCustomEmailTemplate(
|
||||
@PathParam("templateId") long id,
|
||||
EmailTemplate template);
|
||||
|
||||
@DELETE
|
||||
@Path("email-templates/custom/{templateId}")
|
||||
public void deleteCustomEmailTemplate(
|
||||
@PathParam("templateId") long id,
|
||||
@QueryParam("tenantId") Long tenantId);
|
||||
|
||||
|
||||
|
||||
@GET
|
||||
@Path("document-templates")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public ResultList<DocumentTemplateLight> getDocumentTemplates(
|
||||
@QueryParam("nameFilter") String nameFilter,
|
||||
@QueryParam("start") Integer start,
|
||||
@QueryParam("size") Integer size,
|
||||
@QueryParam("sort") String sort,
|
||||
@QueryParam("tenantId") Long tenantId);
|
||||
|
||||
default Response getDocumentTemplate(
|
||||
DocumentTemplateLight template) {
|
||||
return this.getDocumentTemplate(template.getId(), template.getCreated().toInstant().toEpochMilli());
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("document-templates/{templateId}/file")
|
||||
@Produces({
|
||||
"application/msword",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.template"
|
||||
})
|
||||
public Response getDocumentTemplate(
|
||||
@PathParam("templateId") long id,
|
||||
@QueryParam("version") long version);
|
||||
|
||||
@DELETE
|
||||
@Path("document-templates/{templateId}")
|
||||
public void deleteDocumentTemplate();
|
||||
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.alfresco.activiti.api;
|
||||
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import com.inteligr8.alfresco.activiti.model.DocumentTemplateLight;
|
||||
import com.inteligr8.alfresco.activiti.model.FileMultipartCxf;
|
||||
|
||||
/**
|
||||
* This is an undocumented API.
|
||||
*
|
||||
* @author brian@inteligr8.com
|
||||
*/
|
||||
@Path("/app/rest")
|
||||
public interface TemplatesCxfApi extends TemplatesApi {
|
||||
|
||||
@POST
|
||||
@Path("admin/document-templates")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public DocumentTemplateLight createDocumentTemplate(
|
||||
@QueryParam("tenantId") Long tenantId,
|
||||
FileMultipartCxf file);
|
||||
|
||||
@POST
|
||||
@Path("admin/document-templates/{templateId}")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public DocumentTemplateLight updateDocumentTemplate(
|
||||
@PathParam("templateId") long id,
|
||||
@QueryParam("tenantId") Long tenantId,
|
||||
FileMultipartCxf file);
|
||||
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along
|
||||
* with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.inteligr8.alfresco.activiti.api;
|
||||
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.PathParam;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import com.inteligr8.alfresco.activiti.model.DocumentTemplateLight;
|
||||
import com.inteligr8.alfresco.activiti.model.FileMultipartJersey;
|
||||
|
||||
/**
|
||||
* This is an undocumented API.
|
||||
*
|
||||
* @author brian@inteligr8.com
|
||||
*/
|
||||
@Path("/app/rest")
|
||||
public interface TemplatesJerseyApi extends TemplatesApi {
|
||||
|
||||
@POST
|
||||
@Path("admin/document-templates")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public DocumentTemplateLight createDocumentTemplate(
|
||||
@QueryParam("tenantId") Long tenantId,
|
||||
FileMultipartJersey file);
|
||||
|
||||
@POST
|
||||
@Path("admin/document-templates/{templateId}")
|
||||
@Produces({ MediaType.APPLICATION_JSON })
|
||||
public DocumentTemplateLight updateDocumentTemplate(
|
||||
@PathParam("templateId") long id,
|
||||
@QueryParam("tenantId") Long tenantId,
|
||||
FileMultipartJersey file);
|
||||
|
||||
}
|
@@ -0,0 +1,64 @@
|
||||
package com.inteligr8.alfresco.activiti.model;
|
||||
|
||||
import java.time.OffsetDateTime;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class BaseTemplateLight {
|
||||
|
||||
@JsonProperty
|
||||
private Long id;
|
||||
@JsonProperty(required = true)
|
||||
private String name;
|
||||
@JsonProperty
|
||||
private OffsetDateTime created;
|
||||
@JsonProperty
|
||||
private UserLight createdBy;
|
||||
@JsonProperty
|
||||
private Integer tenantId;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public OffsetDateTime getCreated() {
|
||||
return created;
|
||||
}
|
||||
|
||||
public void setCreated(OffsetDateTime created) {
|
||||
this.created = created;
|
||||
}
|
||||
|
||||
public UserLight getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(UserLight createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Integer getTenantId() {
|
||||
return tenantId;
|
||||
}
|
||||
|
||||
public void setTenantId(Integer tenantId) {
|
||||
this.tenantId = tenantId;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
package com.inteligr8.alfresco.activiti.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class DocumentTemplateLight extends BaseTemplateLight {
|
||||
|
||||
@JsonProperty
|
||||
private Integer modelId;
|
||||
@JsonProperty
|
||||
private String mimeType;
|
||||
@JsonProperty
|
||||
private String simpleType;
|
||||
|
||||
public Integer getModelId() {
|
||||
return modelId;
|
||||
}
|
||||
|
||||
public void setModelId(Integer modelId) {
|
||||
this.modelId = modelId;
|
||||
}
|
||||
|
||||
public String getMimeType() {
|
||||
return mimeType;
|
||||
}
|
||||
|
||||
public void setMimeType(String mimeType) {
|
||||
this.mimeType = mimeType;
|
||||
}
|
||||
|
||||
public String getSimpleType() {
|
||||
return simpleType;
|
||||
}
|
||||
|
||||
public void setSimpleType(String simpleType) {
|
||||
this.simpleType = simpleType;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
package com.inteligr8.alfresco.activiti.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class EmailTemplate extends EmailTemplateLight {
|
||||
|
||||
@JsonProperty
|
||||
private String template;
|
||||
|
||||
public String getTemplate() {
|
||||
return template;
|
||||
}
|
||||
|
||||
public void setTemplate(String template) {
|
||||
this.template = template;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
package com.inteligr8.alfresco.activiti.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class EmailTemplateLight extends BaseTemplateLight {
|
||||
|
||||
@JsonProperty
|
||||
private String systemTemplateId;
|
||||
@JsonProperty
|
||||
private String subject;
|
||||
|
||||
public String getSystemTemplateId() {
|
||||
return systemTemplateId;
|
||||
}
|
||||
|
||||
public void setSystemTemplateId(String systemTemplateId) {
|
||||
this.systemTemplateId = systemTemplateId;
|
||||
}
|
||||
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public void setSubject(String subject) {
|
||||
this.subject = subject;
|
||||
}
|
||||
|
||||
}
|
@@ -4,5 +4,15 @@ import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class Variable extends com.inteligr8.activiti.model.Variable {
|
||||
|
||||
/**
|
||||
* No args constructor for use in serialization
|
||||
*/
|
||||
public Variable() {
|
||||
}
|
||||
|
||||
public Variable(String name, String scope, String type, Object value) {
|
||||
super(name, scope, type, value);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user