From fcdc6188546476314dbad2a8a75277678305d4dc Mon Sep 17 00:00:00 2001 From: Boris Bendyukov Date: Mon, 24 Feb 2014 06:56:20 +0000 Subject: [PATCH 2/7] MonitorManager.java edited online with Bitbucket --- .../core/bpel/model/runtime/impl/MonitorManager.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/model/runtime/impl/MonitorManager.java b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/model/runtime/impl/MonitorManager.java index c4cd2468c..3ff30655b 100755 --- a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/model/runtime/impl/MonitorManager.java +++ b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/model/runtime/impl/MonitorManager.java @@ -332,7 +332,8 @@ public class MonitorManager { // DEVNOTE: For variable events we do not take into account if KPI is enabled or not. This is because today // KPI events ignore variable events anyway. If this changes (not sure why it would) this logic will need to // be changed to take KPI into account. See generateEventsForVariable(long uid) also. - if (mGenerateEvents && mEngine.isMonitorEnabled() && (mEngine.isVariableMonitorEnabled() || hasFault) ) { +// if (mGenerateEvents && mEngine.isMonitorEnabled() && (mEngine.isVariableMonitorEnabled() || hasFault) ) { + if (mGenerateEvents && mEngine.isKPIEnabled() ) { processAndFilterVariables(varMap); if (!varMap.isEmpty()) { long actId = 0; @@ -370,7 +371,7 @@ public class MonitorManager { public void postEventForFault(ActivityUnit unit, Fault fault) { if (generateEventsForActivity(unit)) { postActivityFaultedEvent(unit); - if (mEngine.isMonitorEnabled()) { + if (mEngine.isMonitorEnabled() || mEngine.isKPIEnabled()) { String varStr = null; if (fault.getData() != null) { varStr = fault.getName() + " Details: " + fault.getData().toString(); @@ -483,8 +484,9 @@ public class MonitorManager { // DEVNOTE: For variable events we do not take into account if KPI is enabled or not. This is because today // KPI events ignore variable events anyway. If this changes (not sure why it would) this logic will need to // be changed to take KPI into account. See postVariableEvent() also. - return (mGenerateEvents && mEngine.isMonitorEnabled() && mEngine.isVariableMonitorEnabled() && - (mEventsFilter == null || mEventsFilter.generateEventsForVariable(uid))); +// return (mGenerateEvents && mEngine.isMonitorEnabled() && mEngine.isVariableMonitorEnabled() && +// (mEventsFilter == null || mEventsFilter.generateEventsForVariable(uid))); + return (mGenerateEvents && mEngine.isKPIEnabled() && (mEventsFilter == null || mEventsFilter.generateEventsForVariable(uid))); } /** From ff904c99499f3be7de2ac27f67fc85791c04d6e6 Mon Sep 17 00:00:00 2001 From: Boris Bendyukov Date: Mon, 24 Feb 2014 06:58:33 +0000 Subject: [PATCH 3/7] KPIListenerImpl.java edited online with Bitbucket --- .../core/bpel/event/impl/KPIListenerImpl.java | 95 ++++++++++++++++++- 1 file changed, 92 insertions(+), 3 deletions(-) diff --git a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/KPIListenerImpl.java b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/KPIListenerImpl.java index e11033bbf..dd0e1dc4c 100755 --- a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/KPIListenerImpl.java +++ b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/KPIListenerImpl.java @@ -45,6 +45,7 @@ import com.sun.jbi.engine.bpel.core.bpel.event.ActivityEvent; import com.sun.jbi.engine.bpel.core.bpel.event.BPELEvent; import com.sun.jbi.engine.bpel.core.bpel.event.BPELEventListener; import com.sun.jbi.engine.bpel.core.bpel.event.BPELInstanceEvent; +import com.sun.jbi.engine.bpel.core.bpel.event.VariableEvent; import com.sun.jbi.engine.bpel.core.bpel.util.EventProcessHelper; import com.sun.jbi.engine.bpel.core.bpel.util.I18n; @@ -72,10 +73,23 @@ public class KPIListenerImpl implements BPELEventListener { completeBPActivity(event); break; case BP_TERMINATE: + terminatedBPI(event); + break; case BP_SUSPEND: + suspendBPI(event); + break; case BP_RESUME: + resumedBPI(event); + break; + case BP_FAULT: + faultBPI(event); + break; case ACTIVITY_FAULTED: + faultBPActivity(event); + break; case VARIABLE_CHANGED: + variableChanged(event); + break; default: if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, I18n.loc("KPI for {0} is not implemented", event.getEventType())); @@ -103,6 +117,7 @@ public class KPIListenerImpl implements BPELEventListener { mstr = replaceAll(mstr,"${5}",""+event.getTimeStamp().getTime()); mstr = replaceAll(mstr,"${6}",""+event.getActivityId()); mstr = replaceAll(mstr,"${7}",""+event.getActivityName()); + mstr = replaceAll(mstr,"${8}",""+event.getActivityXpath()); return mstr; } @@ -116,6 +131,52 @@ public class KPIListenerImpl implements BPELEventListener { new QName("MonitorInstances_iep", "InputService"), "BPInstanceStartEventStream", mstr); } + +private static final String startBPIEventFault = + "${1}${2}${3}${4}${5}"; + private void faultBPI(BPELEvent event) { + String mstr = fillInInstanceEventValues(startBPIEventFault, (BPELInstanceEvent)event); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, I18n.loc("KPI InstanceFault XML={0}",mstr)); + } + mEventHelper.sendKPIMEx( + new QName("MonitorInstances_iep", "InputService"), "BPInstanceFault", mstr); + } + + + private static final String startBPIEventSuspend = + "${1}${2}${3}${4}${5}"; + private void suspendBPI(BPELEvent event) { + String mstr = fillInInstanceEventValues(startBPIEventSuspend, (BPELInstanceEvent)event); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, I18n.loc("KPI InstanceSuspended XML={0}",mstr)); + } + mEventHelper.sendKPIMEx( + new QName("MonitorInstances_iep", "InputService"), "BPInstanceSuspended", mstr); + } + + private static final String startBPIEventResumed = + "${1}${2}${3}${4}${5}"; + private void resumedBPI(BPELEvent event) { + String mstr = fillInInstanceEventValues(startBPIEventResumed, (BPELInstanceEvent)event); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, I18n.loc("KPI InstanceResumed XML={0}",mstr)); + } + mEventHelper.sendKPIMEx( + new QName("MonitorInstances_iep", "InputService"), "BPInstanceResumed", mstr); + } + + private static final String startBPIEventTerminated = + "${1}${2}${3}${4}${5}"; + private void terminatedBPI(BPELEvent event) { + String mstr = fillInInstanceEventValues(startBPIEventTerminated, (BPELInstanceEvent)event); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, I18n.loc("KPI InstanceTerminated XML={0}",mstr)); + } + mEventHelper.sendKPIMEx( + new QName("MonitorInstances_iep", "InputService"), "BPInstanceTerminated", mstr); + } + private static final String completeBPIEventMsgStr = "${1}${2}${3}${4}${5}"; @@ -124,7 +185,7 @@ public class KPIListenerImpl implements BPELEventListener { mEventHelper.sendKPIMEx(new QName("MonitorInstances_iep", "InputService"),"BPInstanceComplete", mstr); } - private static final String startBPActivityEventMsgStr = "${1}${2}${3}${4}${5}${6}${7}"; + private static final String startBPActivityEventMsgStr = "${1}${2}${3}${4}${5}${6}${7}${8}"; private void startBPActivity(BPELEvent event) { if (isInvoke (event)) { @@ -132,7 +193,35 @@ public class KPIListenerImpl implements BPELEventListener { mEventHelper.sendKPIMEx(new QName("MonitorActivities_iep", "InputService"), "ActivityStart", msgStr); } } - + + + private static final String startBPActivityFaultStr = "${1}${2}${3}${4}${5}${6}${7}${8}"; + + private void faultBPActivity(BPELEvent event) { + if (isInvoke (event)) { + String msgStr = fillInActivityEventValues(startBPActivityFaultStr, (ActivityEvent)event); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, I18n.loc("KPI ActivityFault XML={0}",msgStr)); + } + mEventHelper.sendKPIMEx(new QName("MonitorActivities_iep", "InputService"), "ActivityFault", msgStr); + } + } + + + private void variableChanged(BPELEvent event) { + VariableEvent ve=(VariableEvent)event; + String msgStr=ve.toXML(); + msgStr="" + + "" + + ve.toXML()+ + "" + + ""; + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.log(Level.FINE, I18n.loc("KPI Variable Change XML={0}",msgStr)); + } + mEventHelper.sendKPIMEx(new QName("MonitorActivities_iep", "InputService"), "VariableChange", msgStr); + } + private static boolean isInvoke (BPELEvent event) { ActivityEvent actEvent = (ActivityEvent) event; String xpath = actEvent.getActivityXpath(); @@ -150,7 +239,7 @@ public class KPIListenerImpl implements BPELEventListener { return false; } - private static final String completeBPActivityEventMsgStr = "${1}${2}${3}${4}${5}${6}${7}"; + private static final String completeBPActivityEventMsgStr = "${1}${2}${3}${4}${5}${6}${7}${8}"; private void completeBPActivity(BPELEvent event) { if (isInvoke (event)) { From c2838a7c038ad3130a8d09a456c98870dc41fe18 Mon Sep 17 00:00:00 2001 From: Boris Bendyukov Date: Mon, 24 Feb 2014 07:00:43 +0000 Subject: [PATCH 4/7] VariableImpl.java edited online with Bitbucket --- .../core/bpel/event/impl/VariableImpl.java | 57 +++++++++++++++++-- 1 file changed, 53 insertions(+), 4 deletions(-) diff --git a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableImpl.java b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableImpl.java index 644045ff5..55e5d1ee7 100755 --- a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableImpl.java +++ b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableImpl.java @@ -40,6 +40,8 @@ import com.sun.jbi.engine.bpel.core.bpel.event.Variable; import com.sun.jbi.engine.bpel.core.bpel.model.runtime.VariableScope; import com.sun.jbi.engine.bpel.core.bpel.model.runtime.WSMessage; import com.sun.jbi.engine.bpel.core.bpel.util.DOMHelper; +import java.text.CharacterIterator; +import java.text.StringCharacterIterator; public class VariableImpl implements Variable { @@ -190,9 +192,56 @@ public class VariableImpl implements Variable { return buffer.toString(); } - public VariableScope getVariableScope() { - // TODO Auto-generated method stub - return mVariableScope; - } + + public String toXML() { + // TODO Auto-generated method stub + StringBuffer buffer = new StringBuffer(); + + buffer.append("\n"); + if (!isFault()) { + buffer.append("" + mVarName + "\n"); + } else { + buffer.append("" + mFaultName + "\n"); + } + buffer.append("" + mScopeId + "\n"); + buffer.append("" + mType + "\n"); + buffer.append("" + forXML(mValue) + "\n"); + buffer.append("" + mVarId + "\n"); + buffer.append("" + mVarName + "\n"); + buffer.append("" + mFaultName + "\n"); + + buffer.append("\n"); + return buffer.toString(); + } + + protected static String forXML(String aText) { + final StringBuilder result = new StringBuilder(); + final StringCharacterIterator iterator = new StringCharacterIterator(aText); + char character = iterator.current(); + while (character != CharacterIterator.DONE) { + if (character == '<') { + result.append("<"); + } else if (character == '>') { + result.append(">"); + } else if (character == '\"') { + result.append("""); + } else if (character == '\'') { + result.append("'"); + } else if (character == '&') { + result.append("&"); + } else { + //the char is not a special one + //add it to the result as is + result.append(character); + } + character = iterator.next(); + } + return result.toString(); + } + + public VariableScope getVariableScope() { + // TODO Auto-generated method stub + return mVariableScope; + } } From 7c72f5f397497bdb2330ee7a35b036999d12e11f Mon Sep 17 00:00:00 2001 From: Boris Bendyukov Date: Mon, 24 Feb 2014 07:02:59 +0000 Subject: [PATCH 5/7] VariableEventImpl.java edited online with Bitbucket --- .../core/bpel/event/impl/VariableEventImpl.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableEventImpl.java b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableEventImpl.java index 5c0901e01..b7745af30 100755 --- a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableEventImpl.java +++ b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/impl/VariableEventImpl.java @@ -142,6 +142,22 @@ public class VariableEventImpl extends BPELEventImpl implements VariableEvent { } + public String toXML() { + StringBuffer buffer = new StringBuffer (); + buffer.append(""+getEventType()+""); + buffer.append(""+mXpath+""); + buffer.append(""+mBPELName+""); + buffer.append(""+mActivityId+""); + for (Map.Entry> entry : mVariables.entrySet()) { + List vars = entry.getValue(); + for (Variable var : vars) { + buffer.append(var.toXML()); // Uncomment + } + } + return buffer.toString(); + } + + public String getInvokeCRMPID() { // TODO Auto-generated method stub return mInvokeCRMPID; From 66eb4f6f66214d21988a5651d24007baaa170132 Mon Sep 17 00:00:00 2001 From: Boris Bendyukov Date: Mon, 24 Feb 2014 07:04:14 +0000 Subject: [PATCH 6/7] Variable.java edited online with Bitbucket --- .../src/com/sun/jbi/engine/bpel/core/bpel/event/Variable.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/Variable.java b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/Variable.java index 4cd1c2b66..9fa43fa20 100755 --- a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/Variable.java +++ b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/Variable.java @@ -61,6 +61,8 @@ public interface Variable { QName getFaultName (); boolean isFault (); + + String toXML (); VariableScope getVariableScope (); From 8d45f1923d3023f3cb7c60114a552cc6c376ecb1 Mon Sep 17 00:00:00 2001 From: Boris Bendyukov Date: Mon, 24 Feb 2014 07:05:18 +0000 Subject: [PATCH 7/7] VariableEvent.java edited online with Bitbucket --- .../com/sun/jbi/engine/bpel/core/bpel/event/VariableEvent.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/VariableEvent.java b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/VariableEvent.java index 6ed96ec4b..01ae7d575 100755 --- a/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/VariableEvent.java +++ b/ojc-core/bpelse/bpelcore/src/com/sun/jbi/engine/bpel/core/bpel/event/VariableEvent.java @@ -61,6 +61,8 @@ public interface VariableEvent extends BPELEvent { void setReceiveCRMPID (String crmpId); QName getBPELName (); + + String toXML (); String getInstanceId ();