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);

Reply via email to