[ https://issues.apache.org/activemq/browse/CAMEL-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56587#action_56587 ]
Christian Mueller commented on CAMEL-1530: ------------------------------------------ My "solution" is the following: {code} public class HttpParamsBuilder { private Map<String, Object> clientHttpParams; public HttpParamsBuilder(Map<String, Object> clientHttpParams) { this.clientHttpParams = clientHttpParams; } /** * Build the HttpParams with the provided http parameter * * @param client the client */ public HttpParams toHttpParams() { HttpParams httpParams = new BasicHttpParams(); Object value = null; if (clientHttpParams == null || clientHttpParams.isEmpty()) { return httpParams; } if (null != (value = clientHttpParams.remove(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE))) { httpParams.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(Integer.parseInt((String) value))); } if (null != (value = clientHttpParams.remove(ConnManagerPNames.MAX_TOTAL_CONNECTIONS))) { httpParams.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(ConnManagerPNames.TIMEOUT))) { httpParams.setParameter(ConnManagerPNames.TIMEOUT, Long.parseLong((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.SO_TIMEOUT))) { httpParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.TCP_NODELAY))) { httpParams.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, Boolean.parseBoolean((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.SOCKET_BUFFER_SIZE))) { httpParams.setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.SO_LINGER))) { httpParams.setIntParameter(CoreConnectionPNames.SO_LINGER, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.CONNECTION_TIMEOUT))) { httpParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.STALE_CONNECTION_CHECK))) { httpParams.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, Boolean.parseBoolean((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.MAX_LINE_LENGTH))) { httpParams.setIntParameter(CoreConnectionPNames.MAX_LINE_LENGTH, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(CoreConnectionPNames.MAX_HEADER_COUNT))) { httpParams.setIntParameter(CoreConnectionPNames.MAX_HEADER_COUNT, Integer.parseInt((String) value)); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.PROTOCOL_VERSION))) { if ("0.9".equals(value)) { httpParams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_0_9); } else if ("1.0".equals(value)) { httpParams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_0); } else if ("1.0".equals(value)) { httpParams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); } else { throw new IllegalArgumentException("'" + value + "' is not a valid value for property '" + CoreProtocolPNames.PROTOCOL_VERSION + "'"); } } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.HTTP_ELEMENT_CHARSET))) { httpParams.setParameter(CoreProtocolPNames.HTTP_ELEMENT_CHARSET, (String) value); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.HTTP_CONTENT_CHARSET))) { httpParams.setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, (String) value); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.USER_AGENT))) { httpParams.setParameter(CoreProtocolPNames.USER_AGENT, (String) value); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.ORIGIN_SERVER))) { httpParams.setParameter(CoreProtocolPNames.ORIGIN_SERVER, (String) value); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.STRICT_TRANSFER_ENCODING))) { httpParams.setBooleanParameter(CoreProtocolPNames.STRICT_TRANSFER_ENCODING, Boolean.parseBoolean((String) value)); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.USE_EXPECT_CONTINUE))) { httpParams.setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, Boolean.parseBoolean((String) value)); } if (null != (value = clientHttpParams.remove(CoreProtocolPNames.WAIT_FOR_CONTINUE))) { httpParams.setIntParameter(CoreProtocolPNames.WAIT_FOR_CONTINUE, Integer.parseInt((String) value)); } // TODO: configure ClientPNames, AuthPNames, CookieSpecPNames, ConnConnectionPNames, ConnRoutePNames if (!clientHttpParams.isEmpty()) { throw new IllegalArgumentException("Unknown parameters=[" + clientHttpParams + "]"); } return httpParams; } } {code} I'm not really happy with that, but I didn't have a better idea... :-( Christian > Upgrade camel-http to use httpclient 4.0 > ---------------------------------------- > > Key: CAMEL-1530 > URL: https://issues.apache.org/activemq/browse/CAMEL-1530 > Project: Apache Camel > Issue Type: Improvement > Components: camel-http > Affects Versions: 2.0-M1 > Reporter: Claus Ibsen > Assignee: Christian Mueller > Fix For: 2.2.0 > > > Upgrading httpclient from 3.1 to 4.0 requires changes in the camel-http code > as the API has change quite a lot. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.