You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/01/02 19:53:05 UTC
[camel-quarkus] branch master updated: Throw
NoSuchLanguageException if a language cannot be found
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new 7164e1a Throw NoSuchLanguageException if a language cannot be found
new d701f32 Merge pull request #582 from lburgazzoli/language-resolver
7164e1a is described below
commit 7164e1a0c3f1c6ee0948d8e417aaf4e3c33dfc13
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Thu Jan 2 11:51:11 2020 +0100
Throw NoSuchLanguageException if a language cannot be found
---
.../camel/quarkus/core/FastCamelContext.java | 10 +++++++++-
.../apache/camel/quarkus/core/CamelServlet.java | 22 ++++++++++++++++++----
.../org/apache/camel/quarkus/core/CamelTest.java | 6 ++++++
3 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
index fa2a9de..e864c84 100644
--- a/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
+++ b/extensions/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java
@@ -24,6 +24,7 @@ import org.apache.camel.AsyncProcessor;
import org.apache.camel.CamelContext;
import org.apache.camel.Component;
import org.apache.camel.Endpoint;
+import org.apache.camel.NoSuchLanguageException;
import org.apache.camel.PollingConsumer;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
@@ -177,7 +178,14 @@ public class FastCamelContext extends AbstractCamelContext {
// languages are automatically discovered by build steps so we can reduce the
// operations done by the standard resolver by looking them up directly from the
// registry
- return (name, context) -> context.getRegistry().lookupByNameAndType(name, Language.class);
+ return (name, context) -> {
+ Language answer = context.getRegistry().lookupByNameAndType(name, Language.class);
+ if (answer == null) {
+ throw new NoSuchLanguageException(name);
+ }
+
+ return answer;
+ };
}
@Override
diff --git a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
index 25e64fd..9aa932d 100644
--- a/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
+++ b/integration-tests/core/src/main/java/org/apache/camel/quarkus/core/CamelServlet.java
@@ -16,18 +16,18 @@
*/
package org.apache.camel.quarkus.core;
-import java.util.Set;
-
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.json.Json;
import javax.json.JsonObject;
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 org.apache.camel.CamelContext;
+import org.apache.camel.NoSuchLanguageException;
import org.apache.camel.component.log.LogComponent;
import org.apache.camel.spi.Registry;
import org.apache.camel.support.processor.DefaultExchangeFormatter;
@@ -37,6 +37,8 @@ import org.apache.camel.support.processor.DefaultExchangeFormatter;
public class CamelServlet {
@Inject
Registry registry;
+ @Inject
+ CamelContext context;
@Path("/registry/log/exchange-formatter")
@GET
@@ -78,7 +80,19 @@ public class CamelServlet {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String contextVersion() {
- Set<CamelContext> camelContexts = registry.findByType(CamelContext.class);
- return camelContexts.isEmpty() ? "" : camelContexts.iterator().next().getVersion();
+ return context.getVersion();
+ }
+
+ @Path("/language/{name}")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public boolean resolveLanguage(@PathParam("name") String name) {
+ try {
+ context.resolveLanguage(name);
+ } catch (NoSuchLanguageException e) {
+ return false;
+ }
+
+ return true;
}
}
diff --git a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
index e5a9abd..a46c52c 100644
--- a/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
+++ b/integration-tests/core/src/test/java/org/apache/camel/quarkus/core/CamelTest.java
@@ -50,4 +50,10 @@ public class CamelTest {
public void testCamelContextVersion() {
RestAssured.when().get("/test/context/version").then().body(not(""));
}
+
+ @Test
+ public void testResolveLanguages() {
+ RestAssured.when().get("/test/language/simple").then().body(is("true"));
+ RestAssured.when().get("/test/language/undefined").then().body(is("false"));
+ }
}