This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch dto in repository https://gitbox.apache.org/repos/asf/camel.git
commit a1cd4d4378310ed1e5b9c80b0e675cabe69ec9c4 Author: Claus Ibsen <[email protected]> AuthorDate: Mon Dec 1 17:09:04 2025 +0100 CAMEL-22732: camel-jbang - Add DTO classes to represent json output --- .../dsl/jbang/core/commands/DependencyRuntime.java | 44 +---- .../core/commands/catalog/CatalogBaseCommand.java | 12 +- .../core/commands/infra/InfraBaseCommand.java | 9 +- .../jbang/core/commands/process/ListProcess.java | 16 +- .../dsl/jbang/core/commands/update/UpdateList.java | 28 +-- .../jbang/core/commands/version/VersionList.java | 22 +-- .../camel/dsl/jbang/core/model/CatalogBaseDTO.java | 140 +++++++++++++++ .../dsl/jbang/core/model/DependencyRuntimeDTO.java | 191 +++++++++++++++++++++ .../camel/dsl/jbang/core/model/InfraBaseDTO.java | 86 ++++++++++ .../camel/dsl/jbang/core/model/ListProcessDTO.java | 125 ++++++++++++++ .../camel/dsl/jbang/core/model/UpdateListDTO.java | 84 +++++++++ .../camel/dsl/jbang/core/model/VersionListDTO.java | 125 ++++++++++++++ .../jbang/core/commands/update/UpdateListTest.java | 2 +- 13 files changed, 798 insertions(+), 86 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java index 4f3473ecb307..97aa6ef1d796 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/DependencyRuntime.java @@ -18,14 +18,13 @@ package org.apache.camel.dsl.jbang.core.commands; import java.nio.file.Files; import java.nio.file.Path; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.StringJoiner; import org.apache.camel.catalog.CamelCatalog; import org.apache.camel.dsl.jbang.core.common.CatalogLoader; import org.apache.camel.dsl.jbang.core.common.RuntimeType; +import org.apache.camel.dsl.jbang.core.model.DependencyRuntimeDTO; import org.apache.camel.tooling.maven.MavenGav; import org.apache.camel.util.json.Jsoner; import org.apache.maven.model.Model; @@ -143,42 +142,11 @@ public class DependencyRuntime extends CamelCommand { } if (jsonOutput) { - Map<String, String> map = new LinkedHashMap<>(); - map.put("runtime", runtime); - if (camelVersion != null) { - map.put("camelVersion", camelVersion); - } - if (camelSpringBootVersion != null) { - map.put("camelSpringBootVersion", camelSpringBootVersion); - } - if (camelQuarkusVersion != null) { - map.put("camelQuarkusVersion", camelQuarkusVersion); - } - if (springBootVersion != null) { - map.put("springBootVersion", springBootVersion); - } - if (quarkusVersion != null) { - map.put("quarkusVersion", quarkusVersion); - } - if (camelSpringBootBomGroupId != null) { - map.put("camelSpringBootBomGroupId", camelSpringBootBomGroupId); - } - if (camelSpringBootBomArtifactId != null) { - map.put("camelSpringBootBomArtifactId", camelSpringBootBomArtifactId); - } - if (quarkusBomGroupId != null) { - map.put("quarkusBomGroupId", quarkusBomGroupId); - } - if (quarkusBomArtifactId != null) { - map.put("quarkusBomArtifactId", quarkusBomArtifactId); - } - if (camelQuarkusBomGroupId != null) { - map.put("camelQuarkusBomGroupId", camelQuarkusBomGroupId); - } - if (camelQuarkusBomArtifactId != null) { - map.put("camelQuarkusBomArtifactId", camelQuarkusBomArtifactId); - } - printer().println(Jsoner.serialize(map)); + DependencyRuntimeDTO dto = new DependencyRuntimeDTO( + runtime, camelVersion, camelSpringBootVersion, camelQuarkusVersion, springBootVersion, quarkusVersion, + camelSpringBootBomGroupId, camelSpringBootBomArtifactId, quarkusBomGroupId, quarkusBomArtifactId, + camelQuarkusBomGroupId, camelQuarkusBomArtifactId); + printer().println(Jsoner.serialize(dto.toMap())); } else { printer().println("Runtime: " + runtime); if (camelVersion != null) { diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java index eda2a7b39311..c45719e55828 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/catalog/CatalogBaseCommand.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.stream.Collectors; import com.github.freva.asciitable.AsciiTable; @@ -35,6 +34,7 @@ import org.apache.camel.dsl.jbang.core.common.RuntimeCompletionCandidates; import org.apache.camel.dsl.jbang.core.common.RuntimeType; import org.apache.camel.dsl.jbang.core.common.RuntimeTypeConverter; import org.apache.camel.dsl.jbang.core.common.VersionHelper; +import org.apache.camel.dsl.jbang.core.model.CatalogBaseDTO; import org.apache.camel.tooling.maven.MavenGav; import org.apache.camel.tooling.model.ArtifactModel; import org.apache.camel.util.json.Jsoner; @@ -149,10 +149,12 @@ public abstract class CatalogBaseCommand extends CamelCommand { if (jsonOutput) { printer().println( Jsoner.serialize( - rows.stream().map(row -> Map.of( - "name", row.name, - "level", row.level, - "native", row.nativeSupported)).collect(Collectors.toList()))); + rows.stream() + .map(row -> new CatalogBaseDTO( + row.name, row.title, row.level, row.since, row.nativeSupported, row.description, + row.label, row.gav, row.deprecated)) + .map(CatalogBaseDTO::toMap) + .collect(Collectors.toList()))); } else { printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( new Column().header("NAME").visible(!displayGav).dataAlign(HorizontalAlign.LEFT).maxWidth(nameWidth()) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java index ee92d66eb8c3..e23f41cf8a74 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/infra/InfraBaseCommand.java @@ -48,6 +48,7 @@ import org.apache.camel.catalog.DefaultCamelCatalog; import org.apache.camel.dsl.jbang.core.commands.CamelCommand; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; import org.apache.camel.dsl.jbang.core.common.CommandLineHelper; +import org.apache.camel.dsl.jbang.core.model.InfraBaseDTO; import org.apache.camel.support.PatternHelper; import org.apache.camel.util.FileUtil; import org.apache.camel.util.json.DeserializationException; @@ -172,13 +173,9 @@ public abstract class InfraBaseCommand extends CamelCommand { } catch (DeserializationException e) { // ignore } - - return Map.of( - "alias", row.alias(), - "aliasImplementation", row.aliasImplementation(), - "description", row.description() == null ? "" : row.description(), - "serviceData", serviceDataObj); + return new InfraBaseDTO(row.alias, row.aliasImplementation, row.description, serviceDataObj); }) + .map(InfraBaseDTO::toMap) .collect(Collectors.toList()))); } else { printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java index 70a93ddb164c..4881e6d98d70 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListProcess.java @@ -29,6 +29,7 @@ import com.github.freva.asciitable.OverflowBehaviour; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; import org.apache.camel.dsl.jbang.core.common.PidNameAgeCompletionCandidates; import org.apache.camel.dsl.jbang.core.common.ProcessHelper; +import org.apache.camel.dsl.jbang.core.model.ListProcessDTO; import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; @@ -136,15 +137,12 @@ public class ListProcess extends ProcessWatchCommand { if (jsonOutput) { printer().println( Jsoner.serialize( - rows.stream().map(row -> Map.of( - "pid", row.pid, - "name", row.name, - "ready", row.ready, - "status", getStatus(row), - "age", row.ago, - "total", getTotal(row), - "fail", getFailed(row), - "inflight", getInflight(row))).collect(Collectors.toList()))); + rows.stream() + .map(row -> new ListProcessDTO( + row.pid, row.name, row.ready, getStatus(row), row.ago, row.total, + row.failed, row.inflight)) + .map(ListProcessDTO::toMap) + .collect(Collectors.toList()))); } else { printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( new Column().header("PID").headerAlign(HorizontalAlign.CENTER).with(r -> r.pid), diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java index 2c06295bf959..5f6226442b58 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateList.java @@ -25,7 +25,6 @@ import java.util.Comparator; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.List; -import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -38,6 +37,8 @@ import com.github.freva.asciitable.Column; import com.github.freva.asciitable.HorizontalAlign; import org.apache.camel.dsl.jbang.core.commands.CamelCommand; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; +import org.apache.camel.dsl.jbang.core.common.RuntimeType; +import org.apache.camel.dsl.jbang.core.model.UpdateListDTO; import org.apache.camel.main.download.MavenDependencyDownloader; import org.apache.camel.tooling.maven.MavenArtifact; import org.apache.camel.util.json.Jsoner; @@ -81,7 +82,7 @@ import picocli.CommandLine; * @see org.apache.camel.dsl.jbang.core.commands.CamelJBangMain */ @CommandLine.Command(name = "list", - description = "List available update versions for Apache Camel and its runtime variants") + description = "List available update versions for Camel and its runtime variants") public class UpdateList extends CamelCommand { @CommandLine.Option(names = { "--repo", "--repos" }, @@ -121,8 +122,8 @@ public class UpdateList extends CamelCommand { recipesVersions.plainCamelRecipesVersion() .forEach(l -> rows .add(new Row( - l[0], "Camel", "", - "Migrates Apache Camel 4 application to Apache Camel " + l[0]))); + l[0], RuntimeType.main.runtime(), "", + "Migrates Camel 4 application to Camel " + l[0]))); recipesVersions.camelSpringBootRecipesVersion().forEach(l -> { String[] runtimeVersion @@ -145,8 +146,8 @@ public class UpdateList extends CamelCommand { } rows.add(new Row( - l[0], "Camel Spring Boot", runtimeVersion[1], - "Migrates Apache Camel Spring Boot 4 application to Apache Camel Spring Boot " + l[0])); + l[0], RuntimeType.springBoot.runtime(), runtimeVersion[1], + "Migrates Camel Spring Boot 4 application to Camel Spring Boot " + l[0])); }); // Translate quarkus versions to Camel recipesVersions.camelQuarkusRecipesVersions(); @@ -160,7 +161,7 @@ public class UpdateList extends CamelCommand { String quarkusVersion = runtimeVersion[1]; quarkusVersion = quarkusVersion.substring(0, quarkusVersion.lastIndexOf('.')) + ".x"; - rows.add(new Row(runtimeVersion[0], "Camel Quarkus", quarkusVersion, l.description())); + rows.add(new Row(runtimeVersion[0], RuntimeType.quarkus.runtime(), quarkusVersion, l.description())); } }); } @@ -171,15 +172,14 @@ public class UpdateList extends CamelCommand { if (jsonOutput) { printer().println( Jsoner.serialize( - rows.stream().map(row -> Map.of( - "version", row.version(), - "runtime", row.runtime(), - "runtimeVersion", row.runtimeVersion(), - "description", row.description())) + rows.stream() + .map(row -> new UpdateListDTO( + row.version.toString(), row.runtime, row.runtimeVersion, row.description)) + .map(UpdateListDTO::toMap) .collect(Collectors.toList()))); } else { printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( - new Column().header("VERSION").minWidth(30).dataAlign(HorizontalAlign.LEFT) + new Column().header("VERSION").minWidth(10).dataAlign(HorizontalAlign.LEFT) .with(r -> r.version().toString()), new Column().header("RUNTIME") .dataAlign(HorizontalAlign.LEFT).with(r -> r.runtime()), @@ -317,6 +317,8 @@ public class UpdateList extends CamelCommand { .filter(l -> l.startsWith("description")) .map(l -> l.substring(l.indexOf(":") + 1).trim()) .findFirst().orElse(""); + // cleanup ugly ` in description + description = description.replace("`", ""); quarkusUpdateRecipes.add(new QuarkusUpdates( name.substring(name.lastIndexOf("/") + 1, name.indexOf(".yaml")), diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java index 7b5665637aba..45322a1620ad 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/version/VersionList.java @@ -30,10 +30,8 @@ import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; -import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.stream.Collectors; import com.github.freva.asciitable.AsciiTable; @@ -47,6 +45,7 @@ import org.apache.camel.dsl.jbang.core.common.RuntimeCompletionCandidates; import org.apache.camel.dsl.jbang.core.common.RuntimeType; import org.apache.camel.dsl.jbang.core.common.RuntimeTypeConverter; import org.apache.camel.dsl.jbang.core.common.VersionHelper; +import org.apache.camel.dsl.jbang.core.model.VersionListDTO; import org.apache.camel.main.KameletMain; import org.apache.camel.main.download.MavenDependencyDownloader; import org.apache.camel.tooling.maven.RepositoryResolver; @@ -207,7 +206,13 @@ public class VersionList extends CamelCommand { if (jsonOutput) { printer().println( Jsoner.serialize( - rows.stream().map(VersionList::mapOf).collect(Collectors.toList()))); + rows.stream() + .map(row -> new VersionListDTO( + row.coreVersion, runtime.runtime(), row.runtimeVersion, row.jdks, row.kind, + row.releaseDate, + row.eolDate)) + .map(VersionListDTO::toMap) + .collect(Collectors.toList()))); } else { printer().println(AsciiTable.getTable(AsciiTable.NO_BORDERS, rows, Arrays.asList( new Column().header("CAMEL VERSION") @@ -379,17 +384,6 @@ public class VersionList extends CamelCommand { return true; } - private static Map<String, Object> mapOf(Row r) { - Map<String, Object> map = new LinkedHashMap<>(); - map.put("camelVersion", r.coreVersion); - map.put("runtimeVersion", r.runtimeVersion); - map.put("jdkVersion", r.jdks); - map.put("kind", r.kind); - map.put("releaseDate", r.releaseDate); - map.put("eolDate", r.eolDate); - return map; - } - protected int sortRow(Row o1, Row o2) { String s = sort; int negate = 1; diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/CatalogBaseDTO.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/CatalogBaseDTO.java new file mode 100644 index 000000000000..0fa2bf438215 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/CatalogBaseDTO.java @@ -0,0 +1,140 @@ +/* + * 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.dsl.jbang.core.model; + +import java.util.Map; + +import org.apache.camel.util.json.JsonObject; + +public class CatalogBaseDTO { + + private String name; + private String title; + private String level; + private String since; + private boolean nativeSupported; + private String description; + private String label; + private String gav; + private boolean deprecated; + + public CatalogBaseDTO() { + } + + public CatalogBaseDTO(String name, String title, String level, String since, boolean nativeSupported, String description, + String label, String gav, boolean deprecated) { + this.name = name; + this.title = title; + this.level = level; + this.since = since; + this.nativeSupported = nativeSupported; + this.description = description; + this.label = label; + this.gav = gav; + this.deprecated = deprecated; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getLevel() { + return level; + } + + public void setLevel(String level) { + this.level = level; + } + + public String getSince() { + return since; + } + + public void setSince(String since) { + this.since = since; + } + + public boolean isNativeSupported() { + return nativeSupported; + } + + public void setNativeSupported(boolean nativeSupported) { + this.nativeSupported = nativeSupported; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getGav() { + return gav; + } + + public void setGav(String gav) { + this.gav = gav; + } + + public boolean isDeprecated() { + return deprecated; + } + + public void setDeprecated(boolean deprecated) { + this.deprecated = deprecated; + } + + public Map<String, Object> toMap() { + JsonObject jo = new JsonObject(); + jo.put("name", name); + jo.put("title", title); + jo.put("level", level); + jo.put("since", since); + jo.put("nativeSupported", nativeSupported); + if (description != null) { + jo.put("description", description); + } + if (label != null) { + jo.put("label", label); + } + jo.put("gav", gav); + jo.put("deprecated", deprecated); + return jo; + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/DependencyRuntimeDTO.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/DependencyRuntimeDTO.java new file mode 100644 index 000000000000..7f50bb205485 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/DependencyRuntimeDTO.java @@ -0,0 +1,191 @@ +/* + * 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.dsl.jbang.core.model; + +import java.util.Map; + +import org.apache.camel.util.json.JsonObject; + +public class DependencyRuntimeDTO { + + private String runtime; + private String camelVersion; + private String camelSpringBootVersion; + private String camelQuarkusVersion; + private String springBootVersion; + private String quarkusVersion; + private String camelSpringBootBomGroupId; + private String camelSpringBootBomArtifactId; + private String quarkusBomGroupId; + private String quarkusBomArtifactId; + private String camelQuarkusBomGroupId; + private String camelQuarkusBomArtifactId; + + public DependencyRuntimeDTO() { + } + + public DependencyRuntimeDTO(String runtime, String camelVersion, String camelSpringBootVersion, String camelQuarkusVersion, + String springBootVersion, String quarkusVersion, String camelSpringBootBomGroupId, + String camelSpringBootBomArtifactId, String quarkusBomGroupId, String quarkusBomArtifactId, + String camelQuarkusBomGroupId, String camelQuarkusBomArtifactId) { + this.runtime = runtime; + this.camelVersion = camelVersion; + this.camelSpringBootVersion = camelSpringBootVersion; + this.camelQuarkusVersion = camelQuarkusVersion; + this.springBootVersion = springBootVersion; + this.quarkusVersion = quarkusVersion; + this.camelSpringBootBomGroupId = camelSpringBootBomGroupId; + this.camelSpringBootBomArtifactId = camelSpringBootBomArtifactId; + this.quarkusBomGroupId = quarkusBomGroupId; + this.quarkusBomArtifactId = quarkusBomArtifactId; + this.camelQuarkusBomGroupId = camelQuarkusBomGroupId; + this.camelQuarkusBomArtifactId = camelQuarkusBomArtifactId; + } + + public String getRuntime() { + return runtime; + } + + public void setRuntime(String runtime) { + this.runtime = runtime; + } + + public String getCamelVersion() { + return camelVersion; + } + + public void setCamelVersion(String camelVersion) { + this.camelVersion = camelVersion; + } + + public String getCamelSpringBootVersion() { + return camelSpringBootVersion; + } + + public void setCamelSpringBootVersion(String camelSpringBootVersion) { + this.camelSpringBootVersion = camelSpringBootVersion; + } + + public String getCamelQuarkusVersion() { + return camelQuarkusVersion; + } + + public void setCamelQuarkusVersion(String camelQuarkusVersion) { + this.camelQuarkusVersion = camelQuarkusVersion; + } + + public String getSpringBootVersion() { + return springBootVersion; + } + + public void setSpringBootVersion(String springBootVersion) { + this.springBootVersion = springBootVersion; + } + + public String getQuarkusVersion() { + return quarkusVersion; + } + + public void setQuarkusVersion(String quarkusVersion) { + this.quarkusVersion = quarkusVersion; + } + + public String getCamelSpringBootBomGroupId() { + return camelSpringBootBomGroupId; + } + + public void setCamelSpringBootBomGroupId(String camelSpringBootBomGroupId) { + this.camelSpringBootBomGroupId = camelSpringBootBomGroupId; + } + + public String getCamelSpringBootBomArtifactId() { + return camelSpringBootBomArtifactId; + } + + public void setCamelSpringBootBomArtifactId(String camelSpringBootBomArtifactId) { + this.camelSpringBootBomArtifactId = camelSpringBootBomArtifactId; + } + + public String getQuarkusBomGroupId() { + return quarkusBomGroupId; + } + + public void setQuarkusBomGroupId(String quarkusBomGroupId) { + this.quarkusBomGroupId = quarkusBomGroupId; + } + + public String getQuarkusBomArtifactId() { + return quarkusBomArtifactId; + } + + public void setQuarkusBomArtifactId(String quarkusBomArtifactId) { + this.quarkusBomArtifactId = quarkusBomArtifactId; + } + + public String getCamelQuarkusBomGroupId() { + return camelQuarkusBomGroupId; + } + + public void setCamelQuarkusBomGroupId(String camelQuarkusBomGroupId) { + this.camelQuarkusBomGroupId = camelQuarkusBomGroupId; + } + + public String getCamelQuarkusBomArtifactId() { + return camelQuarkusBomArtifactId; + } + + public void setCamelQuarkusBomArtifactId(String camelQuarkusBomArtifactId) { + this.camelQuarkusBomArtifactId = camelQuarkusBomArtifactId; + } + + public Map<String, Object> toMap() { + JsonObject jo = new JsonObject(); + jo.put("runtime", runtime); + jo.put("camelVersion", camelVersion); + if (camelSpringBootVersion != null) { + jo.put("camelSpringBootVersion", camelSpringBootVersion); + } + if (camelQuarkusVersion != null) { + jo.put("camelQuarkusVersion", camelQuarkusVersion); + } + if (springBootVersion != null) { + jo.put("springBootVersion", springBootVersion); + } + if (quarkusVersion != null) { + jo.put("quarkusVersion", quarkusVersion); + } + if (camelSpringBootBomGroupId != null) { + jo.put("camelSpringBootBomGroupId", camelSpringBootBomGroupId); + } + if (camelSpringBootBomArtifactId != null) { + jo.put("camelSpringBootBomArtifactId", camelSpringBootBomArtifactId); + } + if (quarkusBomGroupId != null) { + jo.put("quarkusBomGroupId", quarkusBomGroupId); + } + if (quarkusBomArtifactId != null) { + jo.put("quarkusBomArtifactId", quarkusBomArtifactId); + } + if (camelQuarkusBomGroupId != null) { + jo.put("camelQuarkusBomGroupId", camelQuarkusBomGroupId); + } + if (camelQuarkusBomArtifactId != null) { + jo.put("camelQuarkusBomArtifactId", camelQuarkusBomArtifactId); + } + return jo; + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/InfraBaseDTO.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/InfraBaseDTO.java new file mode 100644 index 000000000000..8f69b30c8f2d --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/InfraBaseDTO.java @@ -0,0 +1,86 @@ +/* + * 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.dsl.jbang.core.model; + +import java.util.Map; + +import org.apache.camel.util.json.JsonObject; + +public class InfraBaseDTO { + + private String alias; + private String aliasImplementation; + private String description; + private Object serviceData; + + public InfraBaseDTO() { + } + + public InfraBaseDTO(String alias, String aliasImplementation, String description, Object serviceData) { + this.alias = alias; + this.aliasImplementation = aliasImplementation; + this.description = description; + this.serviceData = serviceData; + } + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public String getAliasImplementation() { + return aliasImplementation; + } + + public void setAliasImplementation(String aliasImplementation) { + this.aliasImplementation = aliasImplementation; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Object getServiceData() { + return serviceData; + } + + public void setServiceData(Object serviceData) { + this.serviceData = serviceData; + } + + public Map<String, Object> toMap() { + JsonObject jo = new JsonObject(); + jo.put("alias", alias); + if (aliasImplementation != null) { + jo.put("aliasImplementation", aliasImplementation); + } + if (description != null) { + jo.put("description", description); + } + if (serviceData != null) { + jo.put("serviceData", serviceData); + } + return jo; + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/ListProcessDTO.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/ListProcessDTO.java new file mode 100644 index 000000000000..46992e93ad0f --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/ListProcessDTO.java @@ -0,0 +1,125 @@ +/* + * 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.dsl.jbang.core.model; + +import java.util.Map; + +import org.apache.camel.util.json.JsonObject; + +public class ListProcessDTO { + + private int pid; + private String name; + private String ready; + private String status; + private String age; + private long total; + private long fail; + private int inflight; + + public ListProcessDTO() { + } + + public ListProcessDTO(String pid, String name, String ready, String status, String age, String total, String fail, + String inflight) { + this.pid = Integer.parseInt(pid); + this.name = name; + this.ready = ready; + this.status = status; + this.age = age; + this.total = Long.parseLong(total); + this.fail = Long.parseLong(fail); + this.inflight = Integer.parseInt(inflight); + } + + public int getPid() { + return pid; + } + + public void setPid(int pid) { + this.pid = pid; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getReady() { + return ready; + } + + public void setReady(String ready) { + this.ready = ready; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getAge() { + return age; + } + + public void setAge(String age) { + this.age = age; + } + + public long getTotal() { + return total; + } + + public void setTotal(long total) { + this.total = total; + } + + public long getFail() { + return fail; + } + + public void setFail(long fail) { + this.fail = fail; + } + + public int getInflight() { + return inflight; + } + + public void setInflight(int inflight) { + this.inflight = inflight; + } + + public Map<String, Object> toMap() { + JsonObject jo = new JsonObject(); + jo.put("pid", pid); + jo.put("name", name); + jo.put("ready", ready); + jo.put("status", status); + jo.put("age", age); + jo.put("total", total); + jo.put("fail", fail); + jo.put("inflight", inflight); + return jo; + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/UpdateListDTO.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/UpdateListDTO.java new file mode 100644 index 000000000000..6c6c5343a338 --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/UpdateListDTO.java @@ -0,0 +1,84 @@ +/* + * 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.dsl.jbang.core.model; + +import java.util.Map; + +import org.apache.camel.util.json.JsonObject; + +public class UpdateListDTO { + + private String version; + private String runtime; + private String runtimeVersion; + private String description; + + public UpdateListDTO() { + } + + public UpdateListDTO(String version, String runtime, String runtimeVersion, String description) { + this.version = version; + this.runtime = runtime; + this.runtimeVersion = runtimeVersion; + this.description = description; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getRuntime() { + return runtime; + } + + public void setRuntime(String runtime) { + this.runtime = runtime; + } + + public String getRuntimeVersion() { + return runtimeVersion; + } + + public void setRuntimeVersion(String runtimeVersion) { + this.runtimeVersion = runtimeVersion; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Map<String, Object> toMap() { + JsonObject jo = new JsonObject(); + jo.put("camelVersion", version); + jo.put("runtime", runtime); + if (runtimeVersion != null) { + jo.put("runtimeVersion", runtimeVersion); + } + if (description != null) { + jo.put("description", description); + } + return jo; + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/VersionListDTO.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/VersionListDTO.java new file mode 100644 index 000000000000..1cc805181e4a --- /dev/null +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/model/VersionListDTO.java @@ -0,0 +1,125 @@ +/* + * 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.dsl.jbang.core.model; + +import java.util.Map; + +import org.apache.camel.util.json.JsonObject; + +public class VersionListDTO { + + private String camelVersion; + private String runtime; + private String runtimeVersion; + private String jdkVersion; + private String kind; + private String releaseDate; + private String eolDate; + + public VersionListDTO() { + } + + public VersionListDTO(String camelVersion, String runtime, String runtimeVersion, String jdkVersion, String kind, + String releaseDate, + String eolDate) { + this.camelVersion = camelVersion; + this.runtime = runtime; + this.runtimeVersion = runtimeVersion; + this.jdkVersion = jdkVersion; + this.kind = kind; + this.releaseDate = releaseDate; + this.eolDate = eolDate; + } + + public String getCamelVersion() { + return camelVersion; + } + + public void setCamelVersion(String camelVersion) { + this.camelVersion = camelVersion; + } + + public String getRuntime() { + return runtime; + } + + public void setRuntime(String runtime) { + this.runtime = runtime; + } + + public String getRuntimeVersion() { + return runtimeVersion; + } + + public void setRuntimeVersion(String runtimeVersion) { + this.runtimeVersion = runtimeVersion; + } + + public String getJdkVersion() { + return jdkVersion; + } + + public void setJdkVersion(String jdkVersion) { + this.jdkVersion = jdkVersion; + } + + public String getKind() { + return kind; + } + + public void setKind(String kind) { + this.kind = kind; + } + + public String getReleaseDate() { + return releaseDate; + } + + public void setReleaseDate(String releaseDate) { + this.releaseDate = releaseDate; + } + + public String getEolDate() { + return eolDate; + } + + public void setEolDate(String eolDate) { + this.eolDate = eolDate; + } + + public Map<String, Object> toMap() { + JsonObject jo = new JsonObject(); + jo.put("camelVersion", camelVersion); + jo.put("runtime", runtime); + if (runtimeVersion != null) { + jo.put("runtimeVersion", runtimeVersion); + } + if (jdkVersion != null) { + jo.put("jdkVersion", jdkVersion); + } + if (kind != null) { + jo.put("kind", kind); + } + if (releaseDate != null) { + jo.put("releaseDate", releaseDate); + } + if (eolDate != null) { + jo.put("eolDate", eolDate); + } + return jo; + } +} diff --git a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateListTest.java b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateListTest.java index f5d6569ce3a3..abda8e2d8ffe 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateListTest.java +++ b/dsl/camel-jbang/camel-jbang-core/src/test/java/org/apache/camel/dsl/jbang/core/commands/update/UpdateListTest.java @@ -34,6 +34,6 @@ public class UpdateListTest extends CamelCommandBaseTest { List<String> lines = printer.getLines(); Assertions.assertThat(lines.stream().collect(Collectors.joining("\n"))) - .contains("Migrates Apache Camel 4 application to Apache Camel 4.9.0"); + .contains("Migrates Camel 4 application to Camel 4.9.0"); } }
