Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include archetypes #36

Merged
merged 5 commits into from
Nov 20, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions jbpm-ee-external-ejb-archetype/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>org.jbpm.jbpm-ee</groupId>
<artifactId>jbpm-ee-external-ejb-archetype</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>maven-archetype</packaging>

<name>jbpm-ee-external-ejb-archetype</name>

<build>
<extensions>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>2.2</version>
</extension>
</extensions>

<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="jbpm-ee-external-ejb"
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fileSets>
<fileSet filtered="true" packaged="true" encoding="UTF-8">
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>src/main/webapp</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory>.settings</directory>
<includes>
<include>**/*.xml</include>
</includes>
</fileSet>
<fileSet encoding="UTF-8">
<directory>.settings</directory>
<includes>
<include>**/*.prefs</include>
<include>**/*.component</include>
<include>**/*.container</include>
<include>**/*.name</include>
<include>**/*.jsdtscope</include>
</includes>
</fileSet>
<fileSet filtered="true" encoding="UTF-8">
<directory></directory>
<includes>
<include>.classpath</include>
<include>.project</include>
</includes>
</fileSet>
</fileSets>
</archetype-descriptor>
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<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>
<artifactId>${artifactId}</artifactId>
<packaging>war</packaging>
<groupId>${groupId}</groupId>
<dependencies>
<dependency>
<groupId>org.jbpm.jbpm-ee</groupId>
<artifactId>jbpm-ee-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-web-6.0</artifactId>
<type>pom</type>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</exclusion>
<exclusion>
<artifactId>javax.inject</artifactId>
<groupId>javax.inject</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm-ee</groupId>
<artifactId>jbpm-ee-ws-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.kie.remote</groupId>
<artifactId>kie-services-client</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- Java EE 6 does not require web.xml -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
<version>${version}</version>
<parent>
<groupId>org.jbpm.jbpm-ee</groupId>
<artifactId>jbpm-ee-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package};

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.jws.WebMethod;

import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.jbpm.ee.services.ProcessService;
import org.jbpm.ee.services.TaskService;
import org.jbpm.ee.services.WorkItemService;
import org.jbpm.ee.support.KieReleaseId;
import org.kie.api.runtime.process.ProcessInstance;
import org.kie.api.runtime.process.WorkItem;
import org.kie.api.task.model.Task;
import org.kie.api.task.model.TaskData;
import org.kie.api.task.model.TaskSummary;
import org.slf4j.Logger;

public abstract class BaseService {
private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(BaseService.class);

protected abstract ProcessService getProcessService();
protected abstract TaskService getTaskService();
protected abstract WorkItemService getWorkItemService();

protected static final KieReleaseId kri = new KieReleaseId("com.redhat.demo", "testProj", "1.0-SNAPSHOT");
protected static final String processId = "testProj.testProcess";

@WebMethod
public Long startProcess() {
ProcessService processService = getProcessService();

final String variableKey = "processString";

Map<String, Object> processVariables = new HashMap<String, Object>();
processVariables.put(variableKey, "Initial");

ProcessInstance processInstance = processService.startProcess(kri, processId, processVariables);
LOG.info("Process Instance: "+processInstance.getId());

return processInstance.getId();
}

@WebMethod
public int taskCount() {
TaskService taskService = getTaskService();;
List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("abaxter", "en-UK");

return tasks.size();
}

@WebMethod
public String listTasks() {

TaskService service = getTaskService();
List<TaskSummary> tasks = service.getTasksAssignedAsPotentialOwner("abaxter", "en-UK");

StringBuilder builder = new StringBuilder();
for(TaskSummary summary : tasks) {
builder.append("Task: "+summary.getId()+", "+summary.getName()+", "+summary.getStatus()+"${symbol_escape}n");
}

return builder.toString();
}

@WebMethod
public String completeTasks() {

TaskService service = getTaskService();
List<TaskSummary> tasks = service.getTasksAssignedAsPotentialOwner("abaxter", "en-UK");

int i=0;
for(TaskSummary summary : tasks) {
service.claim(summary.getId(), "abaxter");
service.start(summary.getId(), "abaxter");

Map<String,Object> testResults = new HashMap<String,Object>();
service.complete(summary.getId(), "abaxter", testResults);
i++;
}

return "Completed: "+i;
}

@WebMethod
public String describeWorkItemsForOpenTasks() {
TaskService service = getTaskService();
List<TaskSummary> tasks = service.getTasksAssignedAsPotentialOwner("abaxter", "en-UK");

StringBuilder builder = new StringBuilder();
for(TaskSummary taskSummary : tasks) {
Task task = service.getTaskById(taskSummary.getId());
TaskData data = task.getTaskData();

WorkItem workItem = getWorkItemService().getWorkItem(data.getWorkItemId());

builder.append(ReflectionToStringBuilder.toString(workItem));
builder.append("${symbol_escape}n");
}

return builder.toString();
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package};

import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.jws.WebMethod;
import javax.jws.WebService;

import ${package}.exception.EJBRuntimeException;
import org.jbpm.ee.services.ProcessService;
import org.jbpm.ee.services.TaskService;
import org.jbpm.ee.services.WorkItemService;
import org.jbpm.ee.services.ejb.remote.ProcessServiceRemote;
import org.jbpm.ee.services.ejb.remote.TaskServiceRemote;
import org.jbpm.ee.services.ejb.remote.WorkItemServiceRemote;
import org.slf4j.Logger;

@WebService(targetNamespace="http://jbpm.org/v6/EJBInjectService/wsdl", serviceName="EJBInjectService")
@LocalBean
@Stateless
public class EJBInjectService extends BaseService {

private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(EJBInjectService.class);

@EJB(lookup = "java:global/jbpm-ee-services/ProcessServiceBean!org.jbpm.ee.services.ejb.remote.ProcessServiceRemote")
private ProcessServiceRemote processService;

@EJB(lookup = "java:global/jbpm-ee-services/TaskServiceBean!org.jbpm.ee.services.ejb.remote.TaskServiceRemote")
private TaskServiceRemote taskService;

@EJB(lookup = "java:global/jbpm-ee-services/WorkItemServiceBean!org.jbpm.ee.services.ejb.remote.WorkItemServiceRemote")
private WorkItemServiceRemote workItemService;


@Override
protected ProcessService getProcessService() {
return processService;
}

@Override
protected TaskService getTaskService() {
return taskService;
}

@Override
protected WorkItemService getWorkItemService() {
return workItemService;
}

/**
* List number of tasks; creates a new process; rolls back.
* Number of tasks should remain consistent.
*/
@WebMethod
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void startProcessThenRollback() {
try {
this.startProcess();
generateException();
}
catch(RuntimeException e) {
LOG.info("Started process, then rolled back. Number of tasks should remain the same before this test was executed.");
throw e;
}
}

private void generateException() {
throw new EJBRuntimeException("Exception to show rollback.");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
package ${package}.exception;

import javax.ejb.ApplicationException;

@ApplicationException(rollback=true)
public class EJBRuntimeException extends RuntimeException {

public EJBRuntimeException(String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
</beans>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#Wed Nov 20 12:38:13 EST 2013
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
artifactId=basic
Loading