Author: dkulp
Date: Thu Dec 22 17:57:16 2011
New Revision: 1222378

URL: http://svn.apache.org/viewvc?rev=1222378&view=rev
Log:
Merged revisions 1215477,1221565 via svnmerge from 
https://svn.apache.org/repos/asf/camel/trunk

........
  r1215477 | ningjiang | 2011-12-17 07:30:01 -0500 (Sat, 17 Dec 2011) | 1 line
  
  CAMEL-4788 Fixed the CxfRs address issue with camel properties
........
  r1221565 | ningjiang | 2011-12-20 21:22:22 -0500 (Tue, 20 Dec 2011) | 1 line
  
  CAMEL-4788 Fixed the issue of setting the bean address with thanks to Cédric
........

Added:
    
camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java
      - copied, changed from r1215477, 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java
    
camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml
      - copied, changed from r1215477, 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml
    
camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties
      - copied, changed from r1215477, 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties
Modified:
    camel/branches/camel-2.8.x/   (props changed)
    
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/IOHelper.java
    
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java
    
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java
    
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
    
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
    
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
    svn:mergeinfo = /camel/trunk:1215477,1221565

Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/IOHelper.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/IOHelper.java?rev=1222378&r1=1222377&r2=1222378&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/IOHelper.java
 (original)
+++ 
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/util/IOHelper.java
 Thu Dec 22 17:57:16 2011
@@ -22,7 +22,9 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
+import java.nio.charset.UnsupportedCharsetException;
 
+import org.apache.camel.Exchange;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -166,4 +168,60 @@ public final class IOHelper {
         close(closeable, null, LOG);
     }
 
+    public static void validateCharset(String charset) throws 
UnsupportedCharsetException {
+        if (charset != null) {
+            if (Charset.isSupported(charset)) {
+                Charset.forName(charset);
+                return;
+            }
+        }
+        throw new UnsupportedCharsetException(charset);
+    }
+
+    /**
+     * This method will take off the quotes and double quotes of the charset
+     */
+    public static String normalizeCharset(String charset) {
+        if (charset != null) {
+            String answer = charset.trim();
+            if (answer.startsWith("'") || answer.startsWith("\"")) {
+                answer = answer.substring(1);
+            }
+            if (answer.endsWith("'") || answer.endsWith("\"")) {
+                answer = answer.substring(0, answer.length() - 1);
+            }
+            return answer.trim();
+        } else {
+            return null;
+        }
+    }
+
+    public static String getCharsetName(Exchange exchange) {
+        return getCharsetName(exchange, true);
+    }
+
+    /**
+     * Gets the charset name if set as property {@link Exchange#CHARSET_NAME}.
+     *
+     * @param exchange  the exchange
+     * @param useDefault should we fallback and use JVM default charset if no 
property existed?
+     * @return the charset, or <tt>null</tt> if no found
+     */
+    public static String getCharsetName(Exchange exchange, boolean useDefault) 
{
+        if (exchange != null) {
+            String charsetName = exchange.getProperty(Exchange.CHARSET_NAME, 
String.class);
+            if (charsetName != null) {
+                return IOHelper.normalizeCharset(charsetName);
+            }
+        }
+        if (useDefault) {
+            return getDefaultCharsetName();
+        } else {
+            return null;
+        }
+    }
+    
+    private static String getDefaultCharsetName() {
+        return 
ObjectHelper.getSystemProperty(Exchange.DEFAULT_CHARSET_PROPERTY, "UTF-8");
+    }
 }

Modified: 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java?rev=1222378&r1=1222377&r2=1222378&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/blueprint/RsServerBlueprintBean.java
 Thu Dec 22 17:57:16 2011
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.component.cxf.blueprint;
 
-import org.apache.camel.RuntimeCamelException;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.blueprint.container.BlueprintContainer;

Modified: 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java?rev=1222378&r1=1222377&r2=1222378&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsBlueprintEndpoint.java
 Thu Dec 22 17:57:16 2011
@@ -17,6 +17,7 @@
 package org.apache.camel.component.cxf.jaxrs;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
 import org.apache.camel.blueprint.BlueprintCamelContext;
 import org.apache.camel.component.cxf.blueprint.BlueprintSupport;
 import org.apache.camel.component.cxf.blueprint.RsClientBlueprintBean;
