refactored to add DSL management support in external files
diff --git a/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/BPMSMonitoringHandler.java b/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/BPMSMonitoringHandler.java
index 9b304b0..537b3bd 100755
--- a/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/BPMSMonitoringHandler.java
+++ b/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/BPMSMonitoringHandler.java
@@ -15,23 +15,36 @@
String activityFileName = "C:\\XRCE_PushMonitoring_FileStore\\monitoring_Activity.info";
String processFileName = "C:\\XRCE_PushMonitoring_FileStore\\monitoring_Process.info";
+ String soaFileName = "C:\\XRCE_PushMonitoring_FileStore\\monitoring_Activity_SOA.info";
+ String dslActivityMapFileName = "C:\\XRCE_PushMonitoring_FileStore\\dsl_bpms_activity_map.info";
private Path activityFile;
private Path processFile;
+ private Path dslActivityFile;
+ private HashMap<String, DSLActivityandServiceMap> conceptsActivitiesAndServiceMap; //maps the concepts in the DSL to the activity names and the webservice that together achieve its functionality
private HashMap<String, ActivityMonitoringData> activityExecMap; //maps activity names composed of ProcessName+ActivityName to activity execution details
private HashMap<String, Vector<Long>> activityExecHistoryMap; //maps activity names composed of ProcessName+ActivityName to activity execution history
private HashMap<String, ProcessMonitoringData> processExecMap; //maps activity names composed of ProcessName+ActivityName to activity execution details
- private HashMap<String, Vector<Long>> processExecHistoryMap; //maps activity names composed of ProcessName+ActivityName to activity execution history
+ private HashMap<String, Vector<Long>> processExecHistoryMap; //maps activity names composed of ProcessName+ActivityName to activity execution history
+ private HashMap<String, Long> serviceLastExecTime = new HashMap<String, Long>()
+ {{put("CRM Update",new Long(8368)); put("Postage Carriers",new Long(10349)); put("Insurance Provider", new Long(9797));}};
+ public HashMap<String, Long> getServiceLastExecTime() {
+ return serviceLastExecTime;
+ }
+
public BPMSMonitoringHandler() {
activityFile = Paths.get(activityFileName);
processFile = Paths.get(processFileName);
+ dslActivityFile = Paths.get(dslActivityMapFileName);
initializeActivityDataStructures();
initializeProcessDataStructures();
+ initializeDSLDataStructures();
try {
processActivityMonitoringFile();
processProcessMonitoringFile();
+ processDSLActivityFile();
} catch (IOException e) {
System.err.println("Could not process the monitoring file at " + activityFileName);
}
@@ -43,6 +56,48 @@
}
+ private void processDSLActivityFile() throws IOException {
+ Scanner s = new Scanner(dslActivityFile);
+ while (s.hasNextLine()){
+ DSLActivityandServiceMap data = processMappingLine(s.nextLine());
+ if (null!=data){
+ this.conceptsActivitiesAndServiceMap.put(data.getConceptName(), data);
+ }
+ }
+ s.close();
+ //this.printDataStructures();
+ }
+
+ private DSLActivityandServiceMap processMappingLine(String nextLine) {
+ //System.out.println("Processing Mapping Line: " + nextLine);
+ DSLActivityandServiceMap data = new DSLActivityandServiceMap();
+ Scanner ls = new Scanner(nextLine);
+ ls.useDelimiter("::");
+ try{
+ if (ls.hasNext()){
+ data.setConceptName(ls.next());
+ //System.out.println("Concept Name: " + data.getConceptName());
+
+ if(ls.hasNext()){
+ // add the list of activities
+ Vector<String> activityNames = new Vector<String>();
+ Scanner aNames = new Scanner(ls.next());
+ aNames.useDelimiter(";");
+ while(aNames.hasNext()) activityNames.add(aNames.next());
+ data.setActivityNames(activityNames);
+ aNames.close();
+ }
+
+ if(ls.hasNext()) data.setServiceName(ls.next());
+ }
+ } catch (Exception e){
+ data = null;
+ }
+
+ ls.close();
+ return data;
+ }
+
private void processProcessMonitoringFile() throws IOException {
Scanner s = new Scanner(processFile);
initializeProcessDataStructures();
@@ -50,6 +105,7 @@
ProcessMonitoringData data = processProcessLine (s.nextLine());
if (null!=data){
processExecMap.put(data.getProcessName(), data);
+ //System.out.println("Processed PROCESS: " + data.getProcessName());
}
}
s.close();
@@ -104,21 +160,26 @@
processExecHistoryMap = new HashMap<String, Vector<Long>>();
}
+ private void initializeDSLDataStructures(){
+ conceptsActivitiesAndServiceMap = new HashMap<String, DSLActivityandServiceMap>();
+ }
+
public static void main(String[] args) {
BPMSMonitoringHandler h = new BPMSMonitoringHandler();
+ //h.printDataStructures();
try {
- ActivityMonitoringData d = h.findLatestActivityMonitoringData("TimeSheetBP_1", "ViewTimeSheets");
+ ActivityMonitoringData d = h.findLatestActivityMonitoringData("Shipment_Process-Hardware", "FillaPostlabel");
if (null!=d) System.out.println("FOUND Latest Activity Data: " + d.getAvgExecTime());
- Vector v = h.getActivityExecutionTimes("TimeSheetBP_1", "ViewTimeSheets");
+ Vector v = h.getActivityExecutionTimes("Shipment_Process-Hardware", "FillaPostlabel");
System.out.println(v);
- ProcessMonitoringData p = h.findLatestProcessMonitoringData("TimeSheetBP_1");
+ ProcessMonitoringData p = h.findLatestProcessMonitoringData("Shipment_Process-Hardware");
if (null!=p) {
System.out.println("FOUND Latest Data: " + p.getAvgExecTime());
Vector act = p.getPerformedActivityNames();
System.out.println("Executed activities for last instance " + p.getProcID() + ": " + act);
}
- Vector vp = h.getProcessExecutionTimes("TimeSheetBP_1");
+ Vector vp = h.getProcessExecutionTimes("Shipment_Process-Hardware");
System.out.println(vp);
} catch (IOException e) {
@@ -152,6 +213,10 @@
System.out.println("Activity: " + key + " :: "+ activityExecHistoryMap.get(key));
}
+ System.out.println("Printing Concept TO Activities and Service Map");
+ for (String key : conceptsActivitiesAndServiceMap.keySet()){
+ System.out.println("Concept: " + key + " :: "+ conceptsActivitiesAndServiceMap.get(key));
+ }
}
@@ -193,6 +258,14 @@
return v;
}
+ public DSLActivityandServiceMap getConceptActivitiesAndServiceMap(String conceptName) {
+ DSLActivityandServiceMap m = null;
+ if ((null!=conceptName) && conceptsActivitiesAndServiceMap.containsKey(conceptName)){
+ m = conceptsActivitiesAndServiceMap.get(conceptName);
+ }
+ return m;
+ }
+
private ActivityMonitoringData processActivityLine(String nextLine) {
ActivityMonitoringData data = new ActivityMonitoringData();
Scanner ls = new Scanner(nextLine);
diff --git a/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/DSLActivityandServiceMap.java b/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/DSLActivityandServiceMap.java
new file mode 100755
index 0000000..b48ca8c
--- /dev/null
+++ b/org.eclipse.soa.mangrove.roots/trunk/org.eclipse.soa.mangrove.monitoring/src/org/eclipse/soa/mangrove/monitoring/DSLActivityandServiceMap.java
@@ -0,0 +1,29 @@
+package org.eclipse.soa.mangrove.monitoring;
+
+import java.util.Vector;
+
+public class DSLActivityandServiceMap {
+
+ public String getConceptName() {
+ return conceptName;
+ }
+ public void setConceptName(String conceptName) {
+ this.conceptName = conceptName;
+ }
+ public Vector<String> getActivityNames() {
+ return activityNames;
+ }
+ public void setActivityNames(Vector<String> activityNames) {
+ this.activityNames = activityNames;
+ }
+ public String getServiceName() {
+ return serviceName;
+ }
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+ private String conceptName;
+ private Vector<String> activityNames;
+ private String serviceName;
+
+}