Author: heiko.braun(a)jboss.com
Date: 2007-05-21 05:44:43 -0400 (Mon, 21 May 2007)
New Revision: 3158
Modified:
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/config/EndpointProperty.java
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
Log:
Chunked encoding can be configured through configuration property
Modified:
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java 2007-05-21
08:57:27 UTC (rev 3157)
+++
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/core/client/RemotingConnectionImpl.java 2007-05-21
09:44:43 UTC (rev 3158)
@@ -29,10 +29,8 @@
import org.jboss.remoting.marshal.MarshalFactory;
import org.jboss.remoting.marshal.Marshaller;
import org.jboss.remoting.marshal.UnMarshaller;
-import org.jboss.ws.core.MessageAbstraction;
-import org.jboss.ws.core.MessageTrace;
-import org.jboss.ws.core.StubExt;
-import org.jboss.ws.core.WSTimeoutException;
+import org.jboss.ws.core.*;
+import org.jboss.ws.core.soap.MessageContextAssociation;
import org.jboss.ws.metadata.config.EndpointProperty;
import javax.xml.rpc.Stub;
@@ -49,8 +47,13 @@
import java.util.Properties;
/**
- * SOAPConnection implementation
+ * SOAPConnection implementation.
+ * <p/>
*
+ * Per default HTTP 1.1 chunked encoding is used.
+ * This may be ovverriden through {@link
org.jboss.ws.metadata.config.EndpointProperty#CHUNKED_ENCODING_SIZE}.
+ * A chunksize value of zero disables chunked encoding.
+ *
* @author Thomas.Diesler(a)jboss.org
* @author <a href="mailto:jason@stacksmash.com">Jason T.
Greene</a>
*
@@ -99,8 +102,8 @@
clientConfig.put(Client.ENABLE_LEASE, false);
// Enable chunked encoding
- // TODO: make this configurable through an endoint property
- clientConfig.put("chunkedLength", "2048");
+ // This is the default size. May be overridden through endpoint config
+ clientConfig.put("chunkedLength", "1024");
}
public boolean isClosed()
@@ -154,8 +157,11 @@
// setup remoting client
Map<String, Object> metadata = createRemotingMetaData(reqMessage,
callProps);
- Client client = createRemotingClient(endpoint, targetAddress, oneway);
+ Client client = createRemotingClient(endpoint, targetAddress, oneway);
+ // remoting props may come from client config as well
+ mergeConfigContribution();
+
try
{
if (log.isDebugEnabled())
@@ -199,6 +205,25 @@
}
}
+ private void mergeConfigContribution()
+ {
+ // check for config property contribution
+ CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext();
+ if(msgContext!=null)
+ {
+ Properties epmdProps = msgContext.getEndpointMetaData().getProperties();
+ if(epmdProps.containsKey(EndpointProperty.CHUNKED_ENCODING_SIZE))
+ {
+ String chunkSizeValue =
epmdProps.getProperty(EndpointProperty.CHUNKED_ENCODING_SIZE);
+ int chunkSize = Integer.valueOf(chunkSizeValue);
+ if(chunkSize>0)
+ clientConfig.put(EndpointProperty.CHUNKED_ENCODING_SIZE, chunkSizeValue);
+ else
+ clientConfig.remove(EndpointProperty.CHUNKED_ENCODING_SIZE);
+ }
+ }
+ }
+
private String addURLParameter(String url, String key, String value)
{
int qmIndex = url.indexOf("?");
Modified:
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/config/EndpointProperty.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/config/EndpointProperty.java 2007-05-21
08:57:27 UTC (rev 3157)
+++
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/config/EndpointProperty.java 2007-05-21
09:44:43 UTC (rev 3158)
@@ -32,6 +32,11 @@
{
public final static String MTOM_THRESHOLD =
"http://org.jboss.ws/mtom#threshold";
+ /**
+ * Set to 0 in order to disable chunked encoding
+ */
+ public final static String CHUNKED_ENCODING_SIZE =
"http://org.jboss.ws/http#chunksize";
+
public URI name;
public String value;
Modified:
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java
===================================================================
---
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2007-05-21
08:57:27 UTC (rev 3157)
+++
branches/jbossws-2.0/jbossws-core/src/java/org/jboss/ws/metadata/umdm/EndpointMetaData.java 2007-05-21
09:44:43 UTC (rev 3158)
@@ -682,6 +682,15 @@
JBossWSConfigFactory factory = JBossWSConfigFactory.newInstance();
config = factory.getConfig(getRootFile(), getConfigName(), getConfigFile());
+ // arbitrary endpoint properties
+ for(EndpointProperty p: config.getProperties())
+ {
+ getProperties().put(p.name.toString(), p.value);
+ }
+
+ // TODO: add features as well.
+
+ // setup handler chains
reconfigHandlerMetaData();
}
Show replies by date