From c9e8b8e868be0cce89f1ead8eb761751a2b006d9 Mon Sep 17 00:00:00 2001
From: Constantin Jucovschi <jucovschi@gmail.com>
Date: Thu, 21 Aug 2014 17:32:30 +0200
Subject: [PATCH] test

---
 .classpath                                    |  2 +-
 .settings/org.eclipse.jdt.core.prefs          |  6 +-
 pom.xml                                       |  2 +-
 .../sally4/client/impl/SallyClientImpl.java   |  4 +-
 .../kwarc/sally4/client/utils/CommUtils.java  | 55 +++++++++++++++++++
 .../ProducerConsumerSplitterComponent.java    |  2 +-
 ...onsumerSplitterComponentConfiguration.java |  2 +-
 .../ProducerConsumerSplitterEndpoint.java     |  2 +-
 .../sally4/client/utils/XMLMessageType.java   | 33 +++++++++++
 9 files changed, 98 insertions(+), 10 deletions(-)
 create mode 100644 src/main/java/info/kwarc/sally4/client/utils/CommUtils.java
 rename src/main/java/info/kwarc/sally4/{components => client/utils}/ProducerConsumerSplitterComponent.java (99%)
 rename src/main/java/info/kwarc/sally4/{components => client/utils}/ProducerConsumerSplitterComponentConfiguration.java (62%)
 rename src/main/java/info/kwarc/sally4/{components => client/utils}/ProducerConsumerSplitterEndpoint.java (98%)
 create mode 100644 src/main/java/info/kwarc/sally4/client/utils/XMLMessageType.java

diff --git a/.classpath b/.classpath
index 6a3cba6..7d92d53 100644
--- a/.classpath
+++ b/.classpath
@@ -18,7 +18,7 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 60105c1..ec4300d 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,5 +1,5 @@
 eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/pom.xml b/pom.xml
index 204a062..7a6a29c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
 	<parent>
 		<groupId>info.kwarc.sally4</groupId>
 		<artifactId>sally4</artifactId>
-		<version>0.0.4</version>
+		<version>0.0.5</version>
 		<relativePath>..</relativePath>
 	</parent>
 
diff --git a/src/main/java/info/kwarc/sally4/client/impl/SallyClientImpl.java b/src/main/java/info/kwarc/sally4/client/impl/SallyClientImpl.java
index e625cf0..1487455 100644
--- a/src/main/java/info/kwarc/sally4/client/impl/SallyClientImpl.java
+++ b/src/main/java/info/kwarc/sally4/client/impl/SallyClientImpl.java
@@ -3,7 +3,7 @@ package info.kwarc.sally4.client.impl;
 import info.kwarc.sally.comm.core.RegisterClientRequest;
 import info.kwarc.sally.comm.core.RegisterClientResponse;
 import info.kwarc.sally4.client.SallyClient;
-import info.kwarc.sally4.components.ProducerConsumerSplitterComponent;
+import info.kwarc.sally4.client.utils.ProducerConsumerSplitterComponent;
 
 import java.util.Arrays;
 import java.util.UUID;
