My Working Sample: Login, Show Processes

"Frans Thamura" <[email protected]>
Newsgroups gmane.comp.java.enhydra.shark
Message-ID <[email protected]>
Hi All,

2 weeks left, and thx to Grammy and Nav van Deventer for help.

honestly i want to integrate Shark with my own project
cimande.dev.java.net, Cimande is MVC based on Velocity/WEbWork/Hibernate.
to make it become WARS Framework.

The bad thing of Shark is using DODS, so I must implement Hibernate and
DODS, but it is ok, :)

ok, this is my first script, may be all of you  want to work with me to
dig more Shark, and we can see the benefit of this cool tech.

anyway, if you install the JSPClient, add my script and run it.

This will show several user, XPDL, and activity, I am still confusing with
WfResource, WfActivity. :) need all of you team

ok this is my codE:

package org.blueoxygen.shark.test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Properties;
import java.util.Vector;
import java.io.FileInputStream;

import org.enhydra.shark.Shark;
import org.enhydra.shark.api.client.wfmodel.*;
import org.enhydra.shark.api.client.wfservice.*;
import org.enhydra.shark.api.common.*;
import org.enhydra.shark.swingclient.SharkClient;
import org.enhydra.shark.swingclient.workflowadmin.SharkAdmin;


import org.blueoxygen.cimande.wfms.WorkflowManager;

/**
 * Does nothing more than start the Shark engine.
 */
public class Simple
{
   public static void main(String[] args)
   {
      try
      {
         Properties props = new Properties();
         props.load(new
FileInputStream("D:\\cimande\\jakarta-tomcat-5.5.4\\webapps\\shark\\conf\\Shark-Standalone.conf"));

         System.out.println("Enginename from Shark.conf is : " +
props.getProperty("enginename"));

         // Make SURE every instance of shark that connects to the same
database uses a different
         // enginename.
         props.setProperty("enginename", "rross");

         Shark.configure(props);

         WorkflowManager.init("D:\\cimande\\jakarta-tomcat-5.5.4\\webapps\\shark");

         String[] uns = WorkflowManager.getAllUsers();

         // show all user
         for (int i=0; i<uns.length; i++) {
        	 System.out.println(WorkflowManager.getUserRealName(uns[i]));
        	 System.out.println(WorkflowManager.getUserEMailAddress(uns[i]));

         }

         SharkConnection sConn = WorkflowManager.connect();
         WfAssignment[] wItems
=sConn.getResourceObject().get_sequence_work_item(0);
         System.out.println("======================================");
         System.out.println("All The Package");
         String [] a = WorkflowManager.xpdlsToLoad();
         for (int i = 0; i < a.length; ++i) {
            System.out.println(a[i]);
         }
         System.out.println("======================================");
         String [] p = WorkflowManager.processesToStart();
         for (int i = 0; i < p.length; ++i) {
            System.out.println(p[i]);
         }


         System.out.println("======================================");

         String pkgId="";
         WfProcess[] proc=null;
         ExecutionAdministration ea;

         Vector retVector = new Vector();
 		boolean packageAll = true;
 		boolean processAll = true;
 		boolean stateAll = true;
         ea = Shark
         .getInstance()
         .getAdminInterface()
         .getExecutionAdministration();
         ea.connect("admin", "enhydra", "BlueOxygenWFMS", null);
         WfProcessMgr[] mgrs =
ea.get_iterator_processmgr().get_next_n_sequence(0);


         //pkgId=SharkClient.getAdminMiscUtilities().getProcessMgrPkgId(mgrs[0].name());


         PackageAdministration pa =Shark
	      .getInstance()
	      .getAdminInterface()
	      .getPackageAdministration();

         ArrayList openedPackageIds=new ArrayList();

         String[] opIds=pa.getOpenedPackageIds();
         openedPackageIds=new ArrayList(Arrays.asList(opIds));
         System.out.println("======================================");
         System.out.println("REFRESH: NEWPKGIds="+openedPackageIds);

         for (int k = 0; k < mgrs.length; ++k) {

        	 proc=mgrs[k].get_sequence_process(0);

        	 for (int i = 0; i < proc.length; ++i) {
        		 //System.out.println("======================================");
        		 //System.out.println("The process:"+proc[i]);
        		 //System.out.println("Process Manager
Name:"+proc[i].manager().name());
        		 if( ( (proc[i].manager().name().indexOf("" ) >= 0 ) || packageAll)
  						&& ( proc[i].name().equals("") || processAll)
  						&& ( proc[i].state().indexOf( "2" ) >= 0 || stateAll) )
  					{
         			 WfActivity[] act =proc[i].get_activities_in_state(
proc[i].state() ).get_next_n_sequence( 0 );
 						for(int j=0;j<act.length;j++) {
 							/*
 							 *
 							 System.out.println("======================================");
 							 System.out.println("Proc Key:"+proc[i].key());
 							System.out.println("Proc Name:"+proc[i].name());
 							System.out.println("Proc Description:"+proc[i].description());
 							System.out.println("Proc State"+proc[i].state());
 							System.out.println("Act Key:"+act[j].key());
 							System.out.println("Act Name:"+act[j].name());
							System.out.println("Act Description:"+act[j].description());


							System.out.println("Act State:"+act[j].state());
 							*/
 						}
  					}
 					}

         }

         ExecutionAdministration execAdmin =
Shark.getInstance().getAdminInterface().getExecutionAdministration();

         execAdmin.connect("admin", "enhydra", "Shark", null);
         WfAssignment[] assignments =
sConn.getResourceObject().get_sequence_work_item(0);
         System.out.println("=============From
Grammi=========================");
         try {
                 for (int ii=0; ii<assignments.length; ii++) {

                         String processKey =
assignments[ii].activity().container().key();
                                 WfProcess sharkProcess =
execAdmin.getProcess( processKey );
                         System.out.println("assignment " + ii + ": " +
assignments[ii].activity().key() + ", " +
assignments[ii].activity().state());
                         WfActivityIterator activityIterator =
                                                                sharkProcess.get_activities_in_state(SharkConstants.STATE_OPEN_NOT_RUNNING_NOT_STARTED);
                         WfActivity[] sharkActivities =
activityIterator.get_next_n_sequence( 0 );

                                for (int i = 0; i <
sharkActivities.length; i++) {
                                	System.out.println(sharkActivities[i]);
                                                //if (sharkActivities[i]
!= null) {
                                           //result.add(sharkActivities[i]);
                                           //log.debug("adding: " +
sharkActivities[i].key() + ", "
+ sharkActivities[i].state());
                                              //  }
                                           //else
                                        	   //log.debug("sharActivities[i]
for i=" + i + " is null");
                                 }

                       }
                   }
                   catch(Exception e2) {
                           e2.printStackTrace();
               } finally {
                 execAdmin.disconnect();
               }
         sConn.disconnect();
      }
      catch (Exception e)
      {
         // It's not like I am going to revive the thing if it crashes...
         e.printStackTrace();
      }
   }
}
message-footer.txt (text/plain, 271 B)
--
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.