Sorry, I just committed the fix.
-- Willem Jiang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://www.fusesource.com | http://www.redhat.com Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/) (English) http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese) Twitter: willemjiang Weibo: 姜宁willem Sent with Sparrow (http://www.sparrowmailapp.com/?sig) On Monday, April 22, 2013 at 5:20 PM, Claus Ibsen wrote: > Hi Willem > > Does this commit break the unit test in camel-jetty for you? > > We have this NPE on trunk now. And it looks like its related to > getHttpConnectionManager. > > Can you take a look? > > > > Running org.apache.camel.component.jetty.MultiThreadedHttpGetTest > Tests run: 3, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.196 > sec <<< FAILURE! > testHttpGetWithoutConversion(org.apache.camel.component.jetty.MultiThreadedHttpGetTest) > Time elapsed: 3.582 sec <<< ERROR! > java.lang.NullPointerException: null > at > org.apache.camel.component.jetty.MultiThreadedHttpGetTest.testHttpGetWithoutConversion(MultiThreadedHttpGetTest.java:52) > > On Fri, Apr 19, 2013 at 9:22 AM, <[email protected] > (mailto:[email protected])> wrote: > > Author: ningjiang > > Date: Fri Apr 19 07:22:53 2013 > > New Revision: 1469718 > > > > URL: http://svn.apache.org/r1469718 > > Log: > > CAMEL-6296 Support httpConnectionManager.* parameters on Camel-Http > > > > Added: > > camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpConnectionManagerSettingTest.java > > Modified: > > camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java > > > > Modified: > > camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java > > URL: > > http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java?rev=1469718&r1=1469717&r2=1469718&view=diff > > ============================================================================== > > --- > > camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java > > (original) > > +++ > > camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java > > Fri Apr 19 07:22:53 2013 > > @@ -33,6 +33,7 @@ import org.apache.camel.util.URISupport; > > import org.apache.commons.httpclient.HttpConnectionManager; > > import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; > > import org.apache.commons.httpclient.params.HttpClientParams; > > +import org.apache.commons.httpclient.params.HttpConnectionManagerParams; > > > > /** > > * Defines the <a href="http://camel.apache.org/http.html">HTTP > > @@ -42,7 +43,7 @@ import org.apache.commons.httpclient.par > > */ > > public class HttpComponent extends HeaderFilterStrategyComponent { > > protected HttpClientConfigurer httpClientConfigurer; > > - protected HttpConnectionManager httpConnectionManager = new > > MultiThreadedHttpConnectionManager(); > > + protected HttpConnectionManager httpConnectionManager; > > protected HttpBinding httpBinding; > > protected HttpConfiguration httpConfiguration; > > > > @@ -217,14 +218,28 @@ public class HttpComponent extends Heade > > IntrospectionSupport.setProperties(clientParams, parameters, "httpClient."); > > // validate that we could resolve all httpClient. parameters as this > > component is lenient > > validateParameters(uri, parameters, "httpClient."); > > - > > + // http client can be configured from URI options > > + HttpConnectionManagerParams connectionManagerParams = new > > HttpConnectionManagerParams(); > > + // setup the httpConnectionManagerParams > > + IntrospectionSupport.setProperties(connectionManagerParams, parameters, > > "httpConnectionManager."); > > + validateParameters(uri, parameters, "httpConnectionManager."); > > + // make sure the component httpConnectionManager is take effect > > + HttpConnectionManager thisHttpConnectionManager = httpConnectionManager; > > + if (thisHttpConnectionManager == null) { > > + // only set the params on the new created http connection manager > > + thisHttpConnectionManager = new MultiThreadedHttpConnectionManager(); > > + thisHttpConnectionManager.setParams(connectionManagerParams); > > + } > > // create the configurer to use for this endpoint (authMethods contains the > > used methods created by the configurer) > > final Set<AuthMethod> authMethods = new LinkedHashSet<AuthMethod>(); > > HttpClientConfigurer configurer = createHttpClientConfigurer(parameters, > > authMethods); > > URI endpointUri = URISupport.createRemainingURI(new URI(addressUri), > > httpClientParameters); > > > > // create the endpoint > > - HttpEndpoint endpoint = new HttpEndpoint(endpointUri.toString(), this, > > clientParams, httpConnectionManager, configurer); > > + HttpEndpoint endpoint = new HttpEndpoint(endpointUri.toString(), this, > > clientParams, thisHttpConnectionManager, configurer); > > + > > + endpoint.getHttpConnectionManager().setParams(connectionManagerParams); > > + > > if (headerFilterStrategy != null) { > > endpoint.setHeaderFilterStrategy(headerFilterStrategy); > > } else { > > > > Added: > > camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpConnectionManagerSettingTest.java > > URL: > > http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpConnectionManagerSettingTest.java?rev=1469718&view=auto > > ============================================================================== > > --- > > camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpConnectionManagerSettingTest.java > > (added) > > +++ > > camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpConnectionManagerSettingTest.java > > Fri Apr 19 07:22:53 2013 > > @@ -0,0 +1,57 @@ > > +/** > > + * 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.http; > > + > > +import static org.apache.camel.component.http.HttpMethods.POST; > > +import org.apache.camel.Exchange; > > +import org.apache.camel.FailedToCreateRouteException; > > +import org.apache.camel.ResolveEndpointFailedException; > > +import org.apache.camel.builder.RouteBuilder; > > +import org.apache.camel.test.junit4.CamelTestSupport; > > +import org.apache.commons.httpclient.params.HttpConnectionManagerParams; > > +import org.junit.Before; > > +import org.junit.Test; > > + > > +public class HttpConnectionManagerSettingTest extends CamelTestSupport { > > + > > + @Before > > + public void setUp() throws Exception { > > + try { > > + super.setUp(); > > + fail("Should have thrown ResolveEndpointFailedException"); > > + } catch (FailedToCreateRouteException e) { > > + ResolveEndpointFailedException cause = > > assertIsInstanceOf(ResolveEndpointFailedException.class, e.getCause()); > > + assertTrue(cause.getMessage().endsWith("Unknown > > parameters=[{xxx=true}]")); > > + } > > + } > > + > > + @Test > > + public void testHttpConnectionManagerSettingConfiguration() { > > + HttpEndpoint endpoint = > > (HttpEndpoint)context.getEndpoint("http://www.google.com?httpConnectionManager.maxTotalConnections=300"); > > + HttpConnectionManagerParams params = > > endpoint.getHttpConnectionManager().getParams(); > > + assertEquals("Get the wrong parameter.", 300, > > params.getMaxTotalConnections()); > > + } > > + > > + protected RouteBuilder createRouteBuilder() throws Exception { > > + return new RouteBuilder() { > > + public void configure() { > > + from("direct:start").setHeader(Exchange.HTTP_METHOD, > > POST).to("http://www.google.com?httpConnectionManager.xxx=true"); > > + } > > + }; > > + } > > + > > +} > > > > > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > FuseSource is now part of Red Hat > Email: [email protected] (mailto:[email protected]) > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen >
