You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/02/14 18:20:20 UTC
[4/4] camel git commit: CAMEL-10828: camel-catalog-nexus - Initial
work
CAMEL-10828: camel-catalog-nexus - Initial work
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/39926008
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/39926008
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/39926008
Branch: refs/heads/master
Commit: 39926008f25b3ada3fd375410dbc38ceeb21d323
Parents: fbbe4b4
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Feb 14 19:11:51 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Feb 14 19:19:46 2017 +0100
----------------------------------------------------------------------
.../catalog/nexus/BaseNexusRepository.java | 10 +++++++++
.../catalog/nexus/ComponentNexusRepository.java | 22 ++++++++++++++++----
.../catalog/nexus/LocalFileNexusRepository.java | 5 +++++
.../catalog/nexus/LocalNexusRepositoryTest.java | 5 ++++-
4 files changed, 37 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/39926008/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/BaseNexusRepository.java
----------------------------------------------------------------------
diff --git a/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/BaseNexusRepository.java b/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/BaseNexusRepository.java
index 25b7b07..02cd8c7 100644
--- a/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/BaseNexusRepository.java
+++ b/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/BaseNexusRepository.java
@@ -176,6 +176,16 @@ public abstract class BaseNexusRepository {
}
/**
+ * Creates the url to download the artifact.
+ *
+ * @param dto the artifact
+ * @return the url to download
+ */
+ protected String createArtifactURL(NexusArtifactDto dto) {
+ return dto.getArtifactLink();
+ }
+
+ /**
* Runs the task to index nexus for new artifacts
*/
protected void indexNexus() throws Exception {
http://git-wip-us.apache.org/repos/asf/camel/blob/39926008/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/ComponentNexusRepository.java
----------------------------------------------------------------------
diff --git a/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/ComponentNexusRepository.java b/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/ComponentNexusRepository.java
index 5887d12..d1663ca 100644
--- a/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/ComponentNexusRepository.java
+++ b/platforms/catalog-nexus/src/main/java/org/apache/camel/catalog/nexus/ComponentNexusRepository.java
@@ -23,6 +23,8 @@ import java.net.URLClassLoader;
import java.util.Properties;
import java.util.Set;
+import org.apache.camel.catalog.CamelCatalog;
+
import static org.apache.camel.catalog.CatalogHelper.loadText;
/**
@@ -39,8 +41,8 @@ public class ComponentNexusRepository extends BaseNexusRepository {
// now download the new artifact JARs and look inside to find more details
for (NexusArtifactDto dto : newArtifacts) {
try {
- // download using url classloader reader
- URL jarUrl = new URL(dto.getArtifactLink());
+ String url = createArtifactURL(dto);
+ URL jarUrl = new URL(url);
addCustomCamelComponentsFromArtifact(dto, jarUrl);
} catch (Exception e) {
log.warn("Error downloading component JAR " + dto.getArtifactLink() + ". This exception is ignored. " + e.getMessage());
@@ -48,6 +50,19 @@ public class ComponentNexusRepository extends BaseNexusRepository {
}
}
+ /**
+ * Adds the component to the {@link CamelCatalog}
+ *
+ * @param dto the artifact
+ * @param camelCatalog the Camel Catalog
+ * @param scheme component name
+ * @param javaType component java class
+ * @param json component json schema
+ */
+ protected void addComponent(NexusArtifactDto dto, CamelCatalog camelCatalog, String scheme, String javaType, String json) {
+ log.info("Added component: {}:{}:{} to Camel Catalog", dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
+ camelCatalog.addComponent(scheme, javaType, json);
+ }
/**
* Adds any discovered third party Camel components from the artifact.
@@ -67,8 +82,7 @@ public class ComponentNexusRepository extends BaseNexusRepository {
if (javaType != null) {
String json = loadComponentJSonSchema(classLoader, scheme);
if (json != null) {
- log.info("Added component: {}:{}:{} to Camel Catalog", dto.getGroupId(), dto.getArtifactId(), dto.getVersion());
- getCamelCatalog().addComponent(scheme, javaType, json);
+ addComponent(dto, getCamelCatalog(), scheme, javaType, json);
}
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/39926008/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalFileNexusRepository.java
----------------------------------------------------------------------
diff --git a/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalFileNexusRepository.java b/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalFileNexusRepository.java
index dd10306..1d341d3 100644
--- a/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalFileNexusRepository.java
+++ b/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalFileNexusRepository.java
@@ -28,4 +28,9 @@ public class LocalFileNexusRepository extends ComponentNexusRepository {
return new URL("file:" + file.getAbsolutePath());
}
+ @Override
+ protected String createArtifactURL(NexusArtifactDto dto) {
+ // load from file instead
+ return "file:target/" + dto.getArtifactId() + "-" + dto.getVersion() + ".jar";
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/39926008/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalNexusRepositoryTest.java
----------------------------------------------------------------------
diff --git a/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalNexusRepositoryTest.java b/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalNexusRepositoryTest.java
index 7f7d7c5..9f9d7ec 100644
--- a/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalNexusRepositoryTest.java
+++ b/platforms/catalog-nexus/src/test/java/org/apache/camel/catalog/nexus/LocalNexusRepositoryTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.catalog.nexus;
import junit.framework.TestCase;
import org.apache.camel.catalog.CamelCatalog;
import org.apache.camel.catalog.DefaultCamelCatalog;
+import org.junit.Ignore;
import org.junit.Test;
public class LocalNexusRepositoryTest extends TestCase {
@@ -36,12 +37,14 @@ public class LocalNexusRepositoryTest extends TestCase {
}
@Test
+ @Ignore("Work in progress")
public void testLocalNexus() throws Exception {
int before = catalog.findComponentNames().size();
repo.start();
- // TODO: wait 5 sec
+ // TODO: create custom component we can use for testing here
+ // and only wait as long until a new component is added
Thread.sleep(5000);
repo.stop();