You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2017/03/31 16:50:28 UTC
[2/2] cxf git commit: - implemented AutoCloseable Client This closes
#124
- implemented AutoCloseable Client
This closes #124
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/e262bd20
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/e262bd20
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/e262bd20
Branch: refs/heads/master
Commit: e262bd20dbc8e8567ffe0c8ed3d394191696e981
Parents: ef3ca8e
Author: bilak <bi...@gmail.com>
Authored: Thu Mar 31 11:44:32 2016 +0200
Committer: Daniel Kulp <dk...@apache.org>
Committed: Fri Mar 31 12:50:21 2017 -0400
----------------------------------------------------------------------
core/src/main/java/org/apache/cxf/endpoint/Client.java | 2 +-
.../src/main/java/org/apache/cxf/endpoint/ClientImpl.java | 10 ++++++++++
.../apache/cxf/endpoint/dynamic/DynamicClientFactory.java | 6 +++---
.../apache/cxf/jaxrs/client/FrontendClientAdapter.java | 5 ++++-
4 files changed, 18 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/e262bd20/core/src/main/java/org/apache/cxf/endpoint/Client.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/endpoint/Client.java b/core/src/main/java/org/apache/cxf/endpoint/Client.java
index 6ff2940..27ec1b3 100644
--- a/core/src/main/java/org/apache/cxf/endpoint/Client.java
+++ b/core/src/main/java/org/apache/cxf/endpoint/Client.java
@@ -31,7 +31,7 @@ import org.apache.cxf.service.model.BindingOperationInfo;
import org.apache.cxf.transport.Conduit;
import org.apache.cxf.transport.MessageObserver;
-public interface Client extends InterceptorProvider, MessageObserver, ConduitSelectorHolder {
+public interface Client extends InterceptorProvider, MessageObserver, ConduitSelectorHolder, AutoCloseable {
String REQUEST_CONTEXT = "RequestContext";
String RESPONSE_CONTEXT = "ResponseContext";
String KEEP_CONDUIT_ALIVE = "KeepConduitAlive";
http://git-wip-us.apache.org/repos/asf/cxf/blob/e262bd20/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java b/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
index 09f8373..9551c3f 100644
--- a/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
+++ b/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java
@@ -175,6 +175,11 @@ public class ClientImpl
}
}
+ ClassLoaderHolder holder = bus.getExtension(ClassLoaderHolder.class);
+ if (null != holder){
+ holder.reset();
+ }
+
bus = null;
conduitSelector = null;
outFaultObserver = null;
@@ -1020,6 +1025,11 @@ public class ClientImpl
return Boolean.TRUE.equals(in.get(Message.PARTIAL_RESPONSE_MESSAGE));
}
+ @Override
+ public void close() throws Exception {
+ destroy();
+ }
+
/*
* modification are echoed back to the shared map
http://git-wip-us.apache.org/repos/asf/cxf/blob/e262bd20/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
----------------------------------------------------------------------
diff --git a/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java b/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
index 1640cfc..36aa236 100644
--- a/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
+++ b/rt/frontend/simple/src/main/java/org/apache/cxf/endpoint/dynamic/DynamicClientFactory.java
@@ -424,7 +424,8 @@ public class DynamicClientFactory {
ServiceInfo svcfo = client.getEndpoint().getEndpointInfo().getService();
// Setup the new classloader!
- ClassLoaderUtils.setThreadContextClassloader(cl);
+ ClassLoaderUtils.ClassLoaderHolder holder = ClassLoaderUtils.setThreadContextClassloader(cl);
+ bus.setExtension(holder, ClassLoaderUtils.ClassLoaderHolder.class);
TypeClassInitializer visitor = new TypeClassInitializer(svcfo,
intermediateModel,
@@ -440,7 +441,7 @@ public class DynamicClientFactory {
protected SchemaCompiler createSchemaCompiler() {
SchemaCompiler compiler =
- JAXBUtils.createSchemaCompilerWithDefaultAllocator(new HashSet<>());
+ JAXBUtils.createSchemaCompilerWithDefaultAllocator(new HashSet<>());
if (schemaCompilerOptions != null && schemaCompilerOptions.length > 0) {
compiler.getOptions().parseArguments(schemaCompilerOptions);
}
@@ -630,7 +631,6 @@ public class DynamicClientFactory {
} else {
javaCompiler.setTarget("1.6");
}
-
return javaCompiler.compileFiles(srcList);
}
http://git-wip-us.apache.org/repos/asf/cxf/blob/e262bd20/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/FrontendClientAdapter.java
----------------------------------------------------------------------
diff --git a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/FrontendClientAdapter.java b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/FrontendClientAdapter.java
index d76b3dc..ab6f3a4 100644
--- a/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/FrontendClientAdapter.java
+++ b/rt/rs/client/src/main/java/org/apache/cxf/jaxrs/client/FrontendClientAdapter.java
@@ -209,5 +209,8 @@ class FrontendClientAdapter implements org.apache.cxf.endpoint.Client {
throw new UnsupportedOperationException();
}
-
+ @Override
+ public void close() throws Exception {
+ destroy();
+ }
}