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