You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by wt...@apache.org on 2009/01/19 02:48:42 UTC
svn commit: r735592 [2/2] - in /activemq/camel/trunk: ./
components/camel-cxf/src/main/java/org/apache/camel/component/cxf/
components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/
components/camel-cxf/src/main/java/org/apache/camel...
Added: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java?rev=735592&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java (added)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java Sun Jan 18 17:48:41 2009
@@ -0,0 +1,476 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cxf;
+
+import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePattern;
+import org.apache.camel.HeaderFilterStrategyAware;
+import org.apache.camel.component.cxf.transport.CamelTransportConstants;
+import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.cxf.binding.soap.SoapHeader;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.frontend.MethodDispatcher;
+import org.apache.cxf.headers.Header;
+import org.apache.cxf.helpers.CastUtils;
+import org.apache.cxf.jaxws.context.WrappedMessageContext;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageContentsList;
+import org.apache.cxf.service.Service;
+import org.apache.cxf.service.model.BindingMessageInfo;
+import org.apache.cxf.service.model.BindingOperationInfo;
+
+/**
+ * The Default CXF binding implementation.
+ *
+ * @version $Revision$
+ */
+public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware {
+ private static final Log LOG = LogFactory.getLog(DefaultCxfBinding.class);
+ private HeaderFilterStrategy headerFilterStrategy;
+
+ // CxfBinding Methods
+ // -------------------------------------------------------------------------
+
+ /**
+ * <p>
+ * This method is called by {@link CxfProducer#process(Exchange)}. It populates
+ * the CXF exchange and invocation context (i.e. request/response) contexts, it
+ * but does not create and populate a CXF message as a ClientImpl's invoke method
+ * will create a new CXF Message. That method will put all properties from the
+ * CXF exchange and request context to the CXF message.
+ * </p>
+ */
+ public void populateCxfRequestFromExchange(
+ org.apache.cxf.message.Exchange cxfExchange, Exchange camelExchange,
+ Map<String, Object> requestContext) {
+
+ // propagate request context
+ Map<String, Object> camelHeaders = camelExchange.getIn().getHeaders();
+ extractInvocationContextFromCamel(camelExchange, camelHeaders,
+ requestContext, Client.REQUEST_CONTEXT);
+
+ // propagate headers
+ propagateHeadersFromCamelToCxf(camelExchange, camelHeaders, cxfExchange,
+ requestContext);
+
+ }
+
+ /**
+ * This method is called by {@link CxfProducer#process(Exchange)}. It propagates
+ * information from CXF Exchange to Camel Exchange. The CXF Exchange contains a
+ * request from a CXF server.
+ */
+ public void populateExchangeFromCxfResponse(Exchange camelExchange,
+ org.apache.cxf.message.Exchange cxfExchange,
+ Map<String, Object> responseContext) {
+
+ Message cxfMessage = cxfExchange.getInMessage();
+
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Populate exchange from CXF response message: " + cxfMessage);
+ }
+
+ // propagate body
+ camelExchange.getOut().setBody(DefaultCxfBinding.getContentFromCxf(cxfMessage,
+ camelExchange.getProperty(DataFormat.class.getName(), DataFormat.class)));
+
+ // propagate response context
+ if (responseContext != null && responseContext.size() > 0) {
+ camelExchange.getOut().setHeader(Client.RESPONSE_CONTEXT, responseContext);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Set header = " + Client.RESPONSE_CONTEXT + " value = "
+ + responseContext);
+ }
+ }
+
+ // propagate protocol headers
+ propagateHeadersFromCxfToCamel(cxfMessage, camelExchange.getOut());
+ }
+
+ /**
+ * This method is called by {@link CxfConsumer}.
+ */
+ public void populateExchangeFromCxfRequest(org.apache.cxf.message.Exchange cxfExchange,
+ Exchange camelExchange) {
+
+ Method method = null;
+ QName operationName = null;
+ ExchangePattern mep = ExchangePattern.InOut;
+
+ // extract binding operation information
+ BindingOperationInfo bop = cxfExchange.get(BindingOperationInfo.class);
+ if (bop != null) {
+ camelExchange.setProperty(BindingOperationInfo.class.getName(), bop);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Set exchange property: BindingOperationInfo: " + bop);
+ }
+
+ Service service = (Service)cxfExchange.get(Service.class);
+ if (service != null) {
+ MethodDispatcher md = (MethodDispatcher)service
+ .get(MethodDispatcher.class.getName());
+ if (md != null) {
+ method = md.getMethod(bop);
+ }
+ }
+
+ if (bop.getOperationInfo().isOneWay()) {
+ mep = ExchangePattern.InOnly;
+ }
+
+ operationName = bop.getName();
+ }
+
+ // set operation name in header
+ if (operationName != null) {
+ camelExchange.getIn().setHeader(CxfConstants.OPERATION_NAMESPACE,
+ bop.getName().getNamespaceURI());
+ camelExchange.getIn().setHeader(CxfConstants.OPERATION_NAME,
+ bop.getName().getLocalPart());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Set IN header: " + CxfConstants.OPERATION_NAMESPACE + "="
+ + bop.getName().getNamespaceURI());
+ LOG.trace("Set IN header: " + CxfConstants.OPERATION_NAME + "="
+ + bop.getName().getLocalPart());
+ }
+ } else if (method != null) {
+ camelExchange.getIn().setHeader(CxfConstants.OPERATION_NAME, method.getName());
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Set IN header: " + CxfConstants.OPERATION_NAME + "="
+ + method.getName());
+ }
+ }
+
+ // set message exchange pattern
+ camelExchange.setPattern(mep);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Set exchange MEP: " + mep);
+ }
+
+ // propagate headers
+ Message cxfMessage = cxfExchange.getInMessage();
+ propagateHeadersFromCxfToCamel(cxfMessage, camelExchange.getIn());
+
+ // Propagating properties from CXF Exchange to Camel Exchange has an
+ // side effect of copying reply side stuff when the producer is retried.
+ // So, we do not want to do this.
+ //camelExchange.getProperties().putAll(cxfExchange);
+
+ // propagate request context
+ Object value = cxfMessage.get(Client.REQUEST_CONTEXT);
+ if (value != null && !headerFilterStrategy.applyFilterToExternalHeaders(
+ Client.REQUEST_CONTEXT, value)) {
+ camelExchange.getIn().setHeader(Client.REQUEST_CONTEXT, value);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Populate context from CXF message " + Client.REQUEST_CONTEXT
+ + " value=" + value);
+ }
+ }
+
+ // set body
+ Object body = DefaultCxfBinding.getContentFromCxf(cxfMessage,
+ camelExchange.getProperty(DataFormat.class.getName(), DataFormat.class));
+ if (body != null) {
+ camelExchange.getIn().setBody(body);
+ }
+ }
+
+ /**
+ * This method is called by {@link CxfConsumer} to populate a CXF response exchange
+ * from a Camel exchange.
+ */
+ public void populateCxfResponseFromExchange(Exchange camelExchange,
+ org.apache.cxf.message.Exchange cxfExchange) {
+
+ // create response context
+ Map<String, Object> responseContext = new HashMap<String, Object>();
+
+ // propagate response context
+ Map<String, Object> camelHeaders = camelExchange.getOut().getHeaders();
+ extractInvocationContextFromCamel(camelExchange, camelHeaders,
+ responseContext, Client.RESPONSE_CONTEXT);
+
+ propagateHeadersFromCamelToCxf(camelExchange, camelHeaders, cxfExchange,
+ responseContext);
+ // create out message
+ Endpoint ep = cxfExchange.get(Endpoint.class);
+ Message outMessage = ep.getBinding().createMessage();
+ cxfExchange.setOutMessage(outMessage);
+
+ DataFormat dataFormat = camelExchange.getProperty(DataFormat.class.getName(),
+ DataFormat.class);
+
+ // propagate contexts
+ if (dataFormat != DataFormat.POJO) {
+ // copying response context to out message seems to cause problem in POJO mode
+ outMessage.putAll(responseContext);
+ }
+ outMessage.put(Client.RESPONSE_CONTEXT, responseContext);
+
+ // set body
+ Object outBody = DefaultCxfBinding.getBodyFromCamel(camelExchange.getOut(), dataFormat);
+
+ if (outBody != null) {
+ if (dataFormat == DataFormat.PAYLOAD) {
+ CxfPayload<?> payload = (CxfPayload)outBody;
+ outMessage.put(List.class, payload.getBody());
+ outMessage.put(Header.HEADER_LIST, payload.getHeaders());
+ } else {
+ MessageContentsList resList = null;
+ if (outBody instanceof MessageContentsList) {
+ resList = (MessageContentsList)outBody;
+ } else if (outBody instanceof List) {
+ resList = new MessageContentsList((List)outBody);
+ } else if (outBody.getClass().isArray()) {
+ resList = new MessageContentsList((Object[])outBody);
+ } else {
+ resList = new MessageContentsList(outBody);
+ }
+
+ if (resList != null) {
+ outMessage.setContent(List.class, resList);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Set Out CXF message content = " + resList);
+ }
+ }
+ }
+ }
+
+ BindingOperationInfo boi = cxfExchange.get(BindingOperationInfo.class);
+ if (boi != null) {
+ cxfExchange.put(BindingMessageInfo.class, boi.getOutput());
+ }
+
+ }
+
+
+ // HeaderFilterStrategyAware Methods
+ // -------------------------------------------------------------------------
+
+
+ public HeaderFilterStrategy getHeaderFilterStrategy() {
+ return headerFilterStrategy;
+ }
+
+ public void setHeaderFilterStrategy(HeaderFilterStrategy strategy) {
+ this.headerFilterStrategy = strategy;
+ }
+
+
+ // Non public methods
+ // -------------------------------------------------------------------------
+
+ /**
+ * @param camelExchange
+ * @param cxfContext Request or Response context
+ * @param camelHeaders
+ * @param contextKey
+ */
+ @SuppressWarnings("unchecked")
+ protected void extractInvocationContextFromCamel(Exchange camelExchange,
+ Map<String, Object> camelHeaders, Map<String, Object> cxfContext,
+ String contextKey) {
+
+ // extract from header
+ Map context = (Map)camelHeaders.get(contextKey);
+ if (context != null) {
+ cxfContext.putAll(context);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Propagate " + contextKey + " from header context = "
+ + ((context instanceof WrappedMessageContext)
+ ? ((WrappedMessageContext)context).getWrappedMap()
+ : context));
+ }
+ }
+
+ // extract from exchange property
+ context = (Map)camelExchange.getProperty(contextKey);
+ if (context != null) {
+ cxfContext.putAll(context);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Propagate " + contextKey + " from exchange property context = "
+ + ((context instanceof WrappedMessageContext)
+ ? ((WrappedMessageContext)context).getWrappedMap()
+ : context));
+ }
+ }
+
+ // copy camel exchange properties into context
+ if (camelExchange.getProperties() != null) {
+ cxfContext.putAll(camelExchange.getProperties());
+ }
+
+ camelExchange.setProperty(contextKey, cxfContext);
+ }
+
+ /**
+ * @param cxfMessage
+ * @param camelMessage
+ */
+ protected void propagateHeadersFromCxfToCamel(Message cxfMessage,
+ org.apache.camel.Message camelMessage) {
+
+ Map<String, List<String>> cxfHeaders =
+ CastUtils.cast((Map)cxfMessage.get(Message.PROTOCOL_HEADERS));
+ Map<String, Object> camelHeaders = camelMessage.getHeaders();
+
+ if (cxfHeaders != null) {
+ for (Map.Entry<String, List<String>> entry : cxfHeaders.entrySet()) {
+ if (!headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue())) {
+ camelHeaders.put(entry.getKey(), entry.getValue().get(0));
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Populate header from CXF header=" + entry.getKey() + " value="
+ + entry.getValue());
+ }
+ }
+ }
+ }
+
+ // propagate content type
+ String key = Message.CONTENT_TYPE;
+ Object value = cxfMessage.get(key);
+ if (value != null && !headerFilterStrategy.applyFilterToExternalHeaders(key, value)) {
+ camelHeaders.put(CamelTransportConstants.CONTENT_TYPE, value);
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Populate header from CXF header=" + key + " value=" + value);
+ }
+ }
+
+ }
+
+ protected void propagateHeadersFromCamelToCxf(Exchange camelExchange,
+ Map<String, Object> camelHeaders,
+ org.apache.cxf.message.Exchange cxfExchange,
+ Map<String, Object> cxfContext) {
+
+ // get cxf transport headers (if any) from camel exchange
+ Map<String, List<String>> transportHeaders = new HashMap<String, List<String>>();
+ if (camelExchange != null) {
+ Map<String, List<String>> h = (Map)camelExchange.getProperty(Message.PROTOCOL_HEADERS);
+ if (h != null) {
+ transportHeaders.putAll(h);
+ }
+ }
+ Map<String, List<String>> headers = (Map)camelHeaders.get(Message.PROTOCOL_HEADERS);
+ if (headers != null) {
+ transportHeaders.putAll(headers);
+ }
+
+ for (Map.Entry<String, Object> entry : camelHeaders.entrySet()) {
+ // this header should be filtered, continue to the next header
+ if (headerFilterStrategy.applyFilterToCamelHeaders(entry.getKey(), entry.getValue())) {
+ continue;
+ }
+
+ // put content type in exchange
+ if (CamelTransportConstants.CONTENT_TYPE.equals(entry.getKey())) {
+ cxfExchange.put(Message.CONTENT_TYPE, entry.getValue());
+ continue;
+ }
+
+ // put response code in request context so it will be copied to CXF message's property
+ if (Message.RESPONSE_CODE.equals(entry.getKey())) {
+ cxfContext.put(entry.getKey(), entry.getValue());
+ continue;
+ }
+
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Propagate to CXF header: " + entry.getKey() + " value: " + entry.getValue());
+ }
+
+ // things that are not filtered and not specifically copied will be put in transport headers
+ if (entry.getValue() instanceof List) {
+ transportHeaders.put(entry.getKey(), (List<String>)entry.getValue());
+ } else {
+ List<String> listValue = new ArrayList<String>();
+ listValue.add(entry.getValue().toString());
+ transportHeaders.put(entry.getKey(), listValue);
+ }
+ }
+
+ if (transportHeaders.size() > 0) {
+ cxfContext.put(Message.PROTOCOL_HEADERS, transportHeaders);
+ }
+ }
+
+ protected static Object getContentFromCxf(Message message, DataFormat dataFormat) {
+ Set<Class<?>> contentFormats = message.getContentFormats();
+ Object answer = null;
+ if (contentFormats != null) {
+
+ if (LOG.isTraceEnabled()) {
+ for (Class<?> contentFormat : contentFormats) {
+ LOG.trace("Content format=" + contentFormat + " value="
+ + message.getContent(contentFormat));
+ }
+ }
+
+ if (dataFormat == DataFormat.POJO) {
+ answer = message.getContent(List.class);
+ if (answer == null) {
+ answer = message.getContent(Object.class);
+ if (answer != null) {
+ answer = new MessageContentsList(answer);
+ }
+ }
+ } else if (dataFormat == DataFormat.PAYLOAD) {
+ // TODO handle other message types in the future. Currently, this binding only
+ // deal with SOAP in PayLoad mode.
+ List<Element> body = message.get(List.class);
+ List<SoapHeader> headers = CastUtils.cast((List<?>)message.get(Header.HEADER_LIST));
+ answer = new CxfPayload<SoapHeader>(headers, body);
+ } else if (dataFormat == DataFormat.MESSAGE) {
+ answer = message.getContent(InputStream.class);
+ }
+
+ if (LOG.isTraceEnabled()) {
+ LOG.trace("Extracted body from CXF message = " + answer);
+ }
+ }
+ return answer;
+ }
+
+ public static Object getBodyFromCamel(org.apache.camel.Message out,
+ DataFormat dataFormat) {
+ Object answer = null;
+
+ if (dataFormat == DataFormat.POJO) {
+ answer = out.getBody();
+ } else if (dataFormat == DataFormat.PAYLOAD) {
+ answer = out.getBody();
+ } else if (dataFormat == DataFormat.MESSAGE) {
+ answer = out.getBody(InputStream.class);
+ }
+ return answer;
+ }
+
+}
Propchange: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/converter/CxfConverter.java Sun Jan 18 17:48:41 2009
@@ -17,19 +17,15 @@
package org.apache.camel.component.cxf.converter;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Map;
-import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import org.apache.camel.Converter;
-import org.apache.camel.Endpoint;
+import org.apache.camel.component.cxf.DataFormat;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.cxf.message.MessageContentsList;
-
/**
* The <a href="http://activemq.apache.org/camel/type-converter.html">Type Converters</a>
* for CXF related types' converting .
@@ -72,8 +68,9 @@
return baos.toString();
}
-
-
-
+ @Converter
+ public static DataFormat toDataFormat(final String name) {
+ return DataFormat.valueOf(name.toUpperCase());
+ }
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/AbstractDataFormatFeature.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/AbstractDataFormatFeature.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/AbstractDataFormatFeature.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/AbstractDataFormatFeature.java Sun Jan 18 17:48:41 2009
@@ -20,10 +20,8 @@
import java.util.List;
import java.util.logging.Logger;
-import org.apache.cxf.endpoint.Server;
import org.apache.cxf.feature.AbstractFeature;
import org.apache.cxf.interceptor.Interceptor;
-import org.apache.cxf.phase.Phase;
import org.apache.cxf.phase.PhaseInterceptor;
/**
@@ -31,15 +29,8 @@
*/
public abstract class AbstractDataFormatFeature extends AbstractFeature {
-
protected abstract Logger getLogger();
- protected void resetServiceInvokerInterceptor(Server server) {
- List<Interceptor> serviceInterceptor = server.getEndpoint().getService().getInInterceptors();
- removeInterceptorWhichIsInThePhases(serviceInterceptor, new String[]{Phase.INVOKE});
- serviceInterceptor.add(new MessageInvokerInterceptor());
- }
-
protected void removeInterceptorWhichIsInThePhases(List<Interceptor> interceptors, String[] phaseNames) {
for (Interceptor i : interceptors) {
if (i instanceof PhaseInterceptor) {
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/MessageDataFormatFeature.java Sun Jan 18 17:48:41 2009
@@ -28,16 +28,27 @@
import org.apache.cxf.phase.Phase;
/**
- * This feature just setting up the CXF endpoint interceptor for handling the
- * Message in Message data format
+ * <p>
+ * MessageDataFormatFeature sets up the CXF endpoint interceptor for handling the
+ * Message in Message data format. Only the interceptors of these phases are
+ * <b>preserved</b>:
+ * </p>
+ * <p>
+ * In phases: {Phase.RECEIVE , Phase.INVOKE, Phase.POST_INVOKE}
+ * </p>
+ * <p>
+ * Out phases: {Phase.PREPARE_SEND, Phase.WRITE, Phase.SEND, Phase.PREPARE_SEND_ENDING}
+ * </p>
*/
public class MessageDataFormatFeature extends AbstractDataFormatFeature {
+
private static final Logger LOG = LogUtils.getL7dLogger(MessageDataFormatFeature.class);
- // interceptor filiter
- // filiter the unused phase interceptor
- private static final String[] REMAINING_IN_PHASES = {Phase.RECEIVE , Phase.POST_INVOKE};
- private static final String[] REMAINING_OUT_PHASES = {Phase.PREPARE_SEND, Phase.WRITE, Phase.SEND, Phase.PREPARE_SEND_ENDING};
-
+ // filter the unused in phase interceptor
+ private static final String[] REMAINING_IN_PHASES = {Phase.RECEIVE , Phase.INVOKE,
+ Phase.POST_INVOKE};
+ // filter the unused in phase interceptor
+ private static final String[] REMAINING_OUT_PHASES = {Phase.PREPARE_SEND, Phase.WRITE,
+ Phase.SEND, Phase.PREPARE_SEND_ENDING};
@Override
public void initialize(Client client, Bus bus) {
@@ -56,22 +67,20 @@
@Override
public void initialize(Server server, Bus bus) {
- // currently we do not filiter the bus
+ // currently we do not filter the bus
// remove the interceptors
removeInterceptorWhichIsOutThePhases(server.getEndpoint().getService().getInInterceptors(), REMAINING_IN_PHASES);
removeInterceptorWhichIsOutThePhases(server.getEndpoint().getInInterceptors(), REMAINING_IN_PHASES);
+
// Do not using the binding interceptor any more
server.getEndpoint().getBinding().getInInterceptors().clear();
removeInterceptorWhichIsOutThePhases(server.getEndpoint().getService().getOutInterceptors(), REMAINING_OUT_PHASES);
removeInterceptorWhichIsOutThePhases(server.getEndpoint().getOutInterceptors(), REMAINING_OUT_PHASES);
+
// Do not use the binding interceptor any more
server.getEndpoint().getBinding().getOutInterceptors().clear();
-
server.getEndpoint().getBinding().getOutFaultInterceptors().add(new FaultOutInterceptor());
-
-
- resetServiceInvokerInterceptor(server);
server.getEndpoint().getOutInterceptors().add(new RawMessageContentRedirectInterceptor());
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/feature/PayLoadDataFormatFeature.java Sun Jan 18 17:48:41 2009
@@ -36,9 +36,11 @@
public class PayLoadDataFormatFeature extends AbstractDataFormatFeature {
private static final Logger LOG = LogUtils.getL7dLogger(PayLoadDataFormatFeature.class);
// filter the unused phase
- private static final String[] REMOVING_IN_PHASES = {Phase.UNMARSHAL, Phase.PRE_LOGICAL, Phase.PRE_LOGICAL_ENDING, Phase.POST_LOGICAL, Phase.POST_LOGICAL_ENDING };
+ private static final String[] REMOVING_IN_PHASES = {Phase.UNMARSHAL, Phase.PRE_LOGICAL,
+ Phase.PRE_LOGICAL_ENDING, Phase.POST_LOGICAL, Phase.POST_LOGICAL_ENDING };
- private static final String[] REMOVING_OUT_PHASES = {Phase.MARSHAL, Phase.MARSHAL_ENDING, Phase.PRE_LOGICAL, Phase.PRE_LOGICAL_ENDING, Phase.POST_LOGICAL, Phase.POST_LOGICAL_ENDING };
+ private static final String[] REMOVING_OUT_PHASES = {Phase.MARSHAL, Phase.MARSHAL_ENDING,
+ Phase.PRE_LOGICAL, Phase.PRE_LOGICAL_ENDING, Phase.POST_LOGICAL, Phase.POST_LOGICAL_ENDING };
@Override
public void initialize(Client client, Bus bus) {
@@ -67,9 +69,6 @@
removeInterceptorWhichIsInThePhases(server.getEndpoint().getOutInterceptors(), REMOVING_OUT_PHASES);
removeInterceptorWhichIsInThePhases(server.getEndpoint().getBinding().getOutInterceptors(), REMOVING_OUT_PHASES);
- // set the invoker interceptor
- resetServiceInvokerInterceptor(server);
-
addDataHandlingInterceptors(server.getEndpoint().getBinding());
server.getEndpoint().getBinding().getOutFaultInterceptors().add(new FaultOutInterceptor());
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageInInterceptor.java Sun Jan 18 17:48:41 2009
@@ -17,7 +17,6 @@
package org.apache.camel.component.cxf.interceptors;
import java.util.List;
-import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -28,8 +27,6 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.apache.cxf.common.i18n.BundleUtils;
-import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Exchange;
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageOutInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageOutInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageOutInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/AbstractMessageOutInterceptor.java Sun Jan 18 17:48:41 2009
@@ -17,8 +17,7 @@
package org.apache.camel.component.cxf.interceptors;
import java.util.List;
-//import java.util.ResourceBundle;
-//import java.util.logging.Level;
+
import java.util.logging.Logger;
import javax.xml.namespace.QName;
@@ -27,7 +26,6 @@
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-//import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.helpers.DOMUtils;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMInInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMInInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMInInterceptor.java Sun Jan 18 17:48:41 2009
@@ -16,13 +16,10 @@
*/
package org.apache.camel.component.cxf.interceptors;
-import java.util.ResourceBundle;
import java.util.logging.Logger;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor;
-import org.apache.cxf.binding.soap.interceptor.SoapActionInInterceptor;
-import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
@@ -39,10 +36,6 @@
this.addAfter(CheckFaultInterceptor.class.getName());
}
- public boolean isRequestor(Message message) {
- return Boolean.TRUE.equals(message.get(Message.REQUESTOR_ROLE));
- }
-
public void handleMessage(Message message) throws Fault {
if (message instanceof XMLMessage) {
xmlInterceptor.handleMessage((XMLMessage)message);
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMOutInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMOutInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMOutInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/DOMOutInterceptor.java Sun Jan 18 17:48:41 2009
@@ -16,13 +16,9 @@
*/
package org.apache.camel.component.cxf.interceptors;
-import java.util.ResourceBundle;
import java.util.logging.Logger;
-//import java.util.logging.Level;
-//import java.util.logging.Logger;
import org.apache.cxf.binding.soap.SoapMessage;
-import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.interceptor.MessageSenderInterceptor;
@@ -42,10 +38,6 @@
super(Phase.PREPARE_SEND);
this.addBefore(MessageSenderInterceptor.class.getName());
}
-
- public boolean isRequestor(Message message) {
- return Boolean.TRUE.equals(message.get(Message.REQUESTOR_ROLE));
- }
@SuppressWarnings("unchecked")
public void handleMessage(Message message) throws Fault {
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/FaultOutInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/FaultOutInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/FaultOutInterceptor.java Sun Jan 18 17:48:41 2009
@@ -29,7 +29,6 @@
import org.apache.cxf.message.XMLMessage;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
-import org.apache.cxf.service.model.BindingOperationInfo;
public class FaultOutInterceptor extends AbstractPhaseInterceptor<Message> {
private static final Logger LOG = LogUtils.getL7dLogger(FaultOutInterceptor.class);
@@ -40,8 +39,6 @@
@SuppressWarnings("unchecked")
public void handleMessage(Message message) throws Fault {
- // To walk around the FaultOutInterceptor NPE issue of CXF 2.0.4
- checkBindingOperationInfor(message);
Throwable ex = message.getContent(Throwable.class);
@@ -67,19 +64,4 @@
}
}
- /*
- * This method is used to walk around the NPE issue of CXF 2.0.4
- * org.apache.cxf.interceptor.FaultOutInterceptor.
- * This issue was fixed in CXF 2.0.5 and CXF 2.1, when we upgrade CXF to that version
- * we could remove this method from the interceptor
- */
- private void checkBindingOperationInfor(Message message) {
- BindingOperationInfo bop = message.getExchange().get(BindingOperationInfo.class);
- if (bop == null) {
- bop = new FakeBindingOperationInfo();
- message.getExchange().put(BindingOperationInfo.class, bop);
- }
-
-
- }
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/RawMessageContentRedirectInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/RawMessageContentRedirectInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/RawMessageContentRedirectInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/RawMessageContentRedirectInterceptor.java Sun Jan 18 17:48:41 2009
@@ -18,6 +18,7 @@
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.List;
import org.apache.commons.io.IOUtils;
import org.apache.cxf.interceptor.Fault;
@@ -41,7 +42,8 @@
}
}
- InputStream is = message.getContent(InputStream.class);
+ List<?> params = message.getContent(List.class);
+ InputStream is = (InputStream)params.get(0);
OutputStream os = message.getContent(OutputStream.class);
try {
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageInInterceptor.java Sun Jan 18 17:48:41 2009
@@ -115,8 +115,4 @@
return partList;
}
-
-
-
-
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/SoapMessageOutInterceptor.java Sun Jan 18 17:48:41 2009
@@ -18,7 +18,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -28,10 +27,7 @@
import org.w3c.dom.Element;
import org.apache.cxf.binding.soap.SoapMessage;
-import org.apache.cxf.binding.soap.SoapVersion;
import org.apache.cxf.binding.soap.model.SoapBindingInfo;
-import org.apache.cxf.binding.soap.model.SoapHeaderInfo;
-import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.interceptor.Fault;
@@ -39,7 +35,6 @@
import org.apache.cxf.phase.Phase;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.BindingMessageInfo;
-import org.apache.cxf.service.model.MessagePartInfo;
import org.apache.cxf.service.model.OperationInfo;
import org.apache.cxf.wsdl11.WSDLServiceBuilder;
@@ -61,7 +56,7 @@
List<Element> payload = message.get(List.class);
Exchange exchange = message.getExchange();
- BindingMessageInfo bmi = exchange.get(BindingMessageInfo.class);
+ BindingMessageInfo bmi = message.get(BindingMessageInfo.class);
//The soap header is handled by the SoapOutInterceptor
if (LOG.isLoggable(Level.INFO)) {
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageInInterceptor.java Sun Jan 18 17:48:41 2009
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -34,7 +33,6 @@
import org.apache.cxf.binding.xml.XMLConstants;
import org.apache.cxf.binding.xml.XMLFault;
import org.apache.cxf.bindings.xformat.XMLBindingMessageFormat;
-import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.interceptor.Fault;
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/interceptors/XMLMessageOutInterceptor.java Sun Jan 18 17:48:41 2009
@@ -19,7 +19,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -30,14 +29,12 @@
import org.w3c.dom.NodeList;
import org.apache.cxf.bindings.xformat.XMLBindingMessageFormat;
-import org.apache.cxf.common.i18n.BundleUtils;
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Exchange;
import org.apache.cxf.message.XMLMessage;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.service.model.BindingMessageInfo;
-//import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.service.model.MessagePartInfo;
public class XMLMessageOutInterceptor extends AbstractMessageOutInterceptor<XMLMessage> {
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/spring/CxfEndpointBean.java Sun Jan 18 17:48:41 2009
@@ -16,7 +16,6 @@
*/
package org.apache.camel.component.cxf.spring;
-
import java.util.List;
import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelConduit.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelConduit.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelConduit.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/transport/CamelConduit.java Sun Jan 18 17:48:41 2009
@@ -22,7 +22,6 @@
import java.util.logging.Logger;
import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.ProducerTemplate;
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfEndpointUtils.java Sun Jan 18 17:48:41 2009
@@ -17,53 +17,29 @@
package org.apache.camel.component.cxf.util;
import java.lang.annotation.Annotation;
-import java.net.URI;
-import java.net.URL;
-import java.util.logging.Logger;
import javax.jws.WebService;
import javax.xml.namespace.QName;
import javax.xml.ws.WebServiceProvider;
-import org.apache.camel.CamelContext;
import org.apache.camel.CamelException;
import org.apache.camel.component.cxf.CxfConstants;
import org.apache.camel.component.cxf.CxfEndpoint;
-import org.apache.camel.component.cxf.DataFormat;
+import org.apache.camel.component.cxf.CxfSpringEndpoint;
import org.apache.camel.component.cxf.spring.CxfEndpointBean;
import org.apache.camel.util.ObjectHelper;
-import org.apache.cxf.Bus;
-import org.apache.cxf.common.classloader.ClassLoaderUtils;
-import org.apache.cxf.common.i18n.Message;
-import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.common.util.ClassHelper;
import org.apache.cxf.frontend.ClientProxyFactoryBean;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
-import org.apache.cxf.service.Service;
-import org.apache.cxf.service.factory.AbstractServiceFactoryBean;
-import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
-import org.apache.cxf.service.model.EndpointInfo;
-import org.apache.cxf.wsdl11.WSDLServiceFactory;
-
public final class CxfEndpointUtils {
- public static final String PROP_NAME_PORT = "port";
- public static final String PROP_NAME_SERVICE = "service";
- public static final String PROP_NAME_SERVICECLASS = "serviceClass";
- public static final String PROP_NAME_DATAFORMAT = "dataFormat";
- public static final String DATAFORMAT_POJO = "pojo";
- public static final String DATAFORMAT_MESSAGE = "message";
- public static final String DATAFORMAT_PAYLOAD = "payload";
- private static final Logger LOG = LogUtils.getL7dLogger(CxfEndpointUtils.class);
private CxfEndpointUtils() {
// not constructed
}
- static QName getQName(final String name) {
+ public static QName getQName(final String name) {
QName qName = null;
if (name != null) {
try {
@@ -74,38 +50,14 @@
}
return qName;
}
-
- public static Class getServiceClass(CxfEndpoint cxfEndpoint) throws ClassNotFoundException {
- Class<?> answer = null;
- if (cxfEndpoint.isSpringContextEndpoint()) {
- answer = cxfEndpoint.getCxfEndpointBean().getServiceClass();
- if (answer != null) {
- return answer;
- }
- }
- if (cxfEndpoint.getServiceClassInstance() != null) {
- Object bean = cxfEndpoint.getCamelContext().getRegistry().lookup(cxfEndpoint.getServiceClassInstance());
- if (bean != null) {
- answer = ClassHelper.getRealClass(bean);
- } else {
- throw new ClassNotFoundException("Can't find serviceClass instace with name" + cxfEndpoint.getServiceClassInstance() + " from CamelContext registry.");
- }
- } else {
- if (ObjectHelper.isNotEmpty(cxfEndpoint.getServiceClass())) {
- answer = ClassLoaderUtils.loadClass(cxfEndpoint.getServiceClass(), CxfEndpointUtils.class);
- } else {
- throw new ClassNotFoundException("Can't find serviceClass from uri, please check the cxf endpoint configuration");
- }
- }
- return answer;
- }
+ // only used by test currently
public static QName getPortName(final CxfEndpoint endpoint) {
if (endpoint.getPortName() != null) {
return getQName(endpoint.getPortName());
} else {
- String portLocalName = getCxfEndpointPropertyValue(endpoint, CxfConstants.PORT_LOCALNAME);
- String portNamespace = getCxfEndpointPropertyValue(endpoint, CxfConstants.PORT_NAMESPACE);
+ String portLocalName = getCxfEndpointPropertyValue((CxfSpringEndpoint)endpoint, CxfConstants.PORT_LOCALNAME);
+ String portNamespace = getCxfEndpointPropertyValue((CxfSpringEndpoint)endpoint, CxfConstants.PORT_NAMESPACE);
if (portLocalName != null) {
return new QName(portNamespace, portLocalName);
} else {
@@ -114,12 +66,13 @@
}
}
+ // only used by test currently
public static QName getServiceName(final CxfEndpoint endpoint) {
if (endpoint.getServiceName() != null) {
return getQName(endpoint.getServiceName());
} else {
- String serviceLocalName = getCxfEndpointPropertyValue(endpoint, CxfConstants.SERVICE_LOCALNAME);
- String serviceNamespace = getCxfEndpointPropertyValue(endpoint, CxfConstants.SERVICE_NAMESPACE);
+ String serviceLocalName = getCxfEndpointPropertyValue((CxfSpringEndpoint)endpoint, CxfConstants.SERVICE_LOCALNAME);
+ String serviceNamespace = getCxfEndpointPropertyValue((CxfSpringEndpoint)endpoint, CxfConstants.SERVICE_NAMESPACE);
if (serviceLocalName != null) {
return new QName(serviceNamespace, serviceLocalName);
} else {
@@ -128,23 +81,6 @@
}
}
- public static EndpointInfo getEndpointInfo(final Service service, final CxfEndpoint endpoint) {
- EndpointInfo endpointInfo = null;
- final java.util.Collection<EndpointInfo> endpoints = service.getServiceInfos().get(0).getEndpoints();
- if (endpoints.size() == 1) {
- endpointInfo = endpoints.iterator().next();
- } else {
- final String port = endpoint.getPortName();
- if (port != null) {
- final QName endpointName = QName.valueOf(port);
- endpointInfo = service.getServiceInfos().get(0).getEndpoint(endpointName);
- }
- //TBD may be delegate to the EndpointUri params.
- }
-
- return endpointInfo;
- }
-
public static boolean hasWebServiceAnnotation(Class<?> cls) {
return hasAnnotation(cls, WebService.class) || hasAnnotation(cls, WebServiceProvider.class);
}
@@ -166,7 +102,6 @@
return hasAnnotation(cls.getSuperclass(), annotation);
}
-
public static ServerFactoryBean getServerFactoryBean(Class<?> cls) throws CamelException {
ServerFactoryBean serverFactory = null;
try {
@@ -202,108 +137,25 @@
throw new CamelException(e);
}
}
-
- //TODO check the CxfEndpoint information integration
- public static void checkEndpointIntegration(CxfEndpoint endpoint, Bus bus) throws CamelException {
-
- String wsdlLocation = endpoint.getWsdlURL();
- QName serviceQName = CxfEndpointUtils.getQName(endpoint.getServiceName());
- String serviceClassName = endpoint.getServiceClass();
- DataFormat dataFormat = CxfEndpointUtils.getDataFormat(endpoint);
- URL wsdlUrl = null;
- if (wsdlLocation != null) {
- try {
- wsdlUrl = UriUtils.getWsdlUrl(new URI(wsdlLocation));
- } catch (Exception e) {
- throw new CamelException(e);
- }
- }
- if (serviceQName == null) {
- throw new CamelException(new Message("SVC_QNAME_NOT_FOUND_X", LOG, endpoint.getServiceName()).toString());
- }
-
- if (serviceClassName == null && dataFormat == DataFormat.POJO) {
- throw new CamelException(new Message("SVC_CLASS_PROP_IS_REQUIRED_X", LOG).toString());
- }
- AbstractServiceFactoryBean serviceFactory = null;
- try {
-
- if (serviceClassName != null) {
- Class<?> cls = ClassLoaderUtils.loadClass(serviceClassName, CxfEndpointUtils.class);
-
- boolean isJSR181SEnabled = CxfEndpointUtils.hasWebServiceAnnotation(cls);
-
- serviceFactory = isJSR181SEnabled
- ? new JaxWsServiceFactoryBean() : new ReflectionServiceFactoryBean();
- serviceFactory.setBus(bus);
- if (wsdlUrl != null) {
- ((ReflectionServiceFactoryBean)serviceFactory).setWsdlURL(wsdlUrl);
- }
- if (serviceQName != null) {
- ((ReflectionServiceFactoryBean)serviceFactory).setServiceName(serviceQName);
- }
- ((ReflectionServiceFactoryBean)serviceFactory).setServiceClass(cls);
-
- } else {
- if (wsdlUrl == null) {
- throw new CamelException(new Message("SVC_WSDL_URL_IS_NULL_X", LOG, wsdlLocation).toString());
- }
- serviceFactory = new WSDLServiceFactory(bus, wsdlUrl, serviceQName);
- }
-
- } catch (ClassNotFoundException cnfe) {
- throw new CamelException(new Message("CLASS_X_NOT_FOUND ", LOG, serviceClassName).toString(), cnfe);
- } catch (Exception e) {
- throw new CamelException(e);
+
+ // only used by test currently
+ public static void checkServiceClassName(String className) throws CamelException {
+ if (ObjectHelper.isEmpty(className)) {
+ throw new CamelException("serviceClass is required for CXF endpoint configuration");
}
}
-
- public static boolean getSetDefaultBus(CxfEndpoint endpoint) {
- Boolean isSetDefaultBus = null;
- // check the value of cxfEndpointBean's property
- CxfEndpointBean cxfEndpointBean = endpoint.getCxfEndpointBean();
- if (cxfEndpointBean != null && cxfEndpointBean.getProperties() != null) {
- String value = (String)cxfEndpointBean.getProperties().get(CxfConstants.SET_DEFAULT_BUS);
- isSetDefaultBus = Boolean.valueOf(value);
- }
- // We will get the value from the cxfEndpontBean's properties
- if (isSetDefaultBus != null && endpoint.isSetDefaultBus() == null) {
- return isSetDefaultBus.booleanValue();
- } else if (endpoint.isSetDefaultBus() != null) {
- return endpoint.isSetDefaultBus().booleanValue();
- } else { // return the default value false
- return false;
- }
- }
- public static String getCxfEndpointPropertyValue(CxfEndpoint endpoint, String property) {
+ // only used by test currently
+ public static String getCxfEndpointPropertyValue(CxfSpringEndpoint endpoint, String property) {
String result = null;
- CxfEndpointBean cxfEndpointBean = endpoint.getCxfEndpointBean();
+ CxfEndpointBean cxfEndpointBean = endpoint.getBean();
if (cxfEndpointBean != null && cxfEndpointBean.getProperties() != null) {
result = (String) cxfEndpointBean.getProperties().get(property);
}
return result;
}
- public static DataFormat getDataFormat(CxfEndpoint endpoint) throws CamelException {
- String dataFormatString = endpoint.getDataFormat();
- if (dataFormatString == null) {
- dataFormatString = getCxfEndpointPropertyValue(endpoint, CxfConstants.DATA_FORMAT);
- }
-
- // return the default value if nothing is set
- if (dataFormatString == null) {
- return DataFormat.POJO;
- }
-
- DataFormat retval = DataFormat.asEnum(dataFormatString);
-
- if (retval == DataFormat.UNKNOWN) {
- throw new CamelException(new Message("INVALID_MESSAGE_FORMAT_XXXX", LOG, dataFormatString).toString());
- }
-
- return retval;
- }
+
}
Modified: activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/util/CxfHeaderHelper.java Sun Jan 18 17:48:41 2009
@@ -40,7 +40,6 @@
private CxfHeaderHelper() {
}
-
/**
* Progagates Camel headers to CXF message.
*
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfEndpointTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfEndpointTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfEndpointTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfEndpointTest.java Sun Jan 18 17:48:41 2009
@@ -18,21 +18,23 @@
package org.apache.camel.component.cxf;
import junit.framework.TestCase;
-import org.apache.camel.CamelContext;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
+/**
+ * A unit test for spring configured cxf endpoint.
+ *
+ * @version $Revision$
+ */
public class CxfEndpointTest extends TestCase {
public void testSpringCxfEndpoint() throws Exception {
ClassPathXmlApplicationContext ctx =
new ClassPathXmlApplicationContext(new String[]{"org/apache/camel/component/cxf/spring/CxfEndpointBeans.xml"});
- CamelContext camelContext = new SpringCamelContext(ctx);
- CxfComponent cxfComponent = new CxfComponent(camelContext);
- CxfEndpoint endpoint = (CxfEndpoint)cxfComponent.createEndpoint("cxf://bean:serviceEndpoint");
+ CxfComponent cxfComponent = new CxfComponent(new SpringCamelContext(ctx));
+ CxfSpringEndpoint endpoint = (CxfSpringEndpoint)cxfComponent.createEndpoint("cxf://bean:serviceEndpoint");
- assertTrue("The endpoint should be the spring context endpoint", endpoint.isSpringContextEndpoint());
ServerFactoryBean svf = new ServerFactoryBean();
endpoint.configure(svf);
assertEquals("Got the wrong endpoint address", svf.getAddress(), "http://localhost:9002/helloworld");
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfGreeterPayLoadWithFeatureRouterTest.java Sun Jan 18 17:48:41 2009
@@ -19,7 +19,10 @@
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
- * The Greeter Payload mode test that is configured with CXF features.
+ * A unit test for testing a CXF client invoking a CXF server via route
+ * in PAYLOAD mode and with CXF features specified in the Spring config.
+ *
+ * @version $Revision$
*/
public class CxfGreeterPayLoadWithFeatureRouterTest extends CXFGreeterRouterTest {
@@ -31,8 +34,10 @@
CxfEndpoint endpoint = getMandatoryEndpoint("cxf:bean:serviceEndpoint?dataFormat=PAYLOAD",
CxfEndpoint.class);
- assertEquals(TestCxfFeature.class, endpoint.getCxfEndpointBean().getFeatures().get(0).getClass());
- assertEquals(DataFormat.PAYLOAD.toString(), endpoint.getDataFormat());
+ assertEquals(TestCxfFeature.class, ((CxfSpringEndpoint)endpoint).getBean()
+ .getFeatures().get(0).getClass());
+
+ assertEquals(DataFormat.PAYLOAD, endpoint.getDataFormat());
}
@Override
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadMessageRouterTest.java Sun Jan 18 17:48:41 2009
@@ -21,10 +21,14 @@
import org.w3c.dom.Element;
import org.apache.camel.Exchange;
-import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
+/**
+ * A unit test for testing reading SOAP body in PAYLOAD mode.
+ *
+ * @version $Revision$
+ */
public class CxfPayLoadMessageRouterTest extends CxfSimpleRouterTest {
private String routerEndpointURI = "cxf://" + ROUTER_ADDRESS + "?" + SERVICE_CLASS + "&dataFormat=PAYLOAD";
private String serviceEndpointURI = "cxf://" + SERVICE_ADDRESS + "?" + SERVICE_CLASS + "&dataFormat=PAYLOAD";
@@ -34,14 +38,11 @@
// START SNIPPET: payload
from(routerEndpointURI).process(new Processor() {
public void process(Exchange exchange) throws Exception {
- Message inMessage = exchange.getIn();
- if (inMessage instanceof CxfMessage) {
- CxfMessage message = (CxfMessage) inMessage;
- List<Element> elements = message.getMessage().get(List.class);
- assertNotNull("We should get the elements here" , elements);
- assertEquals("Get the wrong elements size" , elements.size(), 1);
- assertEquals("Get the wrong namespace URI" , elements.get(0).getNamespaceURI(), "http://cxf.component.camel.apache.org/");
- }
+ CxfPayload<?> payload = exchange.getIn().getBody(CxfPayload.class);
+ List<Element> elements = payload.getBody();
+ assertNotNull("We should get the elements here" , elements);
+ assertEquals("Get the wrong elements size" , elements.size(), 1);
+ assertEquals("Get the wrong namespace URI" , elements.get(0).getNamespaceURI(), "http://cxf.component.camel.apache.org/");
}
})
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfPayLoadSoapHeaderTest.java Sun Jan 18 17:48:41 2009
@@ -26,7 +26,6 @@
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
-import org.apache.camel.Message;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.pizza.Pizza;
@@ -37,14 +36,10 @@
import org.apache.camel.pizza.types.ToppingsListType;
import org.apache.camel.spring.SpringCamelContext;
import org.apache.cxf.binding.soap.SoapHeader;
-import org.apache.cxf.headers.Header;
-import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.jaxws.EndpointImpl;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
public class CxfPayLoadSoapHeaderTest extends CxfRouterTestSupport {
protected AbstractXmlApplicationContext applicationContext;
private final QName serviceName = new QName("http://camel.apache.org/pizza", "PizzaService");
@@ -53,6 +48,7 @@
private String routerEndpointURI = "cxf:bean:routerEndpoint?dataFormat=PAYLOAD";
private String serviceEndpointURI = "cxf:bean:serviceEndpoint?dataFormat=PAYLOAD";
+ @Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
@@ -60,18 +56,19 @@
from(routerEndpointURI).process(new Processor() {
@SuppressWarnings("unchecked")
public void process(Exchange exchange) throws Exception {
- Message inMessage = exchange.getIn();
- CxfMessage message = (CxfMessage) inMessage;
- List<Element> elements = message.getMessage().get(List.class);
- assertNotNull("We should get the payload elements here" , elements);
- assertEquals("Get the wrong elements size" , elements.size(), 1);
- assertEquals("Get the wrong namespace URI" , elements.get(0).getNamespaceURI(), "http://camel.apache.org/pizza/types");
+ CxfPayload<SoapHeader> payload = exchange.getIn().getBody(CxfPayload.class);
+ List<Element> elements = payload.getBody();
+ assertNotNull("We should get the elements here", elements);
+ assertEquals("Get the wrong elements size", 1, elements.size());
+ assertEquals("Get the wrong namespace URI", "http://camel.apache.org/pizza/types",
+ elements.get(0).getNamespaceURI());
- List<SoapHeader> headers = CastUtils.cast((List<?>)message.getMessage().get(Header.HEADER_LIST));
+ List<SoapHeader> headers = payload.getHeaders();
assertNotNull("We should get the headers here", headers);
assertEquals("Get the wrong headers size", headers.size(), 1);
- assertEquals("Get the wrong namespace URI" , ((Element)(headers.get(0).getObject())).getNamespaceURI(), "http://camel.apache.org/pizza/types");
-
+ assertEquals("Get the wrong namespace URI",
+ ((Element)(headers.get(0).getObject())).getNamespaceURI(),
+ "http://camel.apache.org/pizza/types");
}
})
@@ -86,8 +83,6 @@
applicationContext = createApplicationContext();
super.setUp();
assertNotNull("Should have created a valid spring context", applicationContext);
-
-
}
@Override
@@ -97,7 +92,7 @@
}
super.tearDown();
}
-
+
@Override
protected void startService() {
Object implementor = new PizzaImpl();
@@ -105,7 +100,7 @@
EndpointImpl endpoint = (EndpointImpl) Endpoint.publish(address, implementor);
server = endpoint.getServer();
}
-
+
public void testPizzaService() {
Pizza port = getPort();
@@ -138,7 +133,6 @@
return SpringCamelContext.springCamelContext(applicationContext);
}
-
protected ClassPathXmlApplicationContext createApplicationContext() {
return new ClassPathXmlApplicationContext("org/apache/camel/component/cxf/PizzaEndpoints.xml");
}
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerContextTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerContextTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerContextTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerContextTest.java Sun Jan 18 17:48:41 2009
@@ -26,7 +26,6 @@
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.cxf.endpoint.Client;
-import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.message.Message;
// We use context to change the producer's endpoint address here
@@ -39,26 +38,31 @@
private static final String TEST_VALUE = "exchange property value should get passed through request context";
public void testExchangePropertyPropagation() throws Exception {
- CxfExchange exchange = sendSimpleMessage();
+ Exchange exchange = sendSimpleMessage();
+ // No direct access to native CXF Message but we can verify the
+ // request context from the Camel exchange
assertNotNull(exchange);
- assertNotNull(exchange.getInMessage());
- assertNotNull(exchange.getInMessage().get(Client.REQUEST_CONTEXT));
- Map<String, Object> requestContext = CastUtils.cast((Map)exchange.getInMessage().get(Client.REQUEST_CONTEXT));
+ Map<String, Object> requestContext = (Map)exchange.getProperty(Client.REQUEST_CONTEXT);
+ assertNotNull(requestContext);
String actualValue = (String)requestContext.get(TEST_KEY);
assertEquals("exchange property should get propagated to the request context", TEST_VALUE, actualValue);
+
}
+ @Override
protected String getSimpleEndpointUri() {
return "cxf://http://localhost:9000/simple?serviceClass=org.apache.camel.component.cxf.HelloService";
}
+ @Override
protected String getJaxwsEndpointUri() {
return "cxf://http://localhost:9000/jaxws?serviceClass=org.apache.hello_world_soap_http.Greeter";
-
}
- protected CxfExchange sendSimpleMessage() {
- CxfExchange exchange = (CxfExchange)template.send(getSimpleEndpointUri(), new Processor() {
+
+ @Override
+ protected Exchange sendSimpleMessage() {
+ Exchange exchange = template.send(getSimpleEndpointUri(), new Processor() {
public void process(final Exchange exchange) {
final List<String> params = new ArrayList<String>();
params.add(TEST_MESSAGE);
@@ -73,8 +77,10 @@
return exchange;
}
- protected CxfExchange sendJaxWsMessage() {
- CxfExchange exchange = (CxfExchange)template.send(getJaxwsEndpointUri(), new Processor() {
+
+ @Override
+ protected Exchange sendJaxWsMessage() {
+ Exchange exchange = (Exchange)template.send(getJaxwsEndpointUri(), new Processor() {
public void process(final Exchange exchange) {
final List<String> params = new ArrayList<String>();
params.add(TEST_MESSAGE);
@@ -87,4 +93,9 @@
});
return exchange;
}
+
+ @Override
+ public void testInvokingJaxWsServerWithParams() throws Exception {
+ super.testInvokingJaxWsServerWithParams();
+ }
}
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfProducerTest.java Sun Jan 18 17:48:41 2009
@@ -37,7 +37,6 @@
import org.apache.cxf.endpoint.ServerImpl;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.helpers.CastUtils;
-import org.apache.cxf.interceptor.Fault;
import org.apache.hello_world_soap_http.GreeterImpl;
/**
@@ -61,7 +60,6 @@
@Override
protected void setUp() throws Exception {
-
// start a simple front service
ServerFactoryBean svrBean = new ServerFactoryBean();
svrBean.setAddress(SIMPLE_SERVER_ADDRESS);
@@ -89,7 +87,7 @@
public void testInvokingSimpleServerWithParams() throws Exception {
- CxfExchange exchange = sendSimpleMessage();
+ Exchange exchange = sendSimpleMessage();
org.apache.camel.Message out = exchange.getOut();
String result = out.getBody(String.class);
@@ -108,12 +106,10 @@
} catch (RuntimeCamelException ex) {
// only catch the RuntimeCamelException
}
-
}
-
public void testInvokingJaxWsServerWithParams() throws Exception {
- CxfExchange exchange = sendJaxWsMessage();
+ Exchange exchange = sendJaxWsMessage();
org.apache.camel.Message out = exchange.getOut();
String result = out.getBody(String.class);
@@ -137,12 +133,12 @@
return "cxf://" + WRONG_SERVER_ADDRESS + "?serviceClass=org.apache.camel.component.cxf.HelloService";
}
- protected CxfExchange sendSimpleMessage() {
+ protected Exchange sendSimpleMessage() {
return sendSimpleMessage(getSimpleEndpointUri());
}
- private CxfExchange sendSimpleMessage(String endpointUri) {
- CxfExchange exchange = (CxfExchange)template.send(endpointUri, new Processor() {
+ private Exchange sendSimpleMessage(String endpointUri) {
+ Exchange exchange = template.send(endpointUri, new Processor() {
public void process(final Exchange exchange) {
final List<String> params = new ArrayList<String>();
params.add(TEST_MESSAGE);
@@ -153,8 +149,8 @@
return exchange;
}
- protected CxfExchange sendJaxWsMessage() {
- CxfExchange exchange = (CxfExchange)template.send(getJaxwsEndpointUri(), new Processor() {
+ protected Exchange sendJaxWsMessage() {
+ Exchange exchange = template.send(getJaxwsEndpointUri(), new Processor() {
public void process(final Exchange exchange) {
final List<String> params = new ArrayList<String>();
params.add(TEST_MESSAGE);
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/CxfWsdlFirstTest.java Sun Jan 18 17:48:41 2009
@@ -121,8 +121,8 @@
}
protected void verifyJaxwsHandlers(JaxwsTestHandler fromHandler, JaxwsTestHandler toHandler) {
- assertEquals(8, fromHandler.getFaultCount());
- assertEquals(11, fromHandler.getMessageCount());
+ assertEquals(2, fromHandler.getFaultCount());
+ assertEquals(4, fromHandler.getMessageCount());
assertEquals(7, toHandler.getGetHeadersCount());
}
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsTest.java Sun Jan 18 17:48:41 2009
@@ -26,7 +26,6 @@
import org.apache.camel.component.cxf.CxfComponent;
import org.apache.camel.component.cxf.CxfEndpoint;
import org.apache.camel.component.cxf.DataFormat;
-import org.apache.camel.component.cxf.HelloServiceImpl;
import org.apache.camel.impl.DefaultCamelContext;
public class CxfEndpointUtilsTest extends TestCase {
@@ -61,28 +60,27 @@
protected CxfEndpoint createEndpoint(String uri) throws Exception {
CamelContext context = getCamelContext();
return (CxfEndpoint)new CxfComponent(context).createEndpoint(uri);
- }
+ }
public void testGetProperties() throws Exception {
CxfEndpoint endpoint = createEndpoint(getEndpointURI());
QName service = CxfEndpointUtils.getQName(endpoint.getServiceName());
assertEquals("We should get the right service name", service, SERVICE_NAME);
- assertEquals("We should get the setDefaultBus value", CxfEndpointUtils.getSetDefaultBus(endpoint) , true);
}
public void testGetDataFormat() throws Exception {
CxfEndpoint endpoint = createEndpoint(getEndpointURI() + "&dataFormat=MESSAGE");
- assertEquals("We should get the Message DataFormat", CxfEndpointUtils.getDataFormat(endpoint), DataFormat.MESSAGE);
+ assertEquals("We should get the Message DataFormat", DataFormat.MESSAGE, endpoint.getDataFormat());
}
public void testCheckServiceClassWithTheEndpoint() throws Exception {
CxfEndpoint endpoint = createEndpoint(getNoServiceClassURI());
try {
- CxfEndpointUtils.getServiceClass(endpoint);
+ CxfEndpointUtils.checkServiceClassName(endpoint.getServiceClass());
fail("Should get a CamelException here");
- } catch (ClassNotFoundException exception) {
- assertNotNull("Should get a ClassNotFoundExceptionException here", exception);
- assertEquals("Can't find serviceClass from uri, please check the cxf endpoint configuration", exception.getMessage());
+ } catch (CamelException exception) {
+ assertNotNull("Should get a CamelException here", exception);
+ assertEquals("serviceClass is required for CXF endpoint configuration", exception.getMessage());
}
}
@@ -90,9 +88,8 @@
CxfEndpoint endpoint = createEndpoint(getNoServiceClassURI());
try {
endpoint.createProducer();
- } catch (ClassNotFoundException exception) {
- assertNotNull("Should get a ClassNotFoundException here", exception);
- assertEquals("Can't find serviceClass from uri, please check the cxf endpoint configuration", exception.getMessage());
+ } catch (IllegalArgumentException exception) {
+ assertNotNull("Should get a CamelException here", exception);
}
}
@@ -100,9 +97,9 @@
CxfEndpoint endpoint = createEndpoint(getNoServiceClassURI());
try {
endpoint.createConsumer(new NullProcessor());
- } catch (ClassNotFoundException exception) {
- assertNotNull("Should get a ClassNotFoundException here", exception);
- assertEquals("Can't find serviceClass from uri, please check the cxf endpoint configuration", exception.getMessage());
+ } catch (IllegalArgumentException exception) {
+ assertNotNull("Should get a CamelException here", exception);
+ assertTrue(exception.getMessage().startsWith("serviceClass must be specified"));
}
}
Modified: activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsWithSpringTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsWithSpringTest.java?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsWithSpringTest.java (original)
+++ activemq/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/util/CxfEndpointUtilsWithSpringTest.java Sun Jan 18 17:48:41 2009
@@ -20,8 +20,8 @@
import org.apache.camel.CamelContext;
import org.apache.camel.component.cxf.CxfEndpoint;
+import org.apache.camel.component.cxf.CxfSpringEndpoint;
import org.apache.camel.component.cxf.DataFormat;
-import org.apache.camel.component.cxf.HelloServiceImpl;
import org.apache.camel.spring.SpringCamelContext;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -61,36 +61,24 @@
protected String getNoServiceClassURI() {
return "cxf:bean:noServiceClassEndpoint";
}
-
+
public void testGetServiceClass() throws Exception {
- CxfEndpoint endpoint = createEndpoint("cxf:bean:helloServiceEndpoint?serviceClassInstance=helloServiceImpl");
- Class clazz = CxfEndpointUtils.getServiceClass(endpoint);
- assertNotNull("The service calss should not be null ", clazz);
- assertTrue("The service class should be the instance of HelloServiceImpl", clazz.equals(HelloServiceImpl.class));
+ CxfEndpoint endpoint = createEndpoint("cxf:bean:helloServiceEndpoint?serviceClass=#helloServiceImpl");
+ assertEquals("org.apache.camel.component.cxf.HelloServiceImpl", endpoint.getServiceClass());
}
-
+
public void testGetDataFormat() throws Exception {
CxfEndpoint endpoint = createEndpoint(getEndpointURI() + "?dataFormat=MESSAGE");
- assertEquals("We should get the Message DataFormat", CxfEndpointUtils.getDataFormat(endpoint),
- DataFormat.MESSAGE);
- }
-
- public void testGetURIOverCxfEndpointProperties() throws Exception {
- CxfEndpoint endpoint = createEndpoint(getEndpointURI() + "?setDefaultBus=false");
- assertEquals("We should get the setDefaultBus value", CxfEndpointUtils.getSetDefaultBus(endpoint),
- false);
-
+ assertEquals("We should get the Message DataFormat", DataFormat.MESSAGE, endpoint.getDataFormat());
}
public void testGetProperties() throws Exception {
- CxfEndpoint endpoint = createEndpoint(getEndpointURI());
- QName service = endpoint.getCxfEndpointBean().getServiceName();
+ CxfSpringEndpoint endpoint = (CxfSpringEndpoint)createEndpoint(getEndpointURI());
+ QName service = endpoint.getBean().getServiceName();
assertEquals("We should get the right service name", service, SERVICE_NAME);
- assertEquals("We should get the setDefaultBus value", CxfEndpointUtils.getSetDefaultBus(endpoint),
- true);
- assertEquals("The cxf endpoint's DataFromat should be MESSAGE", CxfEndpointUtils.getDataFormat(endpoint), DataFormat.MESSAGE);
+ assertEquals("The cxf endpoint's DataFromat should be MESSAGE", DataFormat.MESSAGE, endpoint.getDataFormat());
- endpoint = createEndpoint("cxf:bean:testPropertiesEndpoint");
+ endpoint = (CxfSpringEndpoint)createEndpoint("cxf:bean:testPropertiesEndpoint");
service = CxfEndpointUtils.getServiceName(endpoint);
assertEquals("We should get the right service name", service, SERVICE_NAME);
QName port = CxfEndpointUtils.getPortName(endpoint);
@@ -99,8 +87,7 @@
public void testGetDataFormatFromCxfEndpontProperties() throws Exception {
CxfEndpoint endpoint = createEndpoint(getEndpointURI() + "?dataFormat=PAYLOAD");
- assertEquals("We should get the PAYLOAD DataFormat", CxfEndpointUtils.getDataFormat(endpoint),
- DataFormat.PAYLOAD);
+ assertEquals("We should get the PAYLOAD DataFormat", DataFormat.PAYLOAD, endpoint.getDataFormat());
}
Modified: activemq/camel/trunk/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/pom.xml?rev=735592&r1=735591&r2=735592&view=diff
==============================================================================
--- activemq/camel/trunk/pom.xml (original)
+++ activemq/camel/trunk/pom.xml Sun Jan 18 17:48:41 2009
@@ -43,7 +43,7 @@
<!-- Note that activemq dependency is only used for testing! -->
<activemq-version>5.2.0</activemq-version>
<apacheds-version>1.5.4</apacheds-version>
- <cxf-version>2.1.3</cxf-version>
+ <cxf-version>2.2-SNAPSHOT</cxf-version>
<felix-version>1.4.1</felix-version>
<felix-osgi-version>1.2.0</felix-osgi-version>
<httpcore-version>4.0-beta3</httpcore-version>