CAMEL-10975: camel-catalog-maven - Allow to configure temp folder
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fe0db8a4 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fe0db8a4 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fe0db8a4 Branch: refs/heads/master Commit: fe0db8a46c45fe0af6a1558d8d7e58248f1bf4b1 Parents: 2702714 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Mar 9 11:32:45 2017 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Mar 9 11:41:11 2017 +0100 ---------------------------------------------------------------------- .../catalog/maven/ConnectorArtifactHelper.java | 8 ++++---- .../maven/DefaultMavenArtifactProvider.java | 18 +++++++++++++++--- .../catalog/maven/MavenArtifactProvider.java | 15 ++++++++++++--- .../catalog/maven/MavenArtifactProviderTest.java | 2 ++ .../catalog/maven/MavenVersionManagerTest.java | 2 ++ .../camel/catalog/rest/CamelCatalogRest.java | 7 +++++++ .../catalog/rest/CamelConnectorCatalogRest.java | 7 +++++++ 7 files changed, 49 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java index 98aeab0..6fcb1bc 100644 --- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java +++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/ConnectorArtifactHelper.java @@ -5,9 +5,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 - * <p> - * http://www.apache.org/licenses/LICENSE-2.0 - * <p> + * + * 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. @@ -23,7 +23,7 @@ import org.slf4j.LoggerFactory; import static org.apache.camel.catalog.CatalogHelper.loadText; -public class ConnectorArtifactHelper { +public final class ConnectorArtifactHelper { private static final Logger LOG = LoggerFactory.getLogger(ComponentArtifactHelper.class); http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/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 6fa68d6..3a7c2a2 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 @@ -5,9 +5,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 - * <p> - * http://www.apache.org/licenses/LICENSE-2.0 - * <p> + * + * 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. @@ -45,6 +45,13 @@ public class DefaultMavenArtifactProvider implements MavenArtifactProvider { private static final Logger LOG = LoggerFactory.getLogger(DefaultMavenArtifactProvider.class); + private String cacheDirectory; + + @Override + public void setCacheDirectory(String directory) { + this.cacheDirectory = directory; + } + public void addMavenRepository(String name, String url) { Map<String, Object> repo = new HashMap<>(); repo.put("name", name); @@ -58,6 +65,11 @@ public class DefaultMavenArtifactProvider implements MavenArtifactProvider { final Set<String> names = new LinkedHashSet<>(); try { + if (cacheDirectory != null) { + LOG.debug("Using cache directory: {}", cacheDirectory); + System.setProperty("grape.root", cacheDirectory); + } + Grape.setEnableAutoDownload(true); final ClassLoader classLoader = new GroovyClassLoader(); http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java index 309a463..8a96808 100644 --- a/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java +++ b/platforms/camel-catalog-maven/src/main/java/org/apache/camel/catalog/maven/MavenArtifactProvider.java @@ -5,9 +5,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 - * <p> - * http://www.apache.org/licenses/LICENSE-2.0 - * <p> + * + * 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. @@ -27,6 +27,15 @@ import org.apache.camel.catalog.connector.CamelConnectorCatalog; public interface MavenArtifactProvider { /** + * Configures the directory for the download cache. + * <p/> + * The default folder is <tt>USER_HOME/.groovy/grape</tt> + * + * @param directory the directory. + */ + void setCacheDirectory(String directory); + + /** * To add a 3rd party Maven repository. * * @param name the repository name http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderTest.java ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderTest.java b/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderTest.java index 84b5e0b..2fde0ed 100644 --- a/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderTest.java +++ b/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenArtifactProviderTest.java @@ -35,6 +35,7 @@ public class MavenArtifactProviderTest extends TestCase { public void testAddComponent() { CamelCatalog camelCatalog = new DefaultCamelCatalog(); MavenArtifactProvider provider = new DefaultMavenArtifactProvider(); + provider.setCacheDirectory("target/cache"); int before = camelCatalog.findComponentNames().size(); @@ -51,6 +52,7 @@ public class MavenArtifactProviderTest extends TestCase { CamelCatalog camelCatalog = new DefaultCamelCatalog(); CamelConnectorCatalog camelConnectorCatalog = new DefaultCamelConnectorCatalog(); MavenArtifactProvider provider = new DefaultMavenArtifactProvider(); + provider.setCacheDirectory("target/cache"); int before = camelCatalog.findComponentNames().size(); List<ConnectorDto> list = camelConnectorCatalog.findConnector("foo", false); http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java b/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java index 4b8abf9..785acbd 100644 --- a/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java +++ b/platforms/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java @@ -24,8 +24,10 @@ import org.apache.camel.catalog.CamelCatalog; import org.apache.camel.catalog.CatalogHelper; import org.apache.camel.catalog.DefaultCamelCatalog; import org.apache.camel.catalog.springboot.SpringBootRuntimeProvider; +import org.junit.Ignore; import org.junit.Test; +@Ignore("Cannot run on CI servers so run manually") public class MavenVersionManagerTest extends TestCase { private static final String COMPONENTS_CATALOG = "org/apache/camel/catalog/components.properties"; http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java index e81d795..24fe206 100644 --- a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java +++ b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelCatalogRest.java @@ -289,6 +289,13 @@ public class CamelCatalogRest { } @POST + @Path("/mavenCacheDirectory/{name}") + @ApiOperation(value = "Configures the Maven cache directory to use when downloading artifacts") + public void mavenCacheDirectory(@ApiParam("The name of the cache directory") @PathParam("name") String name) { + maven.setCacheDirectory(name); + } + + @POST @Path("/addMavenRepository/{name}/{url}") @ApiOperation(value = "Adds a third party Maven repository to use for downloading Maven artifacts") public void addMavenRepository(@ApiParam("The name of the Maven repository") @PathParam("name") String name, http://git-wip-us.apache.org/repos/asf/camel/blob/fe0db8a4/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java ---------------------------------------------------------------------- diff --git a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java index e87124c..364bbf5 100644 --- a/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java +++ b/platforms/camel-catalog-rest/src/main/java/org/apache/camel/catalog/rest/CamelConnectorCatalogRest.java @@ -102,6 +102,13 @@ public class CamelConnectorCatalogRest { } @POST + @Path("/mavenCacheDirectory/{name}") + @ApiOperation(value = "Configures the Maven cache directory to use when downloading artifacts") + public void mavenCacheDirectory(@ApiParam("The name of the cache directory") @PathParam("name") String name) { + maven.setCacheDirectory(name); + } + + @POST @Path("/addMavenRepository/{name}/{url}") @ApiOperation(value = "Adds a third party Maven repository to use for downloading Maven artifacts") public void addMavenRepository(@ApiParam("The name of the Maven repository") @PathParam("name") String name,