Free Academic Seminars And Projects Reports
carpooling java code - Printable Version

+- Free Academic Seminars And Projects Reports (https://easyreport.in)
+-- Forum: Seminars Topics And Discussions (https://easyreport.in/forumdisplay.php?fid=30)
+--- Forum: Engineering Seminars Topics (https://easyreport.in/forumdisplay.php?fid=7)
+---- Forum: Seminar Requests (https://easyreport.in/forumdisplay.php?fid=29)
+---- Thread: carpooling java code (/showthread.php?tid=8453)



carpooling java code - Jithina Jose - 08-16-2017

carpooling java code

package org.ow2.bonita.example.carpool;
15
16 import java.io.File;
17 import java.util.Map;
18 import java.util.Set;
19 import java.util.TreeMap;
20 import java.util.logging.Level;
21 import java.util.logging.Logger;
22
23 import javax.security.auth.login.LoginContext;
24
25 import org.ow2.bonita.facade.ManagementAPI;
26 import org.ow2.bonita.facade.QueryRuntimeAPI;
27 import org.ow2.bonita.facade.RuntimeAPI;
28 import org.ow2.bonita.facade.def.majorElement.ProcessDefinition;
29 import org.ow2.bonita.facade.exception.ActivityNotFoundException;
30 import org.ow2.bonita.facade.exception.InstanceNotFoundException;
31 import org.ow2.bonita.facade.runtime.ActivityBody;
32 import org.ow2.bonita.facade.runtime.ActivityInstance;
33 import org.ow2.bonita.facade.runtime.InstanceState;
34 import org.ow2.bonita.facade.runtime.ProcessInstance;
35 import org.ow2.bonita.facade.uuid.PackageDefinitionUUID;
36 import org.ow2.bonita.facade.uuid.ProcessInstanceUUID;
37 import org.ow2.bonita.util.AccessorUtil;
38 import org.ow2.bonita.util.BonitaConstants;
39 import org.ow2.bonita.util.BonitaException;
40 import org.ow2.bonita.util.BonitaRuntimeException;
41 import org.ow2.bonita.util.Misc;
42 import org.ow2.bonita.util.SimpleCallbackHandler;
43 import org.ow2.bonita.util.StandardCallbackHandler;
44
45
46 public final class More ..Carpool {
47
48 private More ..Carpool() { }
49
50 private static final Logger LOG = Logger.getLogger(Carpool.class.getName());
51 public static final String PROCESS_ID = "carpool";
52 public static final int CANCEL_PLACE_IMMEDIATELY = 1;
53 public static final int CANCEL_PLACE_AFTER_3_WAIT = 2;
54 public static final int CANCEL_REQUEST = 3;
55 public static final int ASSOCIATION = 4;
56
57 private static final long CANCEL_REQUEST_TIME = 5000;
58 private static final long WAIT_REQUEST_TIME = 5000;
59 private static final long WAIT_ANSWER_TIME = 5000;
60
61 private static final String BAR_PREFIX = "-bar=";
62 private static final String MODE_PREFIX = "-mode=";
63
64 private static Map<String, Object> More ..getVariables(final int mode) {
65 if (mode == CANCEL_REQUEST) {
66 return null;
67 } else if (mode == CANCEL_PLACE_IMMEDIATELY) {
68 Map<String, Object> variables = new TreeMap<String, Object>();
69 variables.put("offerTimeout", "yes");
70 return variables;
71 } else if (mode == CANCEL_PLACE_AFTER_3_WAIT) {
72 return null;
73 } else if (mode == ASSOCIATION) {
74 Map<String, Object> variables = new TreeMap<String, Object>();
75 variables.put("requestFound", "yes");
76 variables.put("answerFound", "yes");
77 return variables;
78 }
79 throw new BonitaRuntimeException("Unknown mode : " + mode);
80 }
81
82 private static void More ..waitForActivityExec(String activityId, int execNb, long maxWaitingTime,
83 QueryRuntimeAPI queryRuntimeAPI, ProcessInstanceUUID instanceUUID) throws BonitaException {
84 long start = System.currentTimeMillis();
85 do {
86 try {
87 Set<ActivityInstance<ActivityBody>> activities = queryRuntimeAPI.getActivityInstances(instanceUUID, activityId);
88 if (activities != null && activities.size() == execNb) {
89 break;
90 }
91 sleep(500);
92 } catch (ActivityNotFoundException e) {
93 //nothing : the activity is not yet executed once
94 sleep(500);
95 }
96 } while ((start + maxWaitingTime) > System.currentTimeMillis());
97 }
98
99 private static void More ..sleep(final long millis) {
100 try {
101 Thread.sleep(millis);
102 } catch (InterruptedException e) {
103 throw new BonitaRuntimeException(e);
104 }
105 }
106
107 private static void More ..waitForInstanceEnd(long processingTime, ProcessInstanceUUID instanceUUID,
108 QueryRuntimeAPI queryRuntimeAPI) throws BonitaException {
109 long deadline = System.currentTimeMillis() + processingTime;
110
111 ProcessInstance processInstance = null;
112 while (System.currentTimeMillis() < deadline) {
113 try {
114 processInstance = queryRuntimeAPI.getProcessInstance(instanceUUID);
115 } catch (InstanceNotFoundException infe) {
116 break;
117 }
118 if (InstanceState.FINISHED.equals(processInstance.getInstanceState()) {
119 break;
120 }
121 try {
122 Thread.sleep(1000);
123 } catch (Exception e) {
124 throw new BonitaRuntimeException(e);
125 }
126 processInstance = null;
127 }
128
129 if (processInstance != null && !InstanceState.FINISHED.equals(processInstance.getInstanceState()) {
130 throw new BonitaRuntimeException("Instance is not finished !");
131 }
132 }
133
134 private static void More ..usage(final String[] args) {
135 LOG.severe("Usage: " + Carpool.class + " " + BAR_PREFIX + "<bar file> " + MODE_PREFIX + "<mode>");
136 LOG.severe("Available modes ares : ");
137 LOG.severe(" 1 -> CANCEL_PLACE_IMMEDIATELY");
138 LOG.severe(" 2 -> CANCEL_PLACE_AFTER_3_WAIT");
139 LOG.severe(" 3 -> CANCEL_REQUEST");
140 LOG.severe(" 4 -> ASSOCIATION");
141 LOG.severe("");
142 LOG.severe("Actual args:");
143 if (args == null) {
144 LOG.severe(" args is null");
145 } else {
146 for (String arg : args) {
147 LOG.severe(" arg:" + arg);
148 }
149 }
150 throw new BonitaRuntimeException("Please read the above usage");
151 }
152
153 public static void More ..main(final String[] args) throws Exception {
154
155 if (args == null args.length != 2) {
156 usage(args);
157 }
158
159 byte[] barFile = null;
160 int mode = 0;
161 for (String arg : args) {
162 if (arg.startsWith(BAR_PREFIX)) {
163 barFile = Misc.getAllContentFrom(new File(arg.substring(BAR_PREFIX.length());
164 } else if (arg.startsWith(MODE_PREFIX)) {
165 mode = new Integer(arg.substring(MODE_PREFIX.length());
166 } else {
167 usage(args);
168 }
169 }
170
171 final String loginMode = System.getProperty(BonitaConstants.LOGIN_MODE_PROPERTY);
172 LoginContext loginContext = null;
173 if (loginMode != null && BonitaConstants.LOGIN_MODE_TEST.equals(loginMode)) {
174 loginContext = new LoginContext("Bonita", new SimpleCallbackHandler("john", "bpm"));
175 } else {
176 loginContext = new LoginContext("Bonita", new StandardCallbackHandler());
177 }
178 loginContext.login();
179
180 ProcessInstanceUUID instanceUUID = execute(barFile, mode);
181 cleanPackage(instanceUUID);
182
183 loginContext.logout();
184 if (LOG.isLoggable(Level.INFO)) {
185 LOG.info("\n** End of Carpool Main. **\n");
186 }
187 }
188
189 public static ProcessInstanceUUID More ..execute(final byte[] barFile, final int mode) throws BonitaException {
190 //get APIs
191 final RuntimeAPI runtimeAPI = AccessorUtil.getRuntimeAPI();
192 final QueryRuntimeAPI queryRuntimeAPI = AccessorUtil.getQueryRuntimeAPI();
193 final ManagementAPI managementAPI = AccessorUtil.getManagementAPI();
194
195 //deployment
196 final ProcessDefinition process = managementAPI.deployBar(barFile).get(PROCESS_ID);
197 final PackageDefinitionUUID packageUUID = process.getPackageDefinitionUUID();
198 Misc.badStateIfNull(packageUUID, "packageUUID is null in process : " + process.getProcessId());
199
200 //instantiation
201 final ProcessInstanceUUID instanceUUID = runtimeAPI.instantiateProcess(process.getUUID(), getVariables(mode));
202
203 long processingTime = 10000;
204 if (mode == CANCEL_REQUEST) {
205 waitForActivityExec("WaitRequest", 2, WAIT_REQUEST_TIME * 3, queryRuntimeAPI, instanceUUID);
206 runtimeAPI.setProcessInstanceVariable(instanceUUID, "requestFound", "yes");
207 waitForActivityExec("WaitAnswer", 1, WAIT_ANSWER_TIME * 2, queryRuntimeAPI, instanceUUID);
208 runtimeAPI.setProcessInstanceVariable(instanceUUID, "answerTimeout", "yes");
209 processingTime += CANCEL_REQUEST_TIME;
210 } else if (mode == CANCEL_PLACE_AFTER_3_WAIT) {
211 waitForActivityExec("WaitRequest", 3, WAIT_REQUEST_TIME * 4, queryRuntimeAPI, instanceUUID);
212 runtimeAPI.setProcessInstanceVariable(instanceUUID, "offerTimeout", "yes");
213 }
214 waitForInstanceEnd(processingTime, instanceUUID, queryRuntimeAPI);
215
216 return instanceUUID;
217 }
218
219 public static void More ..cleanPackage(ProcessInstanceUUID instanceUUID) throws BonitaException {
220 final ManagementAPI managementAPI = AccessorUtil.getManagementAPI();
221 final QueryRuntimeAPI queryRuntimeAPI = AccessorUtil.getQueryRuntimeAPI();
222 final ProcessInstance instance = queryRuntimeAPI.getProcessInstance(instanceUUID);
223 final PackageDefinitionUUID packageUUID = instance.getPackageDefinitionUUID();
224
225 //undeployment
226 managementAPI.undeploy(packageUUID);
227 //journal + history cleaning
228 managementAPI.deletePackage(packageUUID);
229 }
230
231}


carpooling java code - paripriya - 08-16-2017

Are you looking for carpooling java code ?
Type your request / requirement / comment about carpooling java code in to the right box for getting free material and support from us/dedicated premium members..
Its a free service..==>
==>
==>
==>
Dont forget to save this page.>!
Scroll down to see Save button..!