Author: heiko.braun(a)jboss.com
Date: 2010-10-19 06:34:42 -0400 (Tue, 19 Oct 2010)
New Revision: 1045
Added:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/FaultType.java
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/StateChangeAdapter.java
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/ActivityStartAdapter.java
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/BPAFLogAdapter.java
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/InstanceEndAdapter.java
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceTerminationAdapter.java
Log:
Fix ambiguity in BAPF log records. Deal with completed, failed and terminated in
particular
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/ActivityStartAdapter.java
===================================================================
---
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/ActivityStartAdapter.java 2010-10-18
15:37:08 UTC (rev 1044)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/ActivityStartAdapter.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -40,9 +40,18 @@
static void mapDefault(Event target, ActivityEvent source)
{
InstanceStartAdapter.mapDefault(target, source);
-
-
target.setActivityDefinitionID(String.valueOf(source.getActivityDeclarationId()));
- target.setActivityInstanceID(String.valueOf(source.getActivityId()));
- target.setActivityName( source.getActivityName() );
+
+ String def = (source.getActivityDeclarationId() > 0) ?
+ String.valueOf(source.getActivityDeclarationId()) : "-1";
+
+ String id = source.getActivityId() > 0 ?
+ String.valueOf(source.getActivityId()) : "-1";
+
+ String name = source.getActivityName() != null ?
+ source.getActivityName() : "n/a";
+
+ target.setActivityDefinitionID(def);
+ target.setActivityInstanceID(id);
+ target.setActivityName(name);
}
}
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/BPAFLogAdapter.java
===================================================================
---
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/BPAFLogAdapter.java 2010-10-18
15:37:08 UTC (rev 1044)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/BPAFLogAdapter.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -17,7 +17,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.ode.bpel.evt.*;
+import org.apache.ode.bpel.evt.BpelEvent;
import org.apache.ode.bpel.iapi.BpelEventListener;
import org.jboss.bpm.monitor.model.bpaf.Event;
@@ -29,25 +29,15 @@
*/
public class BPAFLogAdapter implements BpelEventListener {
- protected final Log log = LogFactory.getLog(BPAFLogAdapter.class);
-
- final static Class[] notableEvents = new Class[] {
- ActivityExecStartEvent.class,
- ActivityExecEndEvent.class,
- ActivityFailureEvent.class,
- ProcessInstanceStartedEvent.class,
- ProcessCompletionEvent.class,
- ProcessTerminationEvent.class
- };
-
+ protected final Log log = LogFactory.getLog(BPAFLogAdapter.class);
private PersistenceStrategy persistenceStrategy = null;
public void onEvent(BpelEvent bpelEvent) {
- if(isNotable(bpelEvent))
- {
- Event event = EventAdapter.createBPAFModel(bpelEvent);
+
+ Event event = EventAdapter.createBPAFModel(bpelEvent);
+ if(event!=null) //no mapping or not of interest
persistenceStrategy.persist(event);
- }
+
}
public void startup(Properties properties) {
@@ -59,17 +49,5 @@
public void shutdown() {
this.persistenceStrategy.stop();
System.out.println("BPAFLogAdapter shutdown");
- }
-
- private static boolean isNotable(BpelEvent event)
- {
- boolean notable = false;
- for(Class c : notableEvents)
- if(c.equals(event.getClass()))
- {
- notable = true;
- break;
- }
- return notable;
- }
+ }
}
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 2010-10-18
15:37:08 UTC (rev 1044)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/EventAdapter.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -31,7 +31,7 @@
public class EventAdapter {
protected final static Log log = LogFactory.getLog(EventAdapter.class);
-
+
static Map<Class<?>, EventDetailMapping> detailMapping = new
HashMap<Class<?>, EventDetailMapping>();
static
@@ -43,32 +43,37 @@
detailMapping.put(ActivityExecStartEvent.class, new ActivityStartAdapter());
detailMapping.put(ActivityExecEndEvent.class, new ActivityEndAdapter());
detailMapping.put(ActivityFailureEvent.class, new ActivityFailedAdapter());
+
+ detailMapping.put(ProcessInstanceStateChangeEvent.class, new
StateChangeAdapter());
}
public static Event createBPAFModel(BpelEvent bpelEvent)
{
- ProcessEvent source = (ProcessEvent)bpelEvent;
+ Event target = null;
+ EventDetailMapping mapping = detailMapping.get(bpelEvent.getClass());
- // base event data
- Event target = new Event(false);
- target.setTimestamp(bpelEvent.getTimestamp().getTime());
- target.setProcessDefinitionID(source.getProcessId().toString());
- target.setProcessName(source.getProcessName().toString());
+ if(mapping!=null)
+ {
+ ProcessEvent source = (ProcessEvent)bpelEvent;
- // required for bpel2svg. See
https://jira.jboss.org/browse/RIFTSAW-264
- target.addData(new LineNumber(bpelEvent.getLineNo()));
+ // base event data
+ target = new Event(false);
+ target.setTimestamp(bpelEvent.getTimestamp().getTime());
+ target.setProcessDefinitionID(source.getProcessId().toString());
+ target.setProcessName(source.getProcessName().toString());
- EventDetailMapping mapping = detailMapping.get(bpelEvent.getClass());
- if(mapping!=null)
- mapping.adoptDetails(target, source);
- else
- log.warn("No mapping for "+ bpelEvent.getClass());
+ // required for bpel2svg. See
https://jira.jboss.org/browse/RIFTSAW-264
+ target.addData(new LineNumber(bpelEvent.getLineNo()));
+ // can return null and thus invalidate the event
+ target = mapping.adoptDetails(target, source);
+ }
+
return target;
}
public interface EventDetailMapping<T extends ProcessEvent>
{
Event adoptDetails(Event target, T source);
- }
+ }
}
Added: trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/FaultType.java
===================================================================
--- trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/FaultType.java
(rev 0)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/FaultType.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2009 JBoss, a divison Red Hat, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.soa.bpel.console.bpaf;
+
+import org.jboss.bpm.monitor.model.bpaf.Tuple;
+
+import javax.xml.namespace.QName;
+
+/**
+ * @author: Heiko Braun <hbraun(a)redhat.com>
+ * @date: Oct 19, 2010
+ */
+public final class FaultType extends Tuple {
+
+ public final static String name = "fault-type";
+
+ public FaultType(String value) {
+ setName(name);
+ setValue(value);
+ }
+
+ public FaultType(QName qname) {
+ setName(name);
+ setValue(qname.toString());
+ }
+}
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceEndAdapter.java
===================================================================
---
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceEndAdapter.java 2010-10-18
15:37:08 UTC (rev 1044)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceEndAdapter.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -27,10 +27,16 @@
public Event adoptDetails(Event target, ProcessCompletionEvent source) {
Event.EventDetails details = target.getEventDetails();
- details.setCurrentState(State.Closed_Completed);
+ State state = source.getFault()!=null ?
+ State.Closed_Completed_Failed : State.Closed_Completed;
+ details.setCurrentState(state);
+
+ if(State.Closed_Completed_Failed == details.getCurrentState())
+ target.getDataElement().add(new FaultType(source.getFault()));
+
InstanceStartAdapter.mapDefault(target, source);
return target;
- }
+ }
}
Modified:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceTerminationAdapter.java
===================================================================
---
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceTerminationAdapter.java 2010-10-18
15:37:08 UTC (rev 1044)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/InstanceTerminationAdapter.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -27,7 +27,7 @@
public Event adoptDetails(Event target, ProcessTerminationEvent source) {
Event.EventDetails details = target.getEventDetails();
- details.setCurrentState(State.Closed_Cancelled);
+ details.setCurrentState(State.Closed_Cancelled_Terminated);
InstanceStartAdapter.mapDefault(target, source);
Added:
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/StateChangeAdapter.java
===================================================================
---
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/StateChangeAdapter.java
(rev 0)
+++
trunk/console/bpaf/src/main/java/org/jboss/soa/bpel/console/bpaf/StateChangeAdapter.java 2010-10-19
10:34:42 UTC (rev 1045)
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009 JBoss, a divison Red Hat, Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *
http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.soa.bpel.console.bpaf;
+
+import org.apache.ode.bpel.common.ProcessState;
+import org.apache.ode.bpel.evt.ProcessInstanceStateChangeEvent;
+import org.jboss.bpm.monitor.model.bpaf.Event;
+import org.jboss.bpm.monitor.model.bpaf.State;
+
+/**
+ * @author: Heiko Braun <hbraun(a)redhat.com>
+ * @date: Oct 18, 2010
+ */
+public class StateChangeAdapter
+ implements
EventAdapter.EventDetailMapping<ProcessInstanceStateChangeEvent>{
+
+ public Event adoptDetails(Event target, ProcessInstanceStateChangeEvent source) {
+
+ Event.EventDetails details = target.getEventDetails();
+
+ InstanceStartAdapter.mapDefault(target, source);
+
+ switch (source.getNewState())
+ {
+ case ProcessState.STATE_TERMINATED:
+
target.getEventDetails().setCurrentState(State.Closed_Cancelled_Terminated);
+ break;
+ /*
+ Equivalent to 'ProcessCompletionEvent' with fault!=null
+ case ProcessState.STATE_COMPLETED_WITH_FAULT:
+ target.getEventDetails().setCurrentState(State.Closed_Completed_Failed);
+ break;*/
+ case ProcessState.STATE_SUSPENDED:
+
target.getEventDetails().setCurrentState(State.Open_NotRunning_Suspended);
+ break;
+ /*
+ Equivalent to 'ProcessInstanceStartedEvent'
+ case ProcessState.STATE_ACTIVE:
+ target.getEventDetails().setCurrentState(State.Open_Running);
+ break;*/
+ default:
+ return null; // not logged
+ }
+
+ return target;
+ }
+}