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"));
+    }
 }