[jboss-user] [jBPM] - Re: Could not getting tasks for business administrators through task client

tom sebastian do-not-reply at jboss.com
Fri Nov 16 00:17:18 EST 2012


tom sebastian [https://community.jboss.org/people/tomsebastian] created the discussion

"Re: Could not getting tasks for business administrators through task client"

To view the discussion, visit: https://community.jboss.org/message/776821#776821

--------------------------------------------------------------
This was my class.

public class BusinessAdminTest {


          private static final long DEFAULT_WAIT_TIME = 10000l;
          private TaskClient client;
          private WorkItemManager manager;
          private String ipAddress="192.168.1.111";
          private int port=9123;

          private void createClient() {
                    if (client == null) {
                              client = new TaskClient(new MinaTaskClientConnector("com.task.BusinessAdminTest",
                                                                                                    new MinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
                              boolean connected = client.connect(ipAddress, port);
                              if (!connected) {
                                        throw new IllegalArgumentException("Could not connect task client");
                              }
                    }
          }
          public void test() throws Throwable{



                    // Create the task
                    //assumed testGroup contain 'Mary','John' users
                    Task task1 = createTask("TaskName", "Comment","Tom","testGroup");
                    BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
                    client.addTask(task1, null, null);


                    Thread.sleep(500);

                    // Test if the task is successfully created
                    BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
                    client.getTasksAssignedAsPotentialOwner("Tom", "en-UK",
                                        responseHandler);
                    responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
                    List tasks = responseHandler.getResults();
                    if(tasks!=null){
                              System.out.println(tasks.size());
                              TaskSummary summary=(TaskSummary) tasks.get(0);
                              System.out.println(summary.getStatus().toString());//will be 'Ready'

                    }
                    //Try to get task as business administrator
                    responseHandler = new BlockingTaskSummaryResponseHandler();
                    client.getTasksAssignedAsPotentialOwner("administrator", "en-UK",
                                        responseHandler);
                    responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
                    tasks = responseHandler.getResults();
                    if(tasks!=null){// according to WS specification, we expect to get task 
                              System.out.println(tasks.size());
                              TaskSummary summary=(TaskSummary) tasks.get(0);
                              System.out.println(summary.getStatus().toString());

                    }

          }
          public TaskClient getClient() {
                    return client;
          }
          public void setClient(TaskClient client) {
                    this.client = client;
          }
          private Task createTask(String taskName, String comment, String actorId,String groupId) {
                    Task task = new Task();
                    if (taskName != null) {
                              List names = new ArrayList();
                              names.add(new I18NText("en-UK", taskName));
                              task.setNames(names);
                    }
                    if (comment != null) {
                              List descriptions = new ArrayList();
                              descriptions.add(new I18NText("en-UK", comment));
                              task.setDescriptions(descriptions);
                              List subjects = new ArrayList();
                              subjects.add(new I18NText("en-UK", comment));
                              task.setSubjects(subjects);
                    }
                    task.setPriority(10);


                    TaskData taskData = new TaskData();



                    PeopleAssignments assignments = new PeopleAssignments();
                    List potentialOwners = new ArrayList();


                    if (actorId != null && actorId.trim().length() > 0) {

                                        potentialOwners.add(new User(actorId.trim()));
                              }
                    if (groupId != null && groupId.trim().length() > 0) {

                                        potentialOwners.add(new Group(groupId.trim()));

                    } 
                    // Set the first user as creator ID??? hmmm might be wrong
                              if (potentialOwners.size() > 0) {
                                        taskData.setCreatedBy((User) potentialOwners.get(0));
                              }

                    assignments.setPotentialOwners(potentialOwners);
                    List businessAdministrators = new ArrayList();
                    businessAdministrators.add(new User("administrator"));
                    assignments.setBusinessAdministrators(businessAdministrators);
                    task.setPeopleAssignments(assignments);

                    taskData.setSkipable(true);

                    task.setTaskData(taskData);

                    return task;
          }

          public void setManager(WorkItemManager manager) {
                    this.manager = manager;
          }
          public WorkItemManager getManager() {
                    return manager;
          }

          public static void main(String[] a){
                    BusinessAdminTest baTest = new BusinessAdminTest();
                    baTest.createClient();
                    try {
                              baTest.test();
                    } catch (Throwable e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                    }
          }
}




When i run this , the out put was
public class BusinessAdminTest {


          private static final long DEFAULT_WAIT_TIME = 10000l;
          private TaskClient client;
          private WorkItemManager manager;
          private String ipAddress="192.168.1.111";
          private int port=9123;

          private void createClient() {
                    if (client == null) {
                              client = new TaskClient(new MinaTaskClientConnector("com.radiant.cisms.workFlow.task.BusinessAdminTest",
                                                                                                    new MinaTaskClientHandler(SystemEventListenerFactory.getSystemEventListener())));
                              boolean connected = client.connect(ipAddress, port);
                              if (!connected) {
                                        throw new IllegalArgumentException("Could not connect task client");
                              }
                    }
          }
          public void test() throws Throwable{



                    // Create the task
                    //assumed testGroup contain 'Mary','John' users
                    Task task1 = createTask("TaskName", "Comment","Tom","testGroup");
                    BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
                    client.addTask(task1, null, null);


                    Thread.sleep(500);

                    // Test if the task is successfully created
                    BlockingTaskSummaryResponseHandler responseHandler = new BlockingTaskSummaryResponseHandler();
                    client.getTasksAssignedAsPotentialOwner("Tom", "en-UK",
                                        responseHandler);
                    responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
                    List tasks = responseHandler.getResults();
                    if(tasks!=null){
                              System.out.println(tasks.size());
                              TaskSummary summary=(TaskSummary) tasks.get(0);
                              System.out.println(summary.getStatus().toString());//will be 'Ready'

                    }
                    //Try to get task as business administrator
                    responseHandler = new BlockingTaskSummaryResponseHandler();
                    client.getTasksAssignedAsPotentialOwner("administrator", "en-UK",
                                        responseHandler);
                    responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
                    tasks = responseHandler.getResults();
                    if(tasks!=null){// according to WS specification, we expect to get task 
                              System.out.println(tasks.size());
                              TaskSummary summary=(TaskSummary) tasks.get(0);
                              System.out.println(summary.getStatus().toString());

                    }

          }
          public TaskClient getClient() {
                    return client;
          }
          public void setClient(TaskClient client) {
                    this.client = client;
          }
          private Task createTask(String taskName, String comment, String actorId,String groupId) {
                    Task task = new Task();
                    if (taskName != null) {
                              List names = new ArrayList();
                              names.add(new I18NText("en-UK", taskName));
                              task.setNames(names);
                    }
                    if (comment != null) {
                              List descriptions = new ArrayList();
                              descriptions.add(new I18NText("en-UK", comment));
                              task.setDescriptions(descriptions);
                              List subjects = new ArrayList();
                              subjects.add(new I18NText("en-UK", comment));
                              task.setSubjects(subjects);
                    }
                    task.setPriority(10);


                    TaskData taskData = new TaskData();



                    PeopleAssignments assignments = new PeopleAssignments();
                    List potentialOwners = new ArrayList();


                    if (actorId != null && actorId.trim().length() > 0) {

                                        potentialOwners.add(new User(actorId.trim()));
                              }
                    if (groupId != null && groupId.trim().length() > 0) {

                                        potentialOwners.add(new Group(groupId.trim()));

                    } 
                    // Set the first user as creator ID??? hmmm might be wrong
                              if (potentialOwners.size() > 0) {
                                        taskData.setCreatedBy((User) potentialOwners.get(0));
                              }

                    assignments.setPotentialOwners(potentialOwners);
                    List businessAdministrators = new ArrayList();
                    businessAdministrators.add(new User("administrator"));
                    assignments.setBusinessAdministrators(businessAdministrators);
                    task.setPeopleAssignments(assignments);

                    taskData.setSkipable(true);

                    task.setTaskData(taskData);

                    return task;
          }

          public void setManager(WorkItemManager manager) {
                    this.manager = manager;
          }
          public WorkItemManager getManager() {
                    return manager;
          }

          public static void main(String[] a){
                    BusinessAdminTest baTest = new BusinessAdminTest();
                    baTest.createClient();
                    try {
                              baTest.test();
                    } catch (Throwable e) {
                              // TODO Auto-generated catch block
                              e.printStackTrace();
                    }
          }
}


When i run this ,the output was(the first 2 lines indicate the number of tasks and its status as potential owner, while the remaining as business admin for the same task)

1
Ready
0
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/776821#776821]

Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20121116/3914c073/attachment-0001.html 


More information about the jboss-user mailing list