@@ -100,7 +100,7 @@ public class SallyClientImpl extends RouteBuilder implements SallyClient {
 
 	@Override
 	public void configure() throws Exception {
-		JAXBContext context = JAXBContext.newInstance("info.kwarc.sally.comm.core");
+		JAXBContext context = JAXBContext.newInstance("info.kwarc.sally.comm.core", getClass().getClassLoader());
 		
 		DataFormat core = new JaxbDataFormat(context);
 
diff --git a/src/main/java/info/kwarc/sally4/client/utils/CommUtils.java b/src/main/java/info/kwarc/sally4/client/utils/CommUtils.java
new file mode 100644
index 0000000..f47c9f9
--- /dev/null
+++ b/src/main/java/info/kwarc/sally4/client/utils/CommUtils.java
@@ -0,0 +1,55 @@
+package info.kwarc.sally4.client.utils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+
+import org.apache.camel.converter.jaxb.JaxbDataFormat;
+import org.apache.camel.spi.DataFormat;
+
+public class CommUtils {
+	public final static String iFacePrefix = "info.kwarc.sally.comm.";
+	public final static String xmlFacePrefix = "http://kwarc.info/sally/comm/";
+
+	public static DataFormat getDataFormat(String iFace) {
+		try {
+			JAXBContext context = JAXBContext.newInstance(iFacePrefix+iFace, CommUtils.class.getClassLoader());
+			return new JaxbDataFormat(context);
+		} catch (JAXBException e) {
+			return null;
+		}
+	}
+
+
+	public static DataFormat getDataFormat(String iFace, ClassLoader loader) {
+		try {
+			JAXBContext context = JAXBContext.newInstance(iFacePrefix+iFace, loader);
+			return new JaxbDataFormat(context);
+		} catch (JAXBException e) {
+			return null;
+		}
+	}
+	
+	public static String SerializeToQuery(Map<String, String> props) {
+		StringBuilder builder = new StringBuilder();
+		boolean first = true;
+		for (String key : props.keySet()) {
+			if (first) {
+				first = false;
+			} else {
+				builder.append("&");
+			}
+			builder.append(key);
+			builder.append("=");			
+			try {
+				builder.append(URLEncoder.encode(props.get(key), "UTF-8"));
+			} catch (UnsupportedEncodingException e) {
+			}
+		}
+		return builder.toString();
+	}
+
+}
diff --git a/src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterComponent.java b/src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterComponent.java
similarity index 99%
rename from src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterComponent.java
rename to src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterComponent.java
index 448fb2c..47d017b 100644
--- a/src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterComponent.java
+++ b/src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterComponent.java
@@ -1,4 +1,4 @@
-package info.kwarc.sally4.components;
+package info.kwarc.sally4.client.utils;
 
 import java.net.URI;
 import java.net.URISyntaxException;
diff --git a/src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterComponentConfiguration.java b/src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterComponentConfiguration.java
similarity index 62%
rename from src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterComponentConfiguration.java
rename to src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterComponentConfiguration.java
index 0cf299d..e524aae 100644
--- a/src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterComponentConfiguration.java
+++ b/src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterComponentConfiguration.java
@@ -1,4 +1,4 @@
-package info.kwarc.sally4.components;
+package info.kwarc.sally4.client.utils;
 
 public class ProducerConsumerSplitterComponentConfiguration {
 
diff --git a/src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterEndpoint.java b/src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterEndpoint.java
similarity index 98%
rename from src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterEndpoint.java
rename to src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterEndpoint.java
index 96922d7..2600a8d 100644
--- a/src/main/java/info/kwarc/sally4/components/ProducerConsumerSplitterEndpoint.java
+++ b/src/main/java/info/kwarc/sally4/client/utils/ProducerConsumerSplitterEndpoint.java
@@ -1,4 +1,4 @@
-package info.kwarc.sally4.components;
+package info.kwarc.sally4.client.utils;
 
 import java.net.URI;
 import java.util.Map;
diff --git a/src/main/java/info/kwarc/sally4/client/utils/XMLMessageType.java b/src/main/java/info/kwarc/sally4/client/utils/XMLMessageType.java
new file mode 100644
index 0000000..2939dd8
--- /dev/null
+++ b/src/main/java/info/kwarc/sally4/client/utils/XMLMessageType.java
@@ -0,0 +1,33 @@
+package info.kwarc.sally4.client.utils;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Predicate;
+
+public class XMLMessageType implements Predicate {
+	String msgName;
+	public final static Pattern xmlNamespace = Pattern.compile("<((\\w+):)?(\\w+)\\s+xmlns(:(\\w+))?=\"([\\w/:.]+)\"/?>");
+
+	public XMLMessageType(String msgName) {
+		this.msgName = msgName;
+	}
+	
+	public boolean matches(String body) {
+		Matcher m = xmlNamespace.matcher(body);
+		if (m.find()) {
+			String msgType = m.group(3);
+			return msgName.equals(msgType);
+		}
+		return false;		
+	}
+	
+	public boolean matches(Exchange exchange) {
+		String msg = exchange.getIn().getBody(String.class);
+		return matches(msg);
+	}
+	
+
+	
+}
-- 
GitLab