diff --git a/pom.xml b/pom.xml
index 7fa4548..3bde371 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,13 +33,13 @@ under the License.
11
UTF-8
UTF-8
- 2.16.7.Final
+ 3.20.3
quarkus-universe-bom
io.quarkus
- 2.16.7.Final
+ 3.20.3
3.0.0
- 2.16.0
- 3.20.5
+ 3.20.3
+ 4.10.7
3.20.4
3.8.6
@@ -102,10 +102,17 @@ under the License.
org.apache.camel.kamelets
camel-kamelets-catalog
${version.camel-kamelet}
+
+
+ classgraph
+ io.github.classgraph
+
+
io.fabric8
camel-k-model-v1alpha1
+ 6.3.1
org.apache.maven
@@ -146,6 +153,11 @@ under the License.
camel-openapi-rest-dsl-generator
${version.camel-classic}
+
+ io.github.classgraph
+ classgraph
+ 4.8.184
+
diff --git a/src/main/java/org/apache/camel/kameleon/WarmUpService.java b/src/main/java/org/apache/camel/kameleon/WarmUpService.java
index 89c67ac..284f7e2 100644
--- a/src/main/java/org/apache/camel/kameleon/WarmUpService.java
+++ b/src/main/java/org/apache/camel/kameleon/WarmUpService.java
@@ -16,8 +16,8 @@
*/
package org.apache.camel.kameleon;
+import io.quarkus.runtime.LaunchMode;
import io.quarkus.runtime.StartupEvent;
-import io.quarkus.runtime.configuration.ProfileManager;
import io.quarkus.vertx.ConsumeEvent;
import io.vertx.core.json.JsonArray;
import io.vertx.mutiny.core.eventbus.EventBus;
@@ -27,9 +27,9 @@
import org.apache.camel.kameleon.generator.ProjectGeneratorService;
import org.jboss.logging.Logger;
-import javax.enterprise.context.ApplicationScoped;
-import javax.enterprise.event.Observes;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.event.Observes;
+import jakarta.inject.Inject;
import java.util.List;
import java.util.stream.Collectors;
@@ -52,7 +52,7 @@ public class WarmUpService {
void onStart(@Observes StartupEvent ev) {
LOGGER.info("Data warmup start...");
- if (!ProfileManager.getLaunchMode().isDevOrTest()) {
+ if (!LaunchMode.current().isDevOrTest()) {
configurationResource.getKc().getTypes()
.forEach(camelType -> camelType.getVersions()
.forEach(camelVersion -> camelVersion.getJavaVersions()
diff --git a/src/main/java/org/apache/camel/kameleon/component/ClassicComponentService.java b/src/main/java/org/apache/camel/kameleon/component/ClassicComponentService.java
index 5a19c41..dae37f7 100644
--- a/src/main/java/org/apache/camel/kameleon/component/ClassicComponentService.java
+++ b/src/main/java/org/apache/camel/kameleon/component/ClassicComponentService.java
@@ -23,7 +23,7 @@
import org.apache.camel.kameleon.model.CamelComponent;
import org.apache.maven.artifact.versioning.ComparableVersion;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/org/apache/camel/kameleon/component/ComponentResource.java b/src/main/java/org/apache/camel/kameleon/component/ComponentResource.java
index 0a839bd..a39119e 100644
--- a/src/main/java/org/apache/camel/kameleon/component/ComponentResource.java
+++ b/src/main/java/org/apache/camel/kameleon/component/ComponentResource.java
@@ -18,12 +18,12 @@
import io.vertx.core.json.JsonArray;
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
@Path("/component")
public class ComponentResource {
diff --git a/src/main/java/org/apache/camel/kameleon/component/KameletComponentService.java b/src/main/java/org/apache/camel/kameleon/component/KameletComponentService.java
index 932fb16..b1ba596 100644
--- a/src/main/java/org/apache/camel/kameleon/component/KameletComponentService.java
+++ b/src/main/java/org/apache/camel/kameleon/component/KameletComponentService.java
@@ -21,7 +21,7 @@
import org.apache.camel.kameleon.model.KameletComponent;
import org.apache.camel.kamelets.catalog.KameletsCatalog;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/src/main/java/org/apache/camel/kameleon/component/QuarkusComponentService.java b/src/main/java/org/apache/camel/kameleon/component/QuarkusComponentService.java
index 3bc17fb..ebecfa1 100644
--- a/src/main/java/org/apache/camel/kameleon/component/QuarkusComponentService.java
+++ b/src/main/java/org/apache/camel/kameleon/component/QuarkusComponentService.java
@@ -22,7 +22,7 @@
import org.apache.camel.catalog.quarkus.QuarkusRuntimeProvider;
import org.apache.camel.kameleon.model.CamelComponent;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/main/java/org/apache/camel/kameleon/component/SpringBootComponentService.java b/src/main/java/org/apache/camel/kameleon/component/SpringBootComponentService.java
index ac41722..88fa237 100644
--- a/src/main/java/org/apache/camel/kameleon/component/SpringBootComponentService.java
+++ b/src/main/java/org/apache/camel/kameleon/component/SpringBootComponentService.java
@@ -23,7 +23,7 @@
import org.apache.camel.kameleon.model.CamelComponent;
import org.apache.camel.springboot.catalog.SpringBootRuntimeProvider;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import java.util.ArrayList;
import java.util.List;
@@ -61,9 +61,11 @@ public JsonArray components() throws Exception {
catalog.findOtherNames().forEach(name -> {
String json = catalog.otherJSonSchema(name);
- CamelComponent component = getCamelComponent(json, "other");
- if (!component.getDeprecated()) {
+ if(json != null) {
+ CamelComponent component = getCamelComponent(json, "other");
+ if (!component.getDeprecated()) {
list.add(component);
+ }
}
});
diff --git a/src/main/java/org/apache/camel/kameleon/config/ConfigurationResource.java b/src/main/java/org/apache/camel/kameleon/config/ConfigurationResource.java
index e358821..517a68c 100644
--- a/src/main/java/org/apache/camel/kameleon/config/ConfigurationResource.java
+++ b/src/main/java/org/apache/camel/kameleon/config/ConfigurationResource.java
@@ -23,11 +23,11 @@
import org.apache.camel.kameleon.model.KameleonConfiguration;
import org.eclipse.microprofile.config.inject.ConfigProperty;
-import javax.enterprise.event.Observes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Response;
+import jakarta.enterprise.event.Observes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Response;
import java.io.*;
import java.util.stream.Collectors;
diff --git a/src/main/java/org/apache/camel/kameleon/generator/GeneratorResource.java b/src/main/java/org/apache/camel/kameleon/generator/GeneratorResource.java
index 6cbc04a..d0b0eec 100644
--- a/src/main/java/org/apache/camel/kameleon/generator/GeneratorResource.java
+++ b/src/main/java/org/apache/camel/kameleon/generator/GeneratorResource.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.kameleon.generator;
-import javax.inject.Inject;
-import javax.ws.rs.*;
-import javax.ws.rs.core.Response;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.*;
+import jakarta.ws.rs.core.Response;
import java.io.File;
@Path("/generator")
diff --git a/src/main/java/org/apache/camel/kameleon/generator/ProjectGeneratorService.java b/src/main/java/org/apache/camel/kameleon/generator/ProjectGeneratorService.java
index f006692..865b58a 100644
--- a/src/main/java/org/apache/camel/kameleon/generator/ProjectGeneratorService.java
+++ b/src/main/java/org/apache/camel/kameleon/generator/ProjectGeneratorService.java
@@ -32,8 +32,8 @@
import org.apache.maven.shared.invoker.*;
import org.codehaus.plexus.util.xml.Xpp3Dom;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Inject;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/src/main/java/org/apache/camel/kameleon/generator/RestDslGeneratorService.java b/src/main/java/org/apache/camel/kameleon/generator/RestDslGeneratorService.java
index d4dc537..802614f 100644
--- a/src/main/java/org/apache/camel/kameleon/generator/RestDslGeneratorService.java
+++ b/src/main/java/org/apache/camel/kameleon/generator/RestDslGeneratorService.java
@@ -18,15 +18,17 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import io.apicurio.datamodels.Library;
-import io.apicurio.datamodels.openapi.models.OasDocument;
+import io.swagger.v3.oas.models.OpenAPI;
+import io.swagger.v3.parser.OpenAPIV3Parser;
+import io.swagger.v3.parser.core.models.SwaggerParseResult;
import org.apache.camel.CamelContext;
import org.apache.camel.generator.openapi.RestDslGenerator;
-import org.apache.camel.impl.lw.LightweightCamelContext;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
import java.io.FileNotFoundException;
import java.util.Map;
@@ -36,10 +38,11 @@ public class RestDslGeneratorService {
public String generate(String filename, String openapi) throws Exception {
System.out.println(filename);
System.out.println(openapi);
- final JsonNode node = filename.endsWith("json") ? readNodeFromJson(openapi) : readNodeFromYaml(openapi);
- OasDocument document = (OasDocument) Library.readDocument(node);
- try (CamelContext context = new LightweightCamelContext()) {
- return RestDslGenerator.toYaml(document).generate(context, true);
+ SwaggerParseResult result = new OpenAPIV3Parser().readContents(openapi);
+ OpenAPI openAPI = result.getOpenAPI();
+
+ try (CamelContext context = new DefaultCamelContext()) {
+ return RestDslGenerator.toYaml(openAPI).generate(context, true);
}
}
@@ -50,7 +53,7 @@ private JsonNode readNodeFromJson(String openapi) throws Exception {
private JsonNode readNodeFromYaml(String openapi) throws FileNotFoundException {
final ObjectMapper mapper = new ObjectMapper();
- Yaml loader = new Yaml(new SafeConstructor());
+ Yaml loader = new Yaml(new SafeConstructor(new LoaderOptions()));
Map map = loader.load(openapi);
return mapper.convertValue(map, JsonNode.class);
}
diff --git a/src/test/java/org/apache/camel/kameleon/ComponentResourceTest.java b/src/test/java/org/apache/camel/kameleon/ComponentResourceTest.java
index d8d8ad3..ff14d21 100644
--- a/src/test/java/org/apache/camel/kameleon/ComponentResourceTest.java
+++ b/src/test/java/org/apache/camel/kameleon/ComponentResourceTest.java
@@ -20,7 +20,7 @@
import io.restassured.response.Response;
import org.junit.jupiter.api.Test;
-import javax.inject.Inject;
+import jakarta.inject.Inject;
import java.util.HashMap;
import java.util.List;
@@ -34,25 +34,25 @@
@QuarkusTest
public class ComponentResourceTest {
- @Inject
- ConfigurationResource configurationResource;
-
- @Test
- public void testComponents() {
- KameleonConfiguration kc = configurationResource.getKc();
- kc.getTypes().forEach(camelType ->
- camelType.getVersions().forEach(
- camelVersion -> test(camelType.getName(), camelVersion.getName())
- )
- );
- }
-
- private void test(String type, String version){
- Response resp = given()
- .pathParam("type", type)
- .pathParam("version", version)
- .when().get("/component/{type}/{version}")
- .then().extract().response();
+ @Inject
+ ConfigurationResource configurationResource;
+
+ @Test
+ public void testComponents() {
+ KameleonConfiguration kc = configurationResource.getKc();
+ kc.getTypes().forEach(camelType ->
+ camelType.getVersions().forEach(
+ camelVersion -> test(camelType.getName(), camelVersion.getName())
+ )
+ );
+ }
+
+ private void test(String type, String version) {
+ Response resp = given()
+ .pathParam("type", type)
+ .pathParam("version", version)
+ .when().get("/component/{type}/{version}")
+ .then().extract().response();
List> list = resp.getBody().jsonPath().getList("");
Assertions.assertTrue(list.size() > 100);