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