Moves the HTTP client up to the newest v4.1.2 release. Update some additional dependencies as well.

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1179226 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Timothy A. Bish 2011-10-05 13:49:50 +00:00
parent 71d4e2a2aa
commit 082fdc5627
5 changed files with 268 additions and 255 deletions

View File

@ -6,9 +6,9 @@
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.
@ -16,7 +16,7 @@
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@ -44,7 +44,7 @@
</releases>
</repository>
</repositories>
<dependencies>
<!-- activemq -->
@ -60,12 +60,12 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>activeio-core</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>activemq-console</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
@ -80,7 +80,7 @@
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
@ -89,7 +89,7 @@
<groupId>xpp3</groupId>
<artifactId>xpp3</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all-server</artifactId>
@ -104,22 +104,23 @@
<artifactId>jetty-websocket</artifactId>
<version>${jetty-version}</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient-version}</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
@ -152,8 +153,8 @@
<groupId>xmlbeans</groupId>
<artifactId>xbean_xpath</artifactId>
<optional>true</optional>
</dependency>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
@ -172,21 +173,21 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-oxm-tiger</artifactId>
<optional>true</optional>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-oxm-tiger</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.xbean</groupId>
<artifactId>xbean-spring</artifactId>
<scope>test</scope>
</dependency>
</dependency>
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<scope>test</scope>
</dependency>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
@ -199,8 +200,8 @@
<groupId>net.sf.josql</groupId>
<artifactId>gentlyweb-utils</artifactId>
</dependency>
</dependencies>
<build>

View File

