Author: jeff.yuchang
Date: 2011-03-01 06:50:11 -0500 (Tue, 01 Mar 2011)
New Revision: 1316
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/EventAdapter.java
Log:
*RIFTSAW-344, added source tab for showing all of ODE events, which were converted to the
BPAF model.
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/EventAdapter.java
===================================================================
---
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/EventAdapter.java 2011-02-28
11:33:11 UTC (rev 1315)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/EventAdapter.java 2011-03-01
11:50:11 UTC (rev 1316)
@@ -18,11 +18,15 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.evt.*;
+import org.apache.ode.utils.CollectionUtils;
import org.jboss.bpm.monitor.model.bpaf.Event;
import org.jboss.bpm.monitor.model.bpaf.Tuple;
+import java.lang.reflect.Method;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
/**
* @author: Heiko Braun <hbraun(a)redhat.com>
@@ -33,6 +37,8 @@
protected final static Log log = LogFactory.getLog(EventAdapter.class);
static Map<Class<?>, EventDetailMapping> detailMapping = new
HashMap<Class<?>, EventDetailMapping>();
+
+ private static Set<String> excludedMethods = new HashSet<String>();
static
{
@@ -57,6 +63,17 @@
detailMapping.put(ScopeStartEvent.class, new ScopeStartAdapter());
detailMapping.put(ScopeCompletionEvent.class, new ScopeCompletionAdapter());
detailMapping.put(ScopeFaultEvent.class, new ScopeFaultAdapter());
+
+
+ excludedMethods.add("getProcessInstanceId");
+ excludedMethods.add("getScopeId");
+ excludedMethods.add("getScopeDeclarationId");
+ excludedMethods.add("getClass");
+ excludedMethods.add("getActivityId");
+ excludedMethods.add("getProcessId");
+ excludedMethods.add("getProcessName");
+ excludedMethods.add("getActivityDeclarationId");
+ excludedMethods.add("getLineNo");
}
public static Event createBPAFModel(BpelEvent bpelEvent)
@@ -85,10 +102,10 @@
target.setProcessInstanceID(instanceEvent.getProcessInstanceId().toString());
}
- //put the data as a property (due to string constraint, it is only able to
store as much as 254 length string)
+ //put the data as a property.
Tuple data = new Tuple();
data.setName("data");
- data.setValue(source.toString());
+ data.setValue(getProcessEventAsString(source));
target.addData(data);
@@ -98,7 +115,35 @@
return target;
}
+
+ private static String getProcessEventAsString(ProcessEvent event) {
+ StringBuilder sb = new StringBuilder(getEventName(event));
+ Method[] methods = event.getClass().getMethods();
+ for (Method method : methods) {
+ if (method.getName().startsWith("get") &&
method.getParameterTypes().length == 0 &&
!excludedMethods.contains(method.getName())) {
+ try {
+ String field = method.getName().substring(3);
+ Object value = method.invoke(event,
CollectionUtils.EMPTY_OBJECT_ARRAY);
+ if (value == null) {
+ continue;
+ }
+ sb.append("~").append(field).append(" =
").append(value == null ? "null" : value.toString());
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ }
+
+ return sb.toString();
+ }
+
+
+ private static String getEventName(ProcessEvent event) {
+ String name = event.getClass().getName();
+ return name.substring(name.lastIndexOf('.') + 1);
+ }
+
public interface EventDetailMapping<T extends ProcessEvent>
{
Event adoptDetails(Event target, T source);
Show replies by date