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