This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 153997558d6851bb17fa55401572298b3d469fdd Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Apr 8 10:15:29 2020 +0200 CAMEL-14816: Updated to remove compilationTarget (need more debate). --- .../java/org/apache/camel/spi/Metadata.java | 6 ---- .../org/apache/camel/tooling/model/BaseModel.java | 9 ----- .../camel/tooling/model/CompilationTarget.java | 33 ------------------ .../org/apache/camel/tooling/model/JsonMapper.java | 40 +++++++--------------- .../apache/camel/tooling/model/SupportLevel.java | 23 +++++++++++-- .../packaging/EndpointSchemaGeneratorMojo.java | 18 ++++++---- .../maven/packaging/PackageDataFormatMojo.java | 17 +++++---- .../camel/maven/packaging/PackageLanguageMojo.java | 17 +++++---- .../camel/maven/packaging/PackageOtherMojo.java | 12 ++++--- 9 files changed, 74 insertions(+), 101 deletions(-) diff --git a/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java b/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java index 0656e0e..fbc64e7 100644 --- a/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java +++ b/core/camel-api/src/generated/java/org/apache/camel/spi/Metadata.java @@ -121,10 +121,4 @@ public @interface Metadata { */ String includeProperties() default ""; - /** - * The highest compilation target supported by this entity. - */ - CompilationTarget[] compilationTarget() default CompilationTarget.JVM; - enum CompilationTarget {JVM, Native} - } diff --git a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/BaseModel.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/BaseModel.java index 7c5ae34..a3a1b64 100644 --- a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/BaseModel.java +++ b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/BaseModel.java @@ -32,7 +32,6 @@ public abstract class BaseModel<O extends BaseOptionModel> { protected String deprecationNote; protected final List<O> options = new ArrayList<>(); protected SupportLevel supportLevel; - protected CompilationTarget compilationTarget; public static Comparator<BaseModel<?>> compareTitle() { return (m1, m2) -> m1.getTitle().compareToIgnoreCase(m2.getTitle()); @@ -128,12 +127,4 @@ public abstract class BaseModel<O extends BaseOptionModel> { this.supportLevel = supportLevel; } - public CompilationTarget getCompilationTarget() { - return compilationTarget; - } - - public void setCompilationTarget(CompilationTarget compilationTarget) { - this.compilationTarget = compilationTarget; - } - } diff --git a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/CompilationTarget.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/CompilationTarget.java deleted file mode 100644 index 943f2c5..0000000 --- a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/CompilationTarget.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * 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 - * - * 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. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.tooling.model; - -/** - * A compilation target supported by some Camel entity, such as component, language, data format, etc. - */ -public enum CompilationTarget { - /** The default compilation target */ - JVM, - /** Native compilation target; implies {@link #JVM} */ - Native; - - public static CompilationTarget DEFAULT = JVM; - - public static CompilationTarget safeValueOf(String string) { - return string == null ? DEFAULT : valueOf(string); - } -} diff --git a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java index 3f4ac18..493aa17 100644 --- a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java +++ b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/JsonMapper.java @@ -143,15 +143,12 @@ public final class JsonMapper { obj.put("javaType", model.getJavaType()); obj.put("firstVersion", model.getFirstVersion()); obj.put("verifiers", model.getVerifiers()); - obj.put("groupId", model.getGroupId()); - obj.put("artifactId", model.getArtifactId()); - obj.put("version", model.getVersion()); if (model.getSupportLevel() != null) { obj.put("supportLevel", model.getSupportLevel().name()); } - if (model.getCompilationTarget() != null) { - obj.put("compilationTarget", model.getCompilationTarget().name()); - } + obj.put("groupId", model.getGroupId()); + obj.put("artifactId", model.getArtifactId()); + obj.put("version", model.getVersion()); obj.entrySet().removeIf(e -> e.getValue() == null); JsonObject wrapper = new JsonObject(); wrapper.put("component", obj); @@ -202,15 +199,12 @@ public final class JsonMapper { obj.put("label", model.getLabel()); obj.put("javaType", model.getJavaType()); obj.put("modelJavaType", model.getModelJavaType()); - obj.put("groupId", model.getGroupId()); - obj.put("artifactId", model.getArtifactId()); - obj.put("version", model.getVersion()); if (model.getSupportLevel() != null) { obj.put("supportLevel", model.getSupportLevel().name()); } - if (model.getCompilationTarget() != null) { - obj.put("compilationTarget", model.getCompilationTarget().name()); - } + obj.put("groupId", model.getGroupId()); + obj.put("artifactId", model.getArtifactId()); + obj.put("version", model.getVersion()); obj.entrySet().removeIf(e -> e.getValue() == null); JsonObject wrapper = new JsonObject(); wrapper.put("dataformat", obj); @@ -260,9 +254,6 @@ public final class JsonMapper { if (model.getSupportLevel() != null) { obj.put("supportLevel", model.getSupportLevel().name()); } - if (model.getCompilationTarget() != null) { - obj.put("compilationTarget", model.getCompilationTarget().name()); - } obj.entrySet().removeIf(e -> e.getValue() == null); JsonObject wrapper = new JsonObject(); wrapper.put("model", obj); @@ -312,15 +303,12 @@ public final class JsonMapper { obj.put("label", model.getLabel()); obj.put("javaType", model.getJavaType()); obj.put("modelJavaType", model.getModelJavaType()); - obj.put("groupId", model.getGroupId()); - obj.put("artifactId", model.getArtifactId()); - obj.put("version", model.getVersion()); if (model.getSupportLevel() != null) { obj.put("supportLevel", model.getSupportLevel().name()); } - if (model.getCompilationTarget() != null) { - obj.put("compilationTarget", model.getCompilationTarget().name()); - } + obj.put("groupId", model.getGroupId()); + obj.put("artifactId", model.getArtifactId()); + obj.put("version", model.getVersion()); obj.entrySet().removeIf(e -> e.getValue() == null); JsonObject wrapper = new JsonObject(); wrapper.put("language", obj); @@ -358,15 +346,12 @@ public final class JsonMapper { obj.put("deprecationNote", model.getDeprecationNote()); obj.put("firstVersion", model.getFirstVersion()); obj.put("label", model.getLabel()); - obj.put("groupId", model.getGroupId()); - obj.put("artifactId", model.getArtifactId()); - obj.put("version", model.getVersion()); if (model.getSupportLevel() != null) { obj.put("supportLevel", model.getSupportLevel().name()); } - if (model.getCompilationTarget() != null) { - obj.put("compilationTarget", model.getCompilationTarget().name()); - } + obj.put("groupId", model.getGroupId()); + obj.put("artifactId", model.getArtifactId()); + obj.put("version", model.getVersion()); obj.entrySet().removeIf(e -> e.getValue() == null); JsonObject wrapper = new JsonObject(); wrapper.put("other", obj); @@ -382,7 +367,6 @@ public final class JsonMapper { model.setDeprecated(mobj.getBooleanOrDefault("deprecated", false)); model.setDeprecationNote(mobj.getString("label")); model.setJavaType(mobj.getString("javaType")); - model.setCompilationTarget(CompilationTarget.safeValueOf(mobj.getString("compilationTarget"))); model.setSupportLevel(SupportLevel.safeValueOf(mobj.getString("supportLevel"))); } diff --git a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/SupportLevel.java b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/SupportLevel.java index baf2773..df579c9 100644 --- a/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/SupportLevel.java +++ b/tooling/camel-tooling-model/src/main/java/org/apache/camel/tooling/model/SupportLevel.java @@ -20,10 +20,29 @@ package org.apache.camel.tooling.model; * A level of support for some Camel entity, such as component, language, data format, etc. */ public enum SupportLevel { - /** An experimental entity that may change or be removed in minor release */ + + /** + * An experimental entity (not feature complete) that will change API, configuration, + * or functionality, or even be removed in the future. + * + * Intended to be matured over time and become preview or stable. + * + * Using this entity is not recommended for production usage. + */ + Experimental, + + /** + * A preview entity that may change API, configuration, or functionality. + * + * Intended to be matured over time and become stable. + * + * Can be used in production but use with care. + */ Preview, - /** A stable entity */ + /** + * A stable entity. + */ Stable; public static SupportLevel DEFAULT = Stable; diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java index d575a27..41d1a2c 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/EndpointSchemaGeneratorMojo.java @@ -56,7 +56,6 @@ import org.apache.camel.spi.UriParams; import org.apache.camel.spi.UriPath; import org.apache.camel.spi.annotations.Component; import org.apache.camel.tooling.model.BaseOptionModel; -import org.apache.camel.tooling.model.CompilationTarget; import org.apache.camel.tooling.model.ComponentModel; import org.apache.camel.tooling.model.ComponentModel.ComponentOptionModel; import org.apache.camel.tooling.model.ComponentModel.EndpointOptionModel; @@ -67,7 +66,6 @@ import org.apache.camel.tooling.util.PackageHelper; import org.apache.camel.tooling.util.Strings; import org.apache.camel.tooling.util.srcgen.GenericType; import org.apache.camel.util.json.Jsoner; -import org.apache.maven.artifact.DependencyResolutionRequiredException; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; @@ -462,11 +460,17 @@ public class EndpointSchemaGeneratorMojo extends AbstractGeneratorMojo { if (!Strings.isNullOrEmpty(firstVersion)) { model.setFirstVersion(firstVersion); } - model.setSupportLevel( - ClassUtil.hasAnnotation("org.apache.camel.Experimental", endpointClassElement) - ? SupportLevel.Preview - : SupportLevel.Stable); - model.setCompilationTarget(CompilationTarget.JVM); + + // grab level from annotation, pom.xml or default to stable + String level = project.getProperties().getProperty("supportLevel"); + boolean experimental = ClassUtil.hasAnnotation("org.apache.camel.Experimental", endpointClassElement); + if (experimental) { + model.setSupportLevel(SupportLevel.Experimental); + } else if (level != null) { + model.setSupportLevel(SupportLevel.safeValueOf(level)); + } else { + model.setSupportLevel(SupportLevel.Stable); + } // get the java type class name via the @Component annotation from its // component class 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 ca2070e..d0a41db 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 @@ -33,7 +33,6 @@ import java.util.stream.Stream; import org.apache.camel.maven.packaging.generics.ClassUtil; import org.apache.camel.spi.Metadata; -import org.apache.camel.tooling.model.CompilationTarget; import org.apache.camel.tooling.model.DataFormatModel; import org.apache.camel.tooling.model.DataFormatModel.DataFormatOptionModel; import org.apache.camel.tooling.model.EipModel; @@ -259,11 +258,17 @@ public class PackageDataFormatMojo extends AbstractGeneratorMojo { model.setGroupId(project.getGroupId()); model.setArtifactId(project.getArtifactId()); model.setVersion(project.getVersion()); - model.setSupportLevel( - ClassUtil.hasAnnotation("org.apache.camel.Experimental", javaType) - ? SupportLevel.Preview - : SupportLevel.Stable); - model.setCompilationTarget(CompilationTarget.JVM); + + // grab level from annotation, pom.xml or default to stable + String level = project.getProperties().getProperty("supportLevel"); + boolean experimental = ClassUtil.hasAnnotation("org.apache.camel.Experimental", javaType); + if (experimental) { + model.setSupportLevel(SupportLevel.Experimental); + } else if (level != null) { + model.setSupportLevel(SupportLevel.safeValueOf(level)); + } else { + model.setSupportLevel(SupportLevel.Stable); + } for (EipOptionModel opt : def.getOptions()) { DataFormatOptionModel option = new DataFormatOptionModel(); 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 1b7a9d4..feed8e7 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 @@ -26,7 +26,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.camel.maven.packaging.generics.ClassUtil; -import org.apache.camel.tooling.model.CompilationTarget; import org.apache.camel.tooling.model.EipModel; import org.apache.camel.tooling.model.EipModel.EipOptionModel; import org.apache.camel.tooling.model.JsonMapper; @@ -211,11 +210,17 @@ public class PackageLanguageMojo extends AbstractGeneratorMojo { model.setGroupId(project.getGroupId()); model.setArtifactId(project.getArtifactId()); model.setVersion(project.getVersion()); - model.setSupportLevel( - ClassUtil.hasAnnotation("org.apache.camel.Experimental", javaType) - ? SupportLevel.Preview - : SupportLevel.Stable); - model.setCompilationTarget(CompilationTarget.JVM); + + // grab level from annotation, pom.xml or default to stable + String level = project.getProperties().getProperty("supportLevel"); + boolean experimental = ClassUtil.hasAnnotation("org.apache.camel.Experimental", javaType); + if (experimental) { + model.setSupportLevel(SupportLevel.Experimental); + } else if (level != null) { + model.setSupportLevel(SupportLevel.safeValueOf(level)); + } else { + model.setSupportLevel(SupportLevel.Stable); + } for (EipOptionModel opt : def.getOptions()) { LanguageOptionModel option = new LanguageOptionModel(); diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java index 6ea4963..f33c506 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageOtherMojo.java @@ -19,7 +19,6 @@ package org.apache.camel.maven.packaging; import java.io.File; import java.util.Collections; -import org.apache.camel.tooling.model.CompilationTarget; import org.apache.camel.tooling.model.JsonMapper; import org.apache.camel.tooling.model.OtherModel; import org.apache.camel.tooling.model.SupportLevel; @@ -124,9 +123,14 @@ public class PackageOtherMojo extends AbstractGeneratorMojo { title = Strings.camelDashToTitle(name); } otherModel.setTitle(title); - final SupportLevel supportLevel = SupportLevel.safeValueOf(project.getProperties().getProperty("supportLevel")); - otherModel.setSupportLevel(supportLevel); - otherModel.setCompilationTarget(CompilationTarget.JVM); + + // grab level from pom.xml or default to stable + String level = project.getProperties().getProperty("supportLevel"); + if (level != null) { + otherModel.setSupportLevel(SupportLevel.safeValueOf(level)); + } else { + otherModel.setSupportLevel(SupportLevel.Stable); + } if (log.isDebugEnabled()) { log.debug("Model: " + otherModel);