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 2022/11/11 12:31:26 UTC
[camel] 02/02: CAMEL-18712: camel-jbang - export dsl-modeline should only be included in needed
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit cccf15fe3e8fc2b1af9b177ded4d6238eeea1b26
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Nov 11 13:31:10 2022 +0100
CAMEL-18712: camel-jbang - export dsl-modeline should only be included in needed
---
.../camel/dsl/jbang/core/commands/ExportBaseCommand.java | 12 ++++++++++++
.../camel/dsl/jbang/core/commands/ExportCamelMain.java | 4 +++-
.../apache/camel/dsl/jbang/core/commands/ExportQuarkus.java | 7 ++++---
.../camel/dsl/jbang/core/commands/ExportSpringBoot.java | 9 +++++++--
.../src/main/resources/templates/main-pom.tmpl | 4 ----
.../main/resources/templates/spring-boot-build-gradle.tmpl | 1 -
.../src/main/resources/templates/spring-boot-pom.tmpl | 4 ----
7 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
index a90710100d2..e872efcf904 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportBaseCommand.java
@@ -256,6 +256,8 @@ abstract class ExportBaseCommand extends CamelCommand {
// include kamelet catalog if we use kamelets
answer.add("mvn:org.apache.camel.kamelets:camel-kamelets:" + kameletsVersion);
answer.add("mvn:org.apache.camel.kamelets:camel-kamelets-utils:" + kameletsVersion);
+ } else if (line.startsWith("modeline=")) {
+ answer.add("camel:dsl-modeline");
}
}
@@ -480,6 +482,16 @@ abstract class ExportBaseCommand extends CamelCommand {
return answer;
}
+ protected static boolean hasModeline(File settings) {
+ try {
+ List<String> lines = Files.readAllLines(settings.toPath());
+ return lines.stream().anyMatch(l -> l.startsWith("modeline="));
+ } catch (Exception e) {
+ // ignore
+ }
+ return false;
+ }
+
protected static void safeCopy(File source, File target, boolean override) throws Exception {
if (!source.exists()) {
return;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
index 6647124f43e..73e6c079f52 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportCamelMain.java
@@ -96,6 +96,9 @@ class ExportCamelMain extends Export {
if (!prop.containsKey("camel.main.basePackageScan") && !prop.containsKey("camel.main.base-package-scan")) {
prop.put("camel.main.basePackageScan", packageName);
}
+ if (!hasModeline(settings)) {
+ prop.remove("camel.main.modeline");
+ }
return prop;
});
// create main class
@@ -209,7 +212,6 @@ class ExportCamelMain extends Export {
answer.removeIf(s -> s.contains("camel-core"));
answer.removeIf(s -> s.contains("camel-main"));
answer.removeIf(s -> s.contains("camel-health"));
- answer.removeIf(s -> s.contains("camel-dsl-modeline"));
// if platform-http is included then we need vertx as implementation
if (answer.stream().anyMatch(s -> s.contains("camel-platform-http") && !s.contains("camel-platform-http-vertx"))) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
index f996cf24302..c3941c6822d 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportQuarkus.java
@@ -110,8 +110,9 @@ class ExportQuarkus extends Export {
copySourceFiles(settings, profile, srcJavaDir, srcResourcesDir, srcCamelResourcesDir, packageName);
// copy from settings to profile
copySettingsAndProfile(settings, profile, srcResourcesDir, prop -> {
- // turn off modeline as it is not supported in quarkus
- prop.remove("camel.main.modeline");
+ if (!hasModeline(settings)) {
+ prop.remove("camel.main.modeline");
+ }
return prop;
});
// copy docker files
@@ -379,10 +380,10 @@ class ExportQuarkus extends Export {
protected Set<String> resolveDependencies(File settings, File profile) throws Exception {
Set<String> answer = super.resolveDependencies(settings, profile);
+ // remove out of the box dependencies
answer.removeIf(s -> s.contains("camel-core"));
answer.removeIf(s -> s.contains("camel-platform-http"));
answer.removeIf(s -> s.contains("camel-microprofile-health"));
- answer.removeIf(s -> s.contains("camel-dsl-modeline"));
return answer;
}
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
index 4a31edff20c..ad1f94149ad 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ExportSpringBoot.java
@@ -103,7 +103,12 @@ class ExportSpringBoot extends Export {
srcCamelResourcesDir.mkdirs();
copySourceFiles(settings, profile, srcJavaDir, srcResourcesDir, srcCamelResourcesDir, packageName);
// copy from settings to profile
- copySettingsAndProfile(settings, profile, srcResourcesDir, null);
+ copySettingsAndProfile(settings, profile, srcResourcesDir, prop -> {
+ if (!hasModeline(settings)) {
+ prop.remove("camel.main.modeline");
+ }
+ return prop;
+ });
// create main class
createMainClassSource(srcJavaDir, packageName, mainClassname);
// gather dependencies
@@ -333,8 +338,8 @@ class ExportSpringBoot extends Export {
protected Set<String> resolveDependencies(File settings, File profile) throws Exception {
Set<String> answer = super.resolveDependencies(settings, profile);
+ // remove out of the box dependencies
answer.removeIf(s -> s.contains("camel-core"));
- answer.removeIf(s -> s.contains("camel-dsl-modeline"));
// if platform-http is included then we need servlet as implementation
if (answer.stream().anyMatch(s -> s.contains("camel-platform-http") && !s.contains("camel-servlet"))) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
index 3fb11a91c87..fe828433d39 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/main-pom.tmpl
@@ -36,10 +36,6 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-health</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-dsl-modeline</artifactId>
- </dependency>
{{ .CamelDependencies }}
<!-- for logging in color -->
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl
index 3d64253738f..3cc5a119d25 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-build-gradle.tmpl
@@ -18,7 +18,6 @@ dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.apache.camel.springboot:camel-spring-boot-engine-starter:{{ .CamelVersion }}'
- implementation 'org.apache.camel.springboot:camel-dsl-modeline-starter:{{ .CamelVersion }}'
{{ .CamelDependencies }}
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.apache.camel:camel-test-spring-junit5:{{ .CamelVersion }}'
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
index 361297da6b6..5250bf41e28 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/resources/templates/spring-boot-pom.tmpl
@@ -56,10 +56,6 @@
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-spring-boot-engine-starter</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.camel.springboot</groupId>
- <artifactId>camel-dsl-modeline-starter</artifactId>
- </dependency>
{{ .CamelDependencies }}
<dependency>