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 2019/02/05 13:45:19 UTC
[camel] branch ci-fix updated: This should work better
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch ci-fix
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/ci-fix by this push:
new f449176 This should work better
f449176 is described below
commit f449176e724eff7746eae153a9b0dfb7c2c177b8
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Feb 5 14:42:53 2019 +0100
This should work better
---
.../maven/packaging/PackageDataFormatMojo.java | 120 +++++++---------
.../camel/maven/packaging/PackageHelper.java | 7 +-
.../camel/maven/packaging/PackageLanguageMojo.java | 151 +++++++++------------
3 files changed, 122 insertions(+), 156 deletions(-)
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
index 975475c..dd5f62e 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
@@ -21,15 +21,12 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -95,7 +92,7 @@ public class PackageDataFormatMojo extends AbstractMojo {
}
public static int prepareDataFormat(Log log, MavenProject project, MavenProjectHelper projectHelper, File dataFormatOutDir,
- File schemaOutDir, BuildContext buildContext) throws MojoExecutionException {
+ File schemaOutDir, BuildContext buildContext) throws MojoExecutionException {
File camelMetaDir = new File(dataFormatOutDir, "META-INF/services/org/apache/camel/");
@@ -139,55 +136,46 @@ public class PackageDataFormatMojo extends AbstractMojo {
// and create json schema model file for this data format
try {
if (apacheCamel && count > 0) {
- File core = findCamelCoreJar(project);
+ File core = findCamelCoreDirectory(project.getBasedir());
if (core != null) {
- URL url = new URL("file", null, core.getAbsolutePath());
- try (URLClassLoader loader = new URLClassLoader(new URL[] {url})) {
- for (Map.Entry<String, String> entry : javaTypes.entrySet()) {
- String name = entry.getKey();
- String javaType = entry.getValue();
- String modelName = asModelName(name);
-
- InputStream is = loader.getResourceAsStream("org/apache/camel/model/dataformat/" + modelName + ".json");
- if (is == null) {
- // use file input stream if we build
- // camel-core itself, and thus do not have a
- // JAR which can be loaded by URLClassLoader
- is = new FileInputStream(new File(core, "org/apache/camel/model/dataformat/" + modelName + ".json"));
- }
- String json = loadText(is);
-
- DataFormatModel dataFormatModel = extractDataFormatModel(project, json, modelName, name, javaType);
- if (log.isDebugEnabled()) {
- log.debug("Model: " + dataFormatModel);
- }
-
- // build json schema for the data format
- String properties = after(json, " \"properties\": {");
-
- // special prepare for bindy/json properties
- properties = prepareBindyProperties(name, properties);
- properties = prepareJsonProperties(name, properties);
-
- String schema = createParameterJsonSchema(dataFormatModel, properties);
- if (log.isDebugEnabled()) {
- log.debug("JSon schema:\n" + schema);
- }
-
- // write this to the directory
- File dir = new File(schemaOutDir, schemaSubDirectory(dataFormatModel.getJavaType()));
- dir.mkdirs();
-
- File out = new File(dir, name + ".json");
- OutputStream fos = buildContext.newFileOutputStream(out);
- fos.write(schema.getBytes());
- fos.close();
-
- buildContext.refresh(out);
-
- if (log.isDebugEnabled()) {
- log.debug("Generated " + out + " containing JSon schema for " + name + " data format");
- }
+ for (Map.Entry<String, String> entry : javaTypes.entrySet()) {
+ String name = entry.getKey();
+ String javaType = entry.getValue();
+ String modelName = asModelName(name);
+
+ InputStream is = new FileInputStream(new File(core, "target/classes/org/apache/camel/model/dataformat/" + modelName + ".json"));
+ String json = loadText(is);
+
+ DataFormatModel dataFormatModel = extractDataFormatModel(project, json, modelName, name, javaType);
+ if (log.isDebugEnabled()) {
+ log.debug("Model: " + dataFormatModel);
+ }
+
+ // build json schema for the data format
+ String properties = after(json, " \"properties\": {");
+
+ // special prepare for bindy/json properties
+ properties = prepareBindyProperties(name, properties);
+ properties = prepareJsonProperties(name, properties);
+
+ String schema = createParameterJsonSchema(dataFormatModel, properties);
+ if (log.isDebugEnabled()) {
+ log.debug("JSon schema:\n" + schema);
+ }
+
+ // write this to the directory
+ File dir = new File(schemaOutDir, schemaSubDirectory(dataFormatModel.getJavaType()));
+ dir.mkdirs();
+
+ File out = new File(dir, name + ".json");
+ OutputStream fos = buildContext.newFileOutputStream(out);
+ fos.write(schema.getBytes());
+ fos.close();
+
+ buildContext.refresh(out);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Generated " + out + " containing JSon schema for " + name + " data format");
}
}
} else {
@@ -426,10 +414,6 @@ public class PackageDataFormatMojo extends AbstractMojo {
return title;
}
- private static File findCamelCoreJar(MavenProject project) {
- return findCamelCoreDirectory(project, project.getBasedir());
- }
-
private static String schemaSubDirectory(String javaType) {
int idx = javaType.lastIndexOf('.');
String pckName = javaType.substring(0, idx);
@@ -591,18 +575,18 @@ public class PackageDataFormatMojo extends AbstractMojo {
@Override
public String toString() {
return "DataFormatModel["
- + "name='" + name + '\''
- + ", title='" + title + '\''
- + ", modelName='" + modelName + '\''
- + ", description='" + description + '\''
- + ", label='" + label + '\''
- + ", deprecated='" + deprecated + '\''
- + ", javaType='" + javaType + '\''
- + ", modelJavaType='" + modelJavaType + '\''
- + ", groupId='" + groupId + '\''
- + ", artifactId='" + artifactId + '\''
- + ", version='" + version + '\''
- + ']';
+ + "name='" + name + '\''
+ + ", title='" + title + '\''
+ + ", modelName='" + modelName + '\''
+ + ", description='" + description + '\''
+ + ", label='" + label + '\''
+ + ", deprecated='" + deprecated + '\''
+ + ", javaType='" + javaType + '\''
+ + ", modelJavaType='" + modelJavaType + '\''
+ + ", groupId='" + groupId + '\''
+ + ", artifactId='" + artifactId + '\''
+ + ", version='" + version + '\''
+ + ']';
}
}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
index fc42d00..0668fc5 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageHelper.java
@@ -186,17 +186,16 @@ public final class PackageHelper {
}
}
- public static File findCamelCoreDirectory(MavenProject project, File dir) {
+ public static File findCamelCoreDirectory(File dir) {
if (dir == null) {
return null;
}
Path p = dir.toPath().resolve("core/camel-core");
if (Files.isDirectory(p)) {
- String version = project.getVersion();
- return p.resolve("target").resolve("camel-core-" + version + ".jar").toFile();
+ return p.toFile();
} else {
// okay walk up the parent dir
- return findCamelCoreDirectory(project, dir.getParentFile());
+ return findCamelCoreDirectory(dir.getParentFile());
}
}
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
index 4144823..c3d7f69 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageLanguageMojo.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.
@@ -21,15 +21,12 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
-import org.apache.maven.artifact.Artifact;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -140,89 +137,79 @@ public class PackageLanguageMojo extends AbstractMojo {
// and create json schema model file for this language
try {
if (apacheCamel && count > 0) {
- File core = findCamelCoreJar(project);
+ File core = findCamelCoreDirectory(project.getBasedir());
if (core != null) {
- URL url = new URL("file", null, core.getAbsolutePath());
- try (URLClassLoader loader = new URLClassLoader(new URL[] {url})) {
- for (Map.Entry<String, String> entry : javaTypes.entrySet()) {
- String name = entry.getKey();
- String javaType = entry.getValue();
- String modelName = asModelName(name);
-
- InputStream is = loader.getResourceAsStream("org/apache/camel/model/language/" + modelName + ".json");
- if (is == null) {
- // use file input stream if we build
- // camel-core itself, and thus do not have a
- // JAR which can be loaded by URLClassLoader
- is = new FileInputStream(new File(core, "org/apache/camel/model/language/" + modelName + ".json"));
+ for (Map.Entry<String, String> entry : javaTypes.entrySet()) {
+ String name = entry.getKey();
+ String javaType = entry.getValue();
+ String modelName = asModelName(name);
+ InputStream is = new FileInputStream(new File(core, "target/classes/org/apache/camel/model/language/" + modelName + ".json"));
+ String json = loadText(is);
+ LanguageModel languageModel = new LanguageModel();
+ languageModel.setName(name);
+ languageModel.setTitle("");
+ languageModel.setModelName(modelName);
+ languageModel.setLabel("");
+ languageModel.setDescription("");
+ languageModel.setJavaType(javaType);
+ languageModel.setGroupId(project.getGroupId());
+ languageModel.setArtifactId(project.getArtifactId());
+ languageModel.setVersion(project.getVersion());
+
+ List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("model", json, false);
+ for (Map<String, String> row : rows) {
+ if (row.containsKey("title")) {
+ // title may be special for some
+ // languages
+ String title = asTitle(name, row.get("title"));
+ languageModel.setTitle(title);
}
- String json = loadText(is);
- LanguageModel languageModel = new LanguageModel();
- languageModel.setName(name);
- languageModel.setTitle("");
- languageModel.setModelName(modelName);
- languageModel.setLabel("");
- languageModel.setDescription("");
- languageModel.setJavaType(javaType);
- languageModel.setGroupId(project.getGroupId());
- languageModel.setArtifactId(project.getArtifactId());
- languageModel.setVersion(project.getVersion());
-
- List<Map<String, String>> rows = JSonSchemaHelper.parseJsonSchema("model", json, false);
- for (Map<String, String> row : rows) {
- if (row.containsKey("title")) {
- // title may be special for some
- // languages
- String title = asTitle(name, row.get("title"));
- languageModel.setTitle(title);
- }
- if (row.containsKey("description")) {
- // description may be special for some
- // languages
- String desc = asDescription(name, row.get("description"));
- languageModel.setDescription(desc);
- }
- if (row.containsKey("label")) {
- languageModel.setLabel(row.get("label"));
- }
- if (row.containsKey("deprecated")) {
- languageModel.setDeprecated(row.get("deprecated"));
- }
- if (row.containsKey("deprecationNote")) {
- languageModel.setDeprecationNote(row.get("deprecationNote"));
- }
- if (row.containsKey("javaType")) {
- languageModel.setModelJavaType(row.get("javaType"));
- }
- if (row.containsKey("firstVersion")) {
- languageModel.setFirstVersion(row.get("firstVersion"));
- }
+ if (row.containsKey("description")) {
+ // description may be special for some
+ // languages
+ String desc = asDescription(name, row.get("description"));
+ languageModel.setDescription(desc);
}
- if (log.isDebugEnabled()) {
- log.debug("Model: " + languageModel);
+ if (row.containsKey("label")) {
+ languageModel.setLabel(row.get("label"));
}
-
- // build json schema for the data format
- String properties = after(json, " \"properties\": {");
- String schema = createParameterJsonSchema(languageModel, properties);
- if (log.isDebugEnabled()) {
- log.debug("JSon schema\n" + schema);
+ if (row.containsKey("deprecated")) {
+ languageModel.setDeprecated(row.get("deprecated"));
+ }
+ if (row.containsKey("deprecationNote")) {
+ languageModel.setDeprecationNote(row.get("deprecationNote"));
+ }
+ if (row.containsKey("javaType")) {
+ languageModel.setModelJavaType(row.get("javaType"));
}
+ if (row.containsKey("firstVersion")) {
+ languageModel.setFirstVersion(row.get("firstVersion"));
+ }
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("Model: " + languageModel);
+ }
- // write this to the directory
- File dir = new File(schemaOutDir, schemaSubDirectory(languageModel.getJavaType()));
- dir.mkdirs();
+ // build json schema for the data format
+ String properties = after(json, " \"properties\": {");
+ String schema = createParameterJsonSchema(languageModel, properties);
+ if (log.isDebugEnabled()) {
+ log.debug("JSon schema\n" + schema);
+ }
- File out = new File(dir, name + ".json");
- OutputStream fos = buildContext.newFileOutputStream(out);
- fos.write(schema.getBytes());
- fos.close();
+ // write this to the directory
+ File dir = new File(schemaOutDir, schemaSubDirectory(languageModel.getJavaType()));
+ dir.mkdirs();
- buildContext.refresh(out);
+ File out = new File(dir, name + ".json");
+ OutputStream fos = buildContext.newFileOutputStream(out);
+ fos.write(schema.getBytes());
+ fos.close();
- if (log.isDebugEnabled()) {
- log.debug("Generated " + out + " containing JSon schema for " + name + " language");
- }
+ buildContext.refresh(out);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Generated " + out + " containing JSon schema for " + name + " language");
}
}
} else {
@@ -344,10 +331,6 @@ public class PackageLanguageMojo extends AbstractMojo {
return description;
}
- private static File findCamelCoreJar(MavenProject project) {
- return findCamelCoreDirectory(project, project.getBasedir());
- }
-
private static String schemaSubDirectory(String javaType) {
int idx = javaType.lastIndexOf('.');
String pckName = javaType.substring(0, idx);