From 5083f008143063d28ccb94fb4ccaa0f5cf1f97ba Mon Sep 17 00:00:00 2001
From: Matthias <m.blohm@etermio.com>
Date: Sat, 17 Dec 2016 15:40:11 +0100
Subject: [PATCH] traceFile path fix, axis description added, C & I filter fix

---
 .../JPetStore/SelectService.dql               |  2 +-
 .../JPetStore/SelectUtilization.dql           |  2 +-
 .../dql/connector/kieker/KiekerHelper.java    | 34 +++++++++++++------
 .../PerformanceMetricsQueryConnectorImpl.java |  4 +++
 .../filter/ClassAndInterfaceFilter.java       |  6 +++-
 5 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql
index 81e7491..a387da2 100644
--- a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql
+++ b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectService.dql
@@ -1,3 +1,3 @@
 SELECT srv1.ResponseTime.DEFAULT
-FOR SERVICE 'org.mybatis.jpetstore.web.actions.CatalogActionBean' AS srv1
+FOR SERVICE 'org.mybatis.jpetstore.web.actions.CatalogActionBean.getItem()' AS srv1
 USING kieker@'JPetStore.properties';
\ No newline at end of file
diff --git a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql
index 83a42a5..722883d 100644
--- a/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql
+++ b/tools.descartes.dql.connector.kieker.examples/JPetStore/SelectUtilization.dql
@@ -1,3 +1,3 @@
 SELECT res1.utilization.SAMPLE
-FOR RESOURCE 'cpu1' AS res1
+FOR RESOURCE 'cpu3' AS res1
 USING kieker@'JPetStore.properties';
\ No newline at end of file
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java
index e7ec803..a66f2bb 100644
--- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/KiekerHelper.java
@@ -241,7 +241,7 @@ public class KiekerHelper {
 		 Configuration readerConfig = new Configuration();
 		 
 		 for (int i = 0; i< traceFolders.length; i++){
-			 readerConfig.setProperty("TRACE_"+i, outputPath+File.separator+traceFolders[i]);
+			 readerConfig.setProperty("TRACE_"+i, traceFolders[i]);
 		 }
 		 
 		for (Entity e : request.getEntities()) {
@@ -287,6 +287,19 @@ public class KiekerHelper {
 		    return new File(current, name).isDirectory();
 		  }
 		});
+		if (directories.length > 0){
+			return directories;
+		}
+		// if no folders found, files might be directly under this path and not in a subfolder
+		String[] files = file.list(new FilenameFilter() {
+			  @Override
+			  public boolean accept(File current, String name) {
+			    return (name.endsWith(".map") || name.endsWith(".dat"));
+			  }
+			});
+		if (files.length > 1){
+			directories = new String[]{file.getAbsolutePath()};
+		}
 		return directories;
 	}
 
@@ -331,15 +344,14 @@ public class KiekerHelper {
 	
 	public static boolean checkTraceFilesExist(String path){
 		File file = new File(path);
-		return true;
-//		if (!file.exists() || !  file.isDirectory()){
-//			return false;
-//		}
-//		String[] folders = getTraceFolders(path);
-//		if (folders.length>0){
-//			return true;
-//		} else {
-//			return false;
-//		}
+		if (!file.exists() || !  file.isDirectory()){
+			return false;
+		}
+		String[] folders = getTraceFolders(path);
+		if (folders.length>0){
+			return true;
+		} else {
+			return false;
+		}
 	}
 }
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java
index 1a73b7d..3e2f89d 100644
--- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java
@@ -79,6 +79,8 @@ public class PerformanceMetricsQueryConnectorImpl extends
 					if (KiekerHelper.METRIC_UTILIZATION.equalsIgnoreCase(dqlProbe.getMetricName())) {
 							if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")){
 								ContinuousSeriesResult result = domainFactory.createContinuousSeriesResult();
+								result.setXAxisDescription("ms");
+								result.setYAxisDescription("% (between 0 and 1)");
 							if (resources != null  && resources.size() > 0) {
 									try {
 										for (ResourceRecord record : resources) {
@@ -100,6 +102,8 @@ public class PerformanceMetricsQueryConnectorImpl extends
 					} else if (KiekerHelper.METRIC_RESPONSE_TIME.equalsIgnoreCase(dqlProbe.getMetricName())) {
 						if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")){
 							ContinuousSeriesResult res = domainFactory.createContinuousSeriesResult();
+							res.setXAxisDescription("ms");
+							res.setYAxisDescription("ms");
 							if (services != null) {
 							try {
 									Component comp = new Component(KiekerHelper.getComponentString(ent.getIdentifier()));
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java
index bdf26fe..0295c50 100644
--- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/ClassAndInterfaceFilter.java
@@ -53,6 +53,7 @@ public class ClassAndInterfaceFilter extends AbstractFilterPlugin {
 
 			final String hostName = opExRecord.getHostname();
 			final String signature = opExRecord.getOperationSignature();
+			
 			final long exTime = opExRecord.getTout()-opExRecord.getTin();
 			final String classPattern = "[\\p{Graph}]+((\\.)(\\w)*[<(].*[>)])";//String-pattern to extract the component information
 			final String interfacePattern = "((\\.)(\\w)*[<(].*[>)])";//String-pattern to extract the component information
@@ -70,7 +71,10 @@ public class ClassAndInterfaceFilter extends AbstractFilterPlugin {
 				String[] redundantInfo=signature.split(classPattern);
 				
 				//(redundantInfo + classAndInterfaceString) - redundantInfo = classAndInterfaceString
-				String classAndInterfaceString = signature.substring(redundantInfo[0].length()); 
+				String classAndInterfaceString = signature;
+				if (redundantInfo.length > 0){
+					classAndInterfaceString = signature.substring(redundantInfo[0].length());
+				}
 				
 				//extraction of the class information
 				String[] componentSeparatedByNonWordChar = classAndInterfaceString.split(interfacePattern);
-- 
GitLab