Close GroovyClassLoader

it avoids to have files that can't be deleted on Windows

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/39376f59
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/39376f59
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/39376f59

Branch: refs/heads/master
Commit: 39376f59d04ce35e1ca290ab14e3412a7030d2d1
Parents: 6eb2abe
Author: Aurelien Pupier <apup...@redhat.com>
Authored: Thu Apr 20 14:06:20 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Apr 20 17:07:31 2017 +0200

----------------------------------------------------------------------
 .../maven/DefaultMavenArtifactProvider.java     | 41 ++++++++++----------
 1 file changed, 21 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/39376f59/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
----------------------------------------------------------------------
diff --git 
a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
 
b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
index 99d0a47..1a7f3cb 100644
--- 
a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
+++ 
b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/DefaultMavenArtifactProvider.java
@@ -73,26 +73,27 @@ public class DefaultMavenArtifactProvider implements 
MavenArtifactProvider {
 
             Grape.setEnableAutoDownload(true);
 
-            final ClassLoader classLoader = new GroovyClassLoader();
-
-            Map<String, Object> param = new HashMap<>();
-            param.put("classLoader", classLoader);
-            param.put("group", groupId);
-            param.put("module", artifactId);
-            param.put("version", version);
-            // no need to download transitive dependencies as we only need to 
check the component or connector itself
-            param.put("validate", false);
-            param.put("transitive", false);
-
-            LOG.debug("Downloading {}:{}:{}", groupId, artifactId, version);
-            Grape.grab(param);
-
-            // the classloader can load content from the downloaded JAR
-            if (camelCatalog != null) {
-                scanCamelComponents(camelCatalog, classLoader, names);
-            }
-            if (camelConnectorCatalog != null) {
-                scanCamelConnectors(camelConnectorCatalog, classLoader, 
groupId, artifactId, version, names);
+            try (final GroovyClassLoader classLoader = new 
GroovyClassLoader()){
+
+               Map<String, Object> param = new HashMap<>();
+               param.put("classLoader", classLoader);
+               param.put("group", groupId);
+               param.put("module", artifactId);
+               param.put("version", version);
+               // no need to download transitive dependencies as we only need 
to check the component or connector itself
+               param.put("validate", false);
+               param.put("transitive", false);
+
+               LOG.debug("Downloading {}:{}:{}", groupId, artifactId, version);
+               Grape.grab(param);
+
+               // the classloader can load content from the downloaded JAR
+               if (camelCatalog != null) {
+                       scanCamelComponents(camelCatalog, classLoader, names);
+               }
+               if (camelConnectorCatalog != null) {
+                       scanCamelConnectors(camelConnectorCatalog, classLoader, 
groupId, artifactId, version, names);
+               }
             }
 
         } catch (Exception e) {

Reply via email to