@ -31,39 +31,42 @@ import org.apache.activemq.command.DiscoveryEvent;
import org.apache.activemq.transport.discovery.DiscoveryAgent;
import org.apache.activemq.transport.discovery.DiscoveryListener;
import org.apache.activemq.util.IntrospectionSupport;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HTTPDiscoveryAgent implements DiscoveryAgent {
private static final Logger LOG = LoggerFactory.getLogger(HTTPDiscoveryAgent.class);
private String registryURL = "http://localhost:8080/discovery-registry/default";
private HttpClient httpClient = new HttpClient();
private AtomicBoolean running=new AtomicBoolean();
private HttpClient httpClient = new DefaultHttpClient();
private AtomicBoolean running = new AtomicBoolean();
private final AtomicReference<DiscoveryListener> discoveryListener = new AtomicReference<DiscoveryListener>();
private final HashSet<String> registeredServices = new HashSet<String>();
private final HashMap<String, SimpleDiscoveryEvent> discoveredServices = new HashMap<String, SimpleDiscoveryEvent>();
private Thread thread;
private long updateInterval = 1000*10;
private final HashMap<String, SimpleDiscoveryEvent> discoveredServices = new HashMap<String, SimpleDiscoveryEvent>();
private Thread thread;
private long updateInterval = 1000 * 10;
@SuppressWarnings("unused")
private String brokerName;
private boolean startEmbeddRegistry=false;
private boolean startEmbeddRegistry = false;
private Service jetty;
private AtomicInteger startCounter=new AtomicInteger(0);
private AtomicInteger startCounter = new AtomicInteger(0);
private long initialReconnectDelay = 1000;
private long maxReconnectDelay = 1000 * 30;
private long backOffMultiplier = 2;
private boolean useExponentialBackOff=true;
private boolean useExponentialBackOff = true;
private int maxReconnectAttempts;
private final Object sleepMutex = new Object();
private long minConnectTime = 5000;
class SimpleDiscoveryEvent extends DiscoveryEvent {
private int connectFailures;
@ -75,16 +78,14 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent {
public SimpleDiscoveryEvent(String service) {
super(service);
}
}
public String getGroup() {
return null;
}
public void registerService(String service) throws IOException {
synchronized(registeredServices) {
synchronized (registeredServices) {
registeredServices.add(service);
}
doRegister(service);
@ -93,128 +94,121 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent {
synchronized private void doRegister(String service) {
String url = registryURL;
try {
PutMethod method = new PutMethod(url);
// method.setParams(createParams());
method.setRequestHeader("service", service);
int responseCode = httpClient.executeMethod(method);
LOG.debug("PUT to "+url+" got a "+responseCode);
HttpPut method = new HttpPut(url);
method.addHeader("service", service);
ResponseHandler<String> handler = new BasicResponseHandler();
String responseBody = httpClient.execute(method, handler);
LOG.debug("PUT to " + url + " got a " + responseBody);
} catch (Exception e) {
LOG.debug("PUT to "+url+" failed with: "+e);
}
}
synchronized private void doUnRegister(String service) {
String url = registryURL;
try {
DeleteMethod method = new DeleteMethod(url);
// method.setParams(createParams());
method.setRequestHeader("service", service);
int responseCode = httpClient.executeMethod(method);
LOG.debug("DELETE to "+url+" got a "+responseCode);
} catch (Exception e) {
LOG.debug("DELETE to "+url+" failed with: "+e);
LOG.debug("PUT to " + url + " failed with: " + e);
}
}
// private HttpMethodParams createParams() {
// HttpMethodParams params = new HttpMethodParams();
// params.setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(0,false));
// return params;
// }
synchronized private Set<String> doLookup(long freshness) {
String url = registryURL+"?freshness="+freshness;
@SuppressWarnings("unused")
synchronized private void doUnRegister(String service) {
String url = registryURL;
try {
GetMethod method = new GetMethod(url);
// method.setParams(createParams());
int responseCode = httpClient.executeMethod(method);
LOG.debug("GET to "+url+" got a "+responseCode);
if( responseCode == 200 ) {
Set<String> rc = new HashSet<String>();
Scanner scanner = new Scanner(method.getResponseBodyAsStream());
while( scanner.hasNextLine() ) {
String service = scanner.nextLine();
if( service.trim().length() != 0 ) {
rc.add(service);
}
}
return rc;
} else {
LOG.debug("GET to "+url+" failed with response code: "+responseCode);
return null;
}
HttpDelete method = new HttpDelete(url);
method.addHeader("service", service);
ResponseHandler<String> handler = new BasicResponseHandler();
String responseBody = httpClient.execute(method, handler);
LOG.debug("DELETE to " + url + " got a " + responseBody);
} catch (Exception e) {
LOG.debug("GET to "+url+" failed with: "+e);
LOG.debug("DELETE to " + url + " failed with: " + e);
}
}
synchronized private Set<String> doLookup(long freshness) {
String url = registryURL + "?freshness=" + freshness;
try {
HttpGet method = new HttpGet(url);
ResponseHandler<String> handler = new BasicResponseHandler();
String response = httpClient.execute(method, handler);
LOG.debug("GET to " + url + " got a " + response);
Set<String> rc = new HashSet<String>();
Scanner scanner = new Scanner(response);
while (scanner.hasNextLine()) {
String service = scanner.nextLine();
if (service.trim().length() != 0) {
rc.add(service);
}
}
return rc;
} catch (Exception e) {
LOG.debug("GET to " + url + " failed with: " + e);
return null;
}
}
public void serviceFailed(DiscoveryEvent devent) throws IOException {
final SimpleDiscoveryEvent event = (SimpleDiscoveryEvent)devent;
final SimpleDiscoveryEvent event = (SimpleDiscoveryEvent) devent;
if (event.failed.compareAndSet(false, true)) {
discoveryListener.get().onServiceRemove(event);
if(!event.removed.get()) {
// Setup a thread to re-raise the event...
Thread thread = new Thread() {
public void run() {
// We detect a failed connection attempt because the service
// fails right away.
if (event.connectTime + minConnectTime > System.currentTimeMillis()) {
LOG.debug("Failure occured soon after the discovery event was generated. It will be clasified as a connection failure: "+event);
event.connectFailures++;
if (maxReconnectAttempts > 0 && event.connectFailures >= maxReconnectAttempts) {
LOG.debug("Reconnect attempts exceeded "+maxReconnectAttempts+" tries. Reconnecting has been disabled.");
return;
}
synchronized (sleepMutex) {
try {
if (!running.get() || event.removed.get()) {
return;
}
LOG.debug("Waiting "+event.reconnectDelay+" ms before attepting to reconnect.");
sleepMutex.wait(event.reconnectDelay);
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
return;
}
}
if (!useExponentialBackOff) {
event.reconnectDelay = initialReconnectDelay;
} else {
// Exponential increment of reconnect delay.
event.reconnectDelay *= backOffMultiplier;
if (event.reconnectDelay > maxReconnectDelay) {
event.reconnectDelay = maxReconnectDelay;
}
}
} else {
event.connectFailures = 0;
event.reconnectDelay = initialReconnectDelay;
}
if (!running.get() || event.removed.get()) {
return;
}
event.connectTime = System.currentTimeMillis();
event.failed.set(false);
discoveryListener.get().onServiceAdd(event);
}
};
thread.setDaemon(true);
thread.start();
}
discoveryListener.get().onServiceRemove(event);
if (!event.removed.get()) {
// Setup a thread to re-raise the event...
Thread thread = new Thread() {
public void run() {
// We detect a failed connection attempt because the
// service
// fails right away.
if (event.connectTime + minConnectTime > System.currentTimeMillis()) {
LOG.debug("Failure occured soon after the discovery event was generated. " +
"It will be clasified as a connection failure: " + event);
event.connectFailures++;
if (maxReconnectAttempts > 0 && event.connectFailures >= maxReconnectAttempts) {
LOG.debug("Reconnect attempts exceeded " + maxReconnectAttempts +
" tries. Reconnecting has been disabled.");
return;
}
synchronized (sleepMutex) {
try {
if (!running.get() || event.removed.get()) {
return;
}
LOG.debug("Waiting " + event.reconnectDelay +
" ms before attepting to reconnect.");
sleepMutex.wait(event.reconnectDelay);
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
return;
}
}
if (!useExponentialBackOff) {
event.reconnectDelay = initialReconnectDelay;
} else {
// Exponential increment of reconnect delay.
event.reconnectDelay *= backOffMultiplier;
if (event.reconnectDelay > maxReconnectDelay) {
event.reconnectDelay = maxReconnectDelay;
}
}
} else {
event.connectFailures = 0;
event.reconnectDelay = initialReconnectDelay;
}
if (!running.get() || event.removed.get()) {
return;
}
event.connectTime = System.currentTimeMillis();
event.failed.set(false);
discoveryListener.get().onServiceAdd(event);
}
};
thread.setDaemon(true);
thread.start();
}
}
}
public void setBrokerName(String brokerName) {
this.brokerName = brokerName;
}
@ -227,20 +221,20 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent {
}
public void start() throws Exception {
if( startCounter.addAndGet(1)==1 ) {
if( startEmbeddRegistry ) {
if (startCounter.addAndGet(1) == 1) {
if (startEmbeddRegistry) {
jetty = createEmbeddedJettyServer();
Map props = new HashMap();
Map<String, Object> props = new HashMap<String, Object>();
props.put("agent", this);
IntrospectionSupport.setProperties(jetty, props);
jetty.start();
}
running.set(true);
thread = new Thread("HTTPDiscovery Agent") {
@Override
public void run() {
while(running.get()) {
while (running.get()) {
try {
update();
Thread.sleep(updateInterval);
@ -256,51 +250,52 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent {
}
/**
* Create the EmbeddedJettyServer instance via reflection so that we can avoid a hard runtime dependency on
* jetty.
*
* Create the EmbeddedJettyServer instance via reflection so that we can
* avoid a hard runtime dependency on jetty.
*
* @return
* @throws Exception
*/
private Service createEmbeddedJettyServer() throws Exception {
Class clazz = HTTPDiscoveryAgent.class.getClassLoader().loadClass("org.apache.activemq.transport.discovery.http.EmbeddedJettyServer");
return (Service)clazz.newInstance();
private Service createEmbeddedJettyServer() throws Exception {
Class<?> clazz = HTTPDiscoveryAgent.class.getClassLoader().loadClass("org.apache.activemq.transport.discovery.http.EmbeddedJettyServer");
return (Service) clazz.newInstance();
}
private void update() {
// Register all our services...
synchronized(registeredServices) {
synchronized (registeredServices) {
for (String service : registeredServices) {
doRegister(service);
}
}
// Find new registered services...
DiscoveryListener discoveryListener = this.discoveryListener.get();
if(discoveryListener!=null) {
Set<String> activeServices = doLookup(updateInterval*3);
// If there is error talking the the central server, then activeServices == null
if( activeServices !=null ) {
synchronized(discoveredServices) {
if (discoveryListener != null) {
Set<String> activeServices = doLookup(updateInterval * 3);
// If there is error talking the the central server, then
// activeServices == null
if (activeServices != null) {
synchronized (discoveredServices) {
HashSet<String> removedServices = new HashSet<String>(discoveredServices.keySet());
removedServices.removeAll(activeServices);
HashSet<String> addedServices = new HashSet<String>(activeServices);
addedServices.removeAll(discoveredServices.keySet());
addedServices.removeAll(removedServices);
for (String service : addedServices) {
SimpleDiscoveryEvent e = new SimpleDiscoveryEvent(service);
discoveredServices.put(service, e);
discoveryListener.onServiceAdd(e);
}
for (String service : removedServices) {
SimpleDiscoveryEvent e = discoveredServices.remove(service);
if( e !=null ) {
e.removed.set(true);
}
SimpleDiscoveryEvent e = discoveredServices.remove(service);
if (e != null) {
e.removed.set(true);
}
discoveryListener.onServiceRemove(e);
}
}
@ -309,13 +304,13 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent {
}
public void stop() throws Exception {
if( startCounter.decrementAndGet()==0 ) {
if (startCounter.decrementAndGet() == 0) {
running.set(false);
if( thread!=null ) {
thread.join(updateInterval*3);
thread=null;
if (thread != null) {
thread.join(updateInterval * 3);
thread = null;
}
if( jetty!=null ) {
if (jetty != null) {
jetty.stop();
jetty = null;
}
@ -345,5 +340,4 @@ public class HTTPDiscoveryAgent implements DiscoveryAgent {
public void setStartEmbeddRegistry(boolean startEmbeddRegistry) {
this.startEmbeddRegistry = startEmbeddRegistry;
}
}

View File

@ -24,18 +24,25 @@ import java.net.URI;
import org.apache.activemq.command.ShutdownInfo;
import org.apache.activemq.transport.FutureResponse;
import org.apache.activemq.transport.util.TextWireFormat;
import org.apache.activemq.util.ByteArrayInputStream;
import org.apache.activemq.util.IOExceptionSupport;
import org.apache.activemq.util.IdGenerator;
import org.apache.activemq.util.ServiceStopper;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.HeadMethod;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.AbstractHttpMessage;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -43,8 +50,6 @@ import org.slf4j.LoggerFactory;
* A HTTP {@link org.apache.activemq.transport.TransportChannel} which uses the
* <a href="http://jakarta.apache.org/commons/httpclient/">commons-httpclient</a>
* library
*
*
*/
public class HttpClientTransport extends HttpTransportSupport {
@ -57,11 +62,11 @@ public class HttpClientTransport extends HttpTransportSupport {
private final String clientID = CLIENT_ID_GENERATOR.generateId();
private boolean trace;
private GetMethod httpMethod;
private HttpGet httpMethod;
private volatile int receiveCounter;
private int soTimeout = MAX_CLIENT_TIMEOUT;
public HttpClientTransport(TextWireFormat wireFormat, URI remoteUrl) {
super(wireFormat, remoteUrl);
}
@ -75,35 +80,37 @@ public class HttpClientTransport extends HttpTransportSupport {
if (isStopped()) {
throw new IOException("stopped.");
}
PostMethod httpMethod = new PostMethod(getRemoteUrl().toString());
HttpPost httpMethod = new HttpPost(getRemoteUrl().toString());
configureMethod(httpMethod);
String data = getTextWireFormat().marshalText(command);
byte[] bytes = data.getBytes("UTF-8");
InputStreamRequestEntity entity = new InputStreamRequestEntity(new ByteArrayInputStream(bytes));
httpMethod.setRequestEntity(entity);
ByteArrayEntity entity = new ByteArrayEntity(bytes);
httpMethod.setEntity(entity);
HttpClient client = null;
HttpResponse answer = null;
try {
HttpClient client = getSendHttpClient();
HttpClientParams params = new HttpClientParams();
params.setSoTimeout(soTimeout);
client.setParams(params);
int answer = client.executeMethod(httpMethod);
if (answer != HttpStatus.SC_OK) {
client = getSendHttpClient();
HttpParams params = client.getParams();
HttpConnectionParams.setSoTimeout(params, soTimeout);
answer = client.execute(httpMethod);
int status = answer.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
throw new IOException("Failed to post command: " + command + " as response was: " + answer);
}
if (command instanceof ShutdownInfo) {
try {
stop();
} catch (Exception e) {
LOG.warn("Error trying to stop HTTP client: "+ e, e);
}
try {
stop();
} catch (Exception e) {
LOG.warn("Error trying to stop HTTP client: "+ e, e);
}
}
} catch (IOException e) {
throw IOExceptionSupport.create("Could not post command: " + command + " due to: " + e, e);
} finally {
httpMethod.getResponseBody();
httpMethod.releaseConnection();
if (answer != null) {
EntityUtils.consume(answer.getEntity());
}
}
}
@ -119,13 +126,15 @@ public class HttpClientTransport extends HttpTransportSupport {
while (!isStopped() && !isStopping()) {
httpMethod = new GetMethod(remoteUrl.toString());
httpMethod = new HttpGet(remoteUrl.toString());
configureMethod(httpMethod);
HttpResponse answer = null;
try {
int answer = httpClient.executeMethod(httpMethod);
if (answer != HttpStatus.SC_OK) {
if (answer == HttpStatus.SC_REQUEST_TIMEOUT) {
answer = httpClient.execute(httpMethod);
int status = answer.getStatusLine().getStatusCode();
if (status != HttpStatus.SC_OK) {
if (status == HttpStatus.SC_REQUEST_TIMEOUT) {
LOG.debug("GET timed out");
try {
Thread.sleep(1000);
@ -139,19 +148,25 @@ public class HttpClientTransport extends HttpTransportSupport {
}
} else {
receiveCounter++;
DataInputStream stream = new DataInputStream(httpMethod.getResponseBodyAsStream());
DataInputStream stream = new DataInputStream(answer.getEntity().getContent());
Object command = (Object)getTextWireFormat().unmarshal(stream);
if (command == null) {
LOG.debug("Received null command from url: " + remoteUrl);
} else {
doConsume(command);
}
stream.close();
}
} catch (IOException e) {
onException(IOExceptionSupport.create("Failed to perform GET on: " + remoteUrl + " Reason: " + e.getMessage(), e));
break;
} finally {
httpMethod.releaseConnection();
if (answer != null) {
try {
EntityUtils.consume(answer.getEntity());
} catch (IOException e) {
}
}
}
}
}
@ -188,12 +203,13 @@ public class HttpClientTransport extends HttpTransportSupport {
HttpClient httpClient = getReceiveHttpClient();
URI remoteUrl = getRemoteUrl();
HeadMethod httpMethod = new HeadMethod(remoteUrl.toString());
HttpHead httpMethod = new HttpHead(remoteUrl.toString());
configureMethod(httpMethod);
int answer = httpClient.executeMethod(httpMethod);
if (answer != HttpStatus.SC_OK) {
throw new IOException("Failed to perform GET on: " + remoteUrl + " as response was: " + answer);
ResponseHandler<String> handler = new BasicResponseHandler();
try {
httpClient.execute(httpMethod, handler);
} catch(Exception e) {
throw new IOException("Failed to perform GET on: " + remoteUrl + " as response was: " + e.getMessage());
}
super.doStart();
@ -206,15 +222,16 @@ public class HttpClientTransport extends HttpTransportSupport {
}
protected HttpClient createHttpClient() {
HttpClient client = new HttpClient();
HttpClient client = new DefaultHttpClient();
if (getProxyHost() != null) {
client.getHostConfiguration().setProxy(getProxyHost(), getProxyPort());
HttpHost proxy = new HttpHost(getProxyHost(), getProxyPort());
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
}
return client;
}
protected void configureMethod(HttpMethod method) {
method.setRequestHeader("clientID", clientID);
protected void configureMethod(AbstractHttpMessage method) {
method.setHeader("clientID", clientID);
}
public boolean isTrace() {

View File

@ -6,9 +6,9 @@
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.
@ -16,7 +16,7 @@
limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@ -38,9 +38,9 @@
<url>http://download.java.net/maven/2</url>
</repository>
</repositories>
<dependencies>
<!-- activemq -->
<dependency>
<groupId>${project.groupId}</groupId>
@ -95,7 +95,7 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>activemq-spring</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>activemq-web-demo</artifactId>
@ -120,7 +120,7 @@
<groupId>${project.groupId}</groupId>
<artifactId>kahadb</artifactId>
</dependency>
<!-- camel -->
<dependency>
<groupId>org.apache.camel</groupId>
@ -146,8 +146,8 @@
<!-- commons -->
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
@ -163,7 +163,7 @@
<artifactId>commons-pool</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>activesoap</groupId>
<artifactId>jaxp-api</artifactId>
@ -185,7 +185,7 @@
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
@ -222,7 +222,7 @@
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
@ -247,7 +247,7 @@
<dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
@ -268,7 +268,7 @@
<artifactId>derbynet</artifactId>
<optional>true</optional>
</dependency>
<!-- copied dependencies from activemq-web-console -->
<!-- enable commons-logging when inside jetty6:run -->
<dependency>
@ -309,7 +309,7 @@
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<!-- dependencies specific to this module -->
<dependency>
<groupId>jrms</groupId>
@ -326,11 +326,11 @@
<artifactId>xmlParserAPIs</artifactId>
<version>2.6.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@ -379,7 +379,7 @@
</goals>
<configuration>
<descriptors>
<descriptor>src/main/descriptors/unix-bin.xml</descriptor>
<descriptor>src/main/descriptors/unix-bin.xml</descriptor>
</descriptors>
<!--<finalName>${pom.artifactId}-${project.version}</finalName>-->
<!--<appendAssemblyId>false</appendAssemblyId>-->
@ -393,7 +393,7 @@
</goals>
<configuration>
<descriptors>
<descriptor>src/main/descriptors/windows-bin.xml</descriptor>
<descriptor>src/main/descriptors/windows-bin.xml</descriptor>
</descriptors>
<!--<finalName>${pom.artifactId}-${project.version}</finalName>-->
<!--<appendAssemblyId>false</appendAssemblyId>-->
@ -422,15 +422,15 @@
</goals>
<configuration>
<outputDirectory>target/conf</outputDirectory>
<resources>
<resources>
<resource>
<directory>src/release/conf</directory>
</resource>
<resource>
<directory>src/sample-conf</directory>
</resource>
</resources>
</configuration>
</resources>
</configuration>
</execution>
</executions>
</plugin>

17
pom.xml
View File

@ -45,16 +45,16 @@
<aopalliance-version>1.0</aopalliance-version>
<aries-version>0.2-incubating</aries-version>
<axion-version>1.0-M3-dev</axion-version>
<axis-version>1.4</axis-version>
<axis-version>1.4.2</axis-version>
<camel-version>2.8.1</camel-version>
<camel-web-version>2.4.0</camel-web-version>
<cglib-version>2.0</cglib-version>
<openjpa-version>1.2.0</openjpa-version>
<commons-beanutils-version>1.8.3</commons-beanutils-version>
<commons-collections-version>3.2.1</commons-collections-version>
<commons-daemon-version>1.0.5</commons-daemon-version>
<commons-daemon-version>1.0.7</commons-daemon-version>
<commons-dbcp-version>1.4</commons-dbcp-version>
<commons-httpclient-version>3.1</commons-httpclient-version>
<httpclient-version>4.1.2</httpclient-version>
<commons-io-version>1.4</commons-io-version>
<commons-lang-version>2.6</commons-lang-version>
<commons-logging-version>1.1.1</commons-logging-version>
@ -64,6 +64,7 @@
<directory-version>1.5.7</directory-version>
<geronimo-version>1.0</geronimo-version>
<howl-version>0.1.8</howl-version>
<hawtbuf-version>1.6</hawtbuf-version>
<hsqldb-version>1.7.2.2</hsqldb-version>
<jasypt-version>1.8</jasypt-version>
<jdom-version>1.0</jdom-version>
@ -73,7 +74,7 @@
<jettison-version>1.3</jettison-version>
<jmock-version>2.5.1</jmock-version>
<josql-version>1.5</josql-version>
<junit-version>4.8.2</junit-version>
<junit-version>4.10</junit-version>
<jxta-version>2.0</jxta-version>
<karaf-version>2.2.0</karaf-version>
<log4j-version>1.2.16</log4j-version>
@ -87,7 +88,7 @@
<xmlbeans-version>2.2.0</xmlbeans-version>
<xpp3-version>1.1.4c</xpp3-version>
<xstream-version>1.4.1</xstream-version>
<xbean-version>3.7</xbean-version>
<xbean-version>3.8</xbean-version>
<velocity-version>1.6.4</velocity-version>
<ftpserver-version>1.0.0</ftpserver-version>
<activemq-protobuf-version>1.1</activemq-protobuf-version>
@ -811,9 +812,9 @@
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>${commons-httpclient-version}</version>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient-version}</version>
</dependency>
<dependency>