Author: dandiep
Date: Sun Mar 4 16:10:18 2007
New Revision: 514501
URL: http://svn.apache.org/viewvc?view=rev&rev=514501
Log:
-Fix a bug where the HTTP binding wasn't writing out content types
correctlybecause the content type was being set on the EndpointInfo not the
Endpoint.-Do a writeEndDocument() on SoapOutInteceptor-Decrease logging in
AbstractDestination.
Modified:
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/ContentTypeOutInterceptor.java
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/DatabindingOutSetupInterceptor.java
incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
Modified:
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/ContentTypeOutInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/ContentTypeOutInterceptor.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/ContentTypeOutInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/ContentTypeOutInterceptor.java
Sun Mar 4 16:10:18 2007
@@ -23,6 +23,7 @@
import java.util.List;
import java.util.Map;
+import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.helpers.CastUtils;
import org.apache.cxf.helpers.HttpHeaderHelper;
import org.apache.cxf.interceptor.Fault;
@@ -43,14 +44,14 @@
headers = new HashMap<String, List<String>>();
message.put(Message.PROTOCOL_HEADERS, headers);
}
- String ct = (String)message.getContextualProperty(HttpHeaderHelper
- .getHeaderKey(HttpHeaderHelper.CONTENT_TYPE));
- if (ct == null) {
- ct = "text/xml";
+ String ct =
(String)message.getExchange().get(Endpoint.class).get(HttpHeaderHelper.CONTENT_TYPE);
+ if (ct != null) {
+ List<String> contentType = new ArrayList<String>();
+ contentType.add(ct);
+
headers.put(HttpHeaderHelper.getHeaderKey(HttpHeaderHelper.CONTENT_TYPE),
contentType);
+ message.put(HttpHeaderHelper.CONTENT_TYPE, ct);
}
- List<String> contentType = new ArrayList<String>();
- contentType.add(ct);
-
headers.put(HttpHeaderHelper.getHeaderKey(HttpHeaderHelper.CONTENT_TYPE),
contentType);
+
}
}
Modified:
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/DatabindingOutSetupInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/DatabindingOutSetupInterceptor.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/DatabindingOutSetupInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/bindings/http/src/main/java/org/apache/cxf/binding/http/interceptor/DatabindingOutSetupInterceptor.java
Sun Mar 4 16:10:18 2007
@@ -86,7 +86,6 @@
chain.add(STAX_OUT);
} else {
chain.add(new URIParameterOutInterceptor());
-
}
} else {
Modified:
incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java
(original)
+++
incubator/cxf/trunk/rt/bindings/http/src/test/java/org/apache/cxf/binding/http/bare/BareServiceTest.java
Sun Mar 4 16:10:18 2007
@@ -18,6 +18,8 @@
*/
package org.apache.cxf.binding.http.bare;
+import java.net.HttpURLConnection;
+import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@@ -113,4 +115,29 @@
svr.stop();
}
+ public void testSetContentType() throws Exception {
+ BindingFactoryManager bfm =
getBus().getExtension(BindingFactoryManager.class);
+ bfm.registerBindingFactory(HttpBindingFactory.HTTP_BINDING_ID, new
HttpBindingFactory());
+
+ JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
+ sf.setBus(getBus());
+ sf.setServiceClass(CustomerService.class);
+ sf.getServiceFactory().setWrapped(false);
+ sf.setBindingFactory(new HttpBindingInfoFactoryBean());
+ sf.setAddress("http://localhost:9001/foo/");
+
+ Map<String, Object> props = new HashMap<String, Object>();
+ props.put("Content-Type", "text/plain");
+ sf.setProperties(props);
+
+ ServerImpl svr = (ServerImpl) sf.create();
+
+ URL url = new URL("http://localhost:9001/foo/customers/123");
+ HttpURLConnection c = (HttpURLConnection)url.openConnection();
+ c.setRequestMethod("GET");
+
+ assertEquals("text/plain", c.getContentType());
+
+ svr.stop();
+ }
}
Modified:
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapOutInterceptor.java
Sun Mar 4 16:10:18 2007
@@ -88,6 +88,7 @@
xtw.writeEndElement();
// Write Envelope end element
xtw.writeEndElement();
+ xtw.writeEndDocument();
xtw.flush();
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
(original)
+++
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/StaxOutInterceptor.java
Sun Mar 4 16:10:18 2007
@@ -81,6 +81,7 @@
try {
XMLStreamWriter xtw = message.getContent(XMLStreamWriter.class);
if (xtw != null) {
+ xtw.writeEndDocument();
xtw.close();
}
Modified:
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
(original)
+++
incubator/cxf/trunk/rt/core/src/main/java/org/apache/cxf/transport/AbstractDestination.java
Sun Mar 4 16:10:18 2007
@@ -116,12 +116,12 @@
MessageObserver old = incomingObserver;
incomingObserver = observer;
if (observer != null) {
- getLogger().info("registering incoming observer: " + observer);
+ getLogger().fine("registering incoming observer: " + observer);
if (old == null) {
activate();
}
} else {
- getLogger().info("unregistering incoming observer: " +
incomingObserver);
+ getLogger().fine("unregistering incoming observer: " +
incomingObserver);
if (old != null) {
deactivate();
}
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
Sun Mar 4 16:10:18 2007
@@ -72,25 +72,18 @@
} else if (getAddress() != null) {
ei.setAddress(getAddress());
}
-
- setProps(ei);
-
+
ep = service.getEndpoints().get(ei.getName());
if (ep == null) {
ep = serviceFactory.createEndpoint(ei);
}
- service.getEndpoints().put(ep.getEndpointInfo().getName(), ep);
- return ep;
- }
-
- private void setProps(EndpointInfo ei) {
- if (properties == null) {
- return;
- }
- for (Map.Entry<String, Object> e : properties.entrySet()) {
- ei.setProperty(e.getKey(), e.getValue());
+ if (properties != null) {
+ ep.putAll(properties);
}
+
+ service.getEndpoints().put(ep.getEndpointInfo().getName(), ep);
+ return ep;
}
protected EndpointInfo createEndpointInfo() throws BusException {
Modified:
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java?view=diff&rev=514501&r1=514500&r2=514501
==============================================================================
---
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
(original)
+++
incubator/cxf/trunk/rt/frontend/simple/src/test/java/org/apache/cxf/service/factory/ReflectionServiceFactoryTest.java
Sun Mar 4 16:10:18 2007
@@ -150,7 +150,7 @@
Endpoint ep = eps.values().iterator().next();
EndpointInfo endpointInfo = ep.getEndpointInfo();
- assertEquals("test", endpointInfo.getProperty("test"));
+ assertEquals("test", ep.get("test"));
SOAPAddress soapAddress = endpointInfo.getExtensor(SOAPAddress.class);
assertNotNull(soapAddress);