You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ha...@apache.org on 2011/09/15 22:53:41 UTC

svn commit: r1171270 - in /camel/trunk/components/camel-spring-ws/src: main/java/org/apache/camel/component/spring/ws/ test/java/org/apache/camel/component/spring/ws/

Author: hadrian
Date: Thu Sep 15 20:53:40 2011
New Revision: 1171270

URL: http://svn.apache.org/viewvc?rev=1171270&view=rev
Log:
CAMEL-4455. Use valid URIs in camel-spring-ws

Modified:
    camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java
    camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java
    camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
    camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ConsumerExceptionPropagationRouteTest.java

Modified: camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java?rev=1171270&r1=1171269&r2=1171270&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java (original)
+++ camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceComponent.java Thu Sep 15 20:53:40 2011
@@ -54,6 +54,12 @@ public class SpringWebserviceComponent e
         super(context);
     }
 
+    @Deprecated
+    protected String preProcessUri(String uri) {
+        String[] u = uri.split("\\?");
+        return u[0].replaceAll("%7B", "(").replaceAll("%7D", ")") + (u.length > 1 ? "?" + u[1] : "");
+    }
+
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         SpringWebserviceConfiguration configuration = new SpringWebserviceConfiguration();
@@ -61,11 +67,10 @@ public class SpringWebserviceComponent e
         addProducerConfiguration(remaining, parameters, configuration);
         addXmlConverterToConfiguration(parameters, configuration);
         setProperties(configuration, parameters);
-        return new SpringWebserviceEndpoint(this, configuration);
+        return new SpringWebserviceEndpoint(this, uri, configuration);
     }
 
-    private void addConsumerConfiguration(String remaining, Map<String, Object> parameters,
-                                          SpringWebserviceConfiguration configuration) {
+    private void addConsumerConfiguration(String remaining, Map<String, Object> parameters, SpringWebserviceConfiguration configuration) {
         EndpointMappingType type = EndpointMappingType.getTypeFromUriPrefix(remaining);
         if (type != null) {
             LOG.debug("Building Spring Web Services consumer of type " + type);
@@ -75,12 +80,8 @@ public class SpringWebserviceComponent e
             } else {
                 addEndpointMappingToConfiguration(parameters, configuration);
             }
-            if (EndpointMappingType.XPATHRESULT.equals(type)) {
-                XPathExpression expression = getXPathExpressionFromParameters(parameters);
-                configuration.setEndpointMappingKey(new EndpointMappingKey(type, lookupKey, expression));
-            } else {
-                configuration.setEndpointMappingKey(new EndpointMappingKey(type, lookupKey, null));
-            }
+            configuration.setEndpointMappingKey(new EndpointMappingKey(type, lookupKey, 
+                type.equals(EndpointMappingType.XPATHRESULT) ? getXPathExpressionFromParameters(parameters) : null));
         }
     }
 
@@ -115,7 +116,8 @@ public class SpringWebserviceComponent e
 
     private String getLookupKey(String remaining, EndpointMappingType type) {
         String lookupKey = remaining.substring(type.getPrefix().length());
-        return lookupKey.startsWith("//") ? lookupKey.substring(2) : lookupKey;
+        lookupKey = lookupKey.startsWith("//") ? lookupKey.substring(2) : lookupKey;
+        return SpringWebserviceConfiguration.decode(lookupKey);
     }
 
     private XPathExpression getXPathExpressionFromParameters(Map<String, Object> parameters) {

Modified: camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java?rev=1171270&r1=1171269&r2=1171270&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java (original)
+++ camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceConfiguration.java Thu Sep 15 20:53:40 2011
@@ -58,7 +58,7 @@ public class SpringWebserviceConfigurati
     public String getEndpointUri() {
         if (endpointMappingKey != null) {
             // only for consumers, use lookup key as endpoint uri/key
-            return endpointMappingKey.getLookupKey();
+            return encode(endpointMappingKey.getLookupKey());
         } else if (webServiceTemplate != null) {
             return webServiceTemplate.getDefaultUri();
         }
@@ -108,4 +108,14 @@ public class SpringWebserviceConfigurati
     public void setXmlConverter(XmlConverter xmlConverter) {
         this.xmlConverter = xmlConverter;
     }
+
+    public static String encode(String uri) {
+        int i = uri.lastIndexOf('}');
+        return i == -1 ? uri : (uri.subSequence(0, i) + ")" + uri.substring(i + 1)).replaceFirst("\\{", "(");
+    }
+
+    public static String decode(String uri) {
+        int i = uri.lastIndexOf(')');
+        return i == -1 ? uri : (uri.subSequence(0, i) + "}" + uri.substring(i + 1)).replaceFirst("\\(", "{");
+    }
 }

Modified: camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java?rev=1171270&r1=1171269&r2=1171270&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java (original)
+++ camel/trunk/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java Thu Sep 15 20:53:40 2011
@@ -26,8 +26,8 @@ public class SpringWebserviceEndpoint ex
 
     private SpringWebserviceConfiguration configuration;
 
-    public SpringWebserviceEndpoint(Component component, SpringWebserviceConfiguration configuration) {
-        super(configuration.getEndpointUri(), component);
+    public SpringWebserviceEndpoint(Component component, String uri, SpringWebserviceConfiguration configuration) {
+        super(uri, component);
         this.configuration = configuration;
     }
 
@@ -50,5 +50,4 @@ public class SpringWebserviceEndpoint ex
     public SpringWebserviceConfiguration getConfiguration() {
         return configuration;
     }
-
 }

Modified: camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ConsumerExceptionPropagationRouteTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ConsumerExceptionPropagationRouteTest.java?rev=1171270&r1=1171269&r2=1171270&view=diff
==============================================================================
--- camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ConsumerExceptionPropagationRouteTest.java (original)
+++ camel/trunk/components/camel-spring-ws/src/test/java/org/apache/camel/component/spring/ws/ConsumerExceptionPropagationRouteTest.java Thu Sep 15 20:53:40 2011
@@ -17,13 +17,17 @@
 package org.apache.camel.component.spring.ws;
 
 import java.io.StringReader;
+import java.net.URI;
+
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.camel.Endpoint;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.spring.ws.bean.CamelEndpointMapping;
 import org.apache.camel.impl.JndiRegistry;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -67,6 +71,15 @@ public class ConsumerExceptionPropagatio
         return registry;
     }
 
+    @Ignore("For now getEndpointUri does not return the initial uri. Info like the endpoint scheme is lost")
+    public void testValidUri() throws Exception {
+        String deprecate = "spring-ws:rootqname:{http://www.webserviceX.NET/}GetQuote?endpointMapping=#endpointMapping";
+        String sanitized = "spring-ws:rootqname:(http://www.webserviceX.NET/)GetQuote?endpointMapping=#endpointMapping";
+        Endpoint endpoint = context.getComponent("spring-ws").createEndpoint(deprecate); 
+        assertEquals(sanitized, endpoint.getEndpointUri());
+        assertNotNull(new URI(endpoint.getEndpointUri()));
+    }
+
     @Test
     public void consumeWebserviceAndTestForSoapFault() throws Exception {
         StreamSource source = new StreamSource(new StringReader(xmlRequestForGoogleStockQuote));
@@ -84,5 +97,4 @@ public class ConsumerExceptionPropagatio
             }
         };
     }
-
 }
\ No newline at end of file