From 6e3a51d7d413a88f387a89216ee1e587cc05fd58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Pupier?= Date: Wed, 4 Sep 2024 14:37:27 +0200 Subject: [PATCH] Fix when a Java route doesn't have a package name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #6423 Signed-off-by: Aurélien Pupier --- .../deployment/SupportSwaggerProcessor.java | 7 +++-- .../src/main/java/CamelRoute.java | 28 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 integration-tests/openapi-java/src/main/java/CamelRoute.java diff --git a/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java b/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java index 0e8761f33155..9eb882405bad 100644 --- a/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java +++ b/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java @@ -29,8 +29,11 @@ class SupportSwaggerProcessor { void reflectiveClasses(BuildProducer reflectiveClasses, CombinedIndexBuildItem combinedIndex) { IndexView index = combinedIndex.getIndex(); - index.getKnownClasses().stream().filter(ci -> ci.name().packagePrefix().startsWith("io.swagger.models") || - ci.name().packagePrefix().startsWith("io.swagger.v3.oas.models")) + index.getKnownClasses().stream().filter(ci -> { + String packagePrefix = ci.name().packagePrefix(); + return packagePrefix != null + && (packagePrefix.startsWith("io.swagger.models") || packagePrefix.startsWith("io.swagger.v3.oas.models")); + }) .map(ClassInfo::toString) .forEach(name -> reflectiveClasses.produce(ReflectiveClassBuildItem.builder(name).methods().build())); } diff --git a/integration-tests/openapi-java/src/main/java/CamelRoute.java b/integration-tests/openapi-java/src/main/java/CamelRoute.java new file mode 100644 index 000000000000..1ead9eef03b6 --- /dev/null +++ b/integration-tests/openapi-java/src/main/java/CamelRoute.java @@ -0,0 +1,28 @@ +/* + * 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. + */ + +import org.apache.camel.builder.RouteBuilder; + +public class CamelRoute extends RouteBuilder { + + @Override + public void configure() { + from("direct:example-without-package-name") + .id("example-without-package-name") + .log("I'm alive without package name!"); + } +}