@@ -32,7 +33,13 @@ public class CxfRsBlueprintEndpoint exte
     private BlueprintContainer blueprintContainer;
     private BundleContext bundleContext;
     private BlueprintCamelContext blueprintCamelContext;
-
+    
+    @Deprecated 
+    /**
+     * It will be removed in Camel 2.9
+     * @param camelContext
+     * @param bean
+     */
     public CxfRsBlueprintEndpoint(CamelContext camelContext, 
AbstractJAXRSFactoryBean bean) {
         super(bean.getAddress(), camelContext);
         this.bean = bean;
@@ -40,6 +47,17 @@ public class CxfRsBlueprintEndpoint exte
         setBlueprintContainer(support.getBlueprintContainer());
         setBundleContext(support.getBundleContext());
     }
+
+    public CxfRsBlueprintEndpoint(Component comp, String uri, 
AbstractJAXRSFactoryBean bean) {
+        super(uri, comp);
+        this.bean = bean;
+        setAddress(bean.getAddress());
+        // update the sfb address by resolving the properties
+        bean.setAddress(getAddress());
+        BlueprintSupport support = (BlueprintSupport)bean;
+        setBlueprintContainer(support.getBlueprintContainer());
+        setBundleContext(support.getBundleContext());
+    }
     
     public BlueprintContainer getBlueprintContainer() {
         return blueprintContainer;

Modified: 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java?rev=1222378&r1=1222377&r2=1222378&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
 Thu Dec 22 17:57:16 2011
@@ -30,6 +30,7 @@ import org.apache.camel.component.cxf.Cx
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.helpers.CastUtils;
@@ -173,6 +174,19 @@ public class CxfRsEndpoint extends Defau
     protected JAXRSClientFactoryBean newJAXRSClientFactoryBean() {
         return new JAXRSClientFactoryBean();
     }
+    
+    protected String resolvePropertyPlaceholders(String str) {
+        try {
+            if (getCamelContext() != null) {
+                return getCamelContext().resolvePropertyPlaceholders(str);
+            } else {
+                return str;
+            }
+        } catch (Exception ex) {
+            throw ObjectHelper.wrapRuntimeCamelException(ex);
+        }
+    }
+
 
     public JAXRSServerFactoryBean createJAXRSServerFactoryBean() {
         JAXRSServerFactoryBean answer = newJAXRSServerFactoryBean();
@@ -208,7 +222,7 @@ public class CxfRsEndpoint extends Defau
     }
 
     public String getAddress() {
-        return address;
+        return resolvePropertyPlaceholders(address);
     }
 
     public boolean isThrowExceptionOnFailure() {

Modified: 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java?rev=1222378&r1=1222377&r2=1222378&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducer.java
 Thu Dec 22 17:57:16 2011
@@ -17,7 +17,6 @@
 package org.apache.camel.component.cxf.jaxrs;
 
 import java.io.UnsupportedEncodingException;
-import java.lang.ref.SoftReference;
 import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
@@ -36,9 +35,8 @@ import org.apache.camel.Message;
 import org.apache.camel.component.cxf.CxfEndpointUtils;
 import org.apache.camel.component.cxf.CxfOperationException;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
-import org.apache.camel.converter.IOConverter;
 import org.apache.camel.impl.DefaultProducer;
-import org.apache.camel.util.LRUCache;
+import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.LRUSoftCache;
 import org.apache.cxf.jaxrs.JAXRSServiceFactoryBean;
 import org.apache.cxf.jaxrs.client.Client;
@@ -123,7 +121,8 @@ public class CxfRsProducer extends Defau
             // Get the map from HTTP_QUERY header
             String queryString = inMessage.getHeader(Exchange.HTTP_QUERY, 
String.class);
             if (queryString != null) {
-                maps = getQueryParametersFromQueryString(queryString, 
IOConverter.getCharsetName(exchange));
+                maps = getQueryParametersFromQueryString(queryString,
+                                                         
IOHelper.getCharsetName(exchange));
             }
         }
         if (maps == null) {

Modified: 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java?rev=1222378&r1=1222377&r2=1222378&view=diff
==============================================================================
--- 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsSpringEndpoint.java
 Thu Dec 22 17:57:16 2011
@@ -18,26 +18,34 @@
 package org.apache.camel.component.cxf.jaxrs;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.cxf.spring.SpringJAXRSClientFactoryBean;
-import org.apache.camel.component.cxf.spring.SpringJAXRSServerFactoryBean;
-import org.apache.camel.spring.SpringCamelContext;
-import org.apache.cxf.configuration.spring.ConfigurerImpl;
+import org.apache.camel.Component;
 import org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
 import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.AbstractApplicationContext;
 
 public class CxfRsSpringEndpoint extends CxfRsEndpoint implements BeanIdAware {
     private AbstractJAXRSFactoryBean bean;
     private String beanId;
     
-    
+    @Deprecated 
+    /**
+     * It will be removed in Camel 2.9
+     * @param comp
+     * @param bean
+     */
     public CxfRsSpringEndpoint(CamelContext context, AbstractJAXRSFactoryBean 
bean) throws Exception {
         super(bean.getAddress(), context);        
         init(bean);
     }
     
+    public CxfRsSpringEndpoint(Component component, String uri, 
AbstractJAXRSFactoryBean bean) throws Exception {
+        super(uri, component);
+        setAddress(bean.getAddress());
+        // Update the sfb address by resolving the properties
+        bean.setAddress(getAddress());
+        init(bean);
+    }
+    
     private void init(AbstractJAXRSFactoryBean bean) {
         this.bean = bean;
         if (bean instanceof BeanIdAware) {
@@ -47,7 +55,7 @@ public class CxfRsSpringEndpoint extends
     
     @Override
     protected void setupJAXRSServerFactoryBean(JAXRSServerFactoryBean sfb) {
-        // Do nothing here
+       // Do nothing here
     }
     
     @Override

Copied: 
camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java
 (from r1215477, 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java)
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java?p2=camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java&p1=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java&r1=1215477&r2=1222378&rev=1222378&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.java
 Thu Dec 22 17:57:16 2011
@@ -18,6 +18,9 @@ package org.apache.camel.component.cxf.j
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.component.cxf.spring.AbstractSpringBeanTestSupport;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.DefaultHttpClient;
 import org.junit.Test;
 
 public class CxfRsEndpointWithProperties extends AbstractSpringBeanTestSupport 
{
@@ -32,7 +35,11 @@ public class CxfRsEndpointWithProperties
         // get the camelContext from application context
         CamelContext camelContext = ctx.getBean("camel", CamelContext.class);
         CxfRsEndpoint testEndpoint = 
camelContext.getEndpoint("cxfrs:bean:testEndpoint", CxfRsEndpoint.class);
-        assertEquals("Got a wrong address", 
"http://localhost:9000/testEndpoint";, testEndpoint.getAddress());
+        assertEquals("Got a wrong address", 
"http://localhost:9900/testEndpoint";, testEndpoint.getAddress());
+        HttpGet get = new HttpGet(testEndpoint.getAddress());
+        DefaultHttpClient httpclient = new DefaultHttpClient();
+        HttpResponse response = httpclient.execute(get);
+        assertEquals(404, response.getStatusLine().getStatusCode());
     }
 
 }

Copied: 
camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml
 (from r1215477, 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml)
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml?p2=camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml&p1=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml&r1=1215477&r2=1222378&rev=1222378&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/CxfRsEndpointWithProperties.xml
 Thu Dec 22 17:57:16 2011
@@ -32,6 +32,10 @@
  
   <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring";>
        <propertyPlaceholder id="properties" 
location="org/apache/camel/component/cxf/jaxrs/testEndpoint.properties"/>
+       <route>
+               <from uri="cxfrs:bean:testEndpoint"/>
+               <to uri="mock:end"/>
+       </route>
   </camelContext>
   
   

Copied: 
camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties
 (from r1215477, 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties)
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties?p2=camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties&p1=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties&r1=1215477&r2=1222378&rev=1222378&view=diff
==============================================================================
--- 
camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties
 (original)
+++ 
camel/branches/camel-2.8.x/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/jaxrs/testEndpoint.properties
 Thu Dec 22 17:57:16 2011
@@ -18,4 +18,4 @@
 #    under the License.
 #
 #
-address=http://localhost:9000/testEndpoint
+address=http://localhost:9900/testEndpoint


Reply via email to