[ 
https://issues.apache.org/jira/browse/CAMEL-19105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-19105.
---------------------------------
      Assignee: Claus Ibsen
    Resolution: Not A Bug

You need to specify that this is a resource if you want to have content caching 
etc, otherwise its a script that is evaluated each time, something ala:

language:simple:resource:http://localhost:...

> camel-language: contentCache option bypassed when loading script over http
> --------------------------------------------------------------------------
>
>                 Key: CAMEL-19105
>                 URL: https://issues.apache.org/jira/browse/CAMEL-19105
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-language
>    Affects Versions: 3.20.1
>            Reporter: Darren Coleman
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> I set up a route to load a simple script via an HTTP endpoint and, as far as 
> I  can tell, the contentCache option isn't checked. When calling the endpoint 
> {{{}language:simple:[http://localhost:8080/simple]{}}}, the 
> {{LanguageProducer.process()}} method calls directly on 
> {{ResourceHelper.resolveMandatoryResourceAsInputStream()}} ([line 
> 79|https://github.com/apache/camel/blob/camel-3.20.1/components/camel-language/src/main/java/org/apache/camel/component/language/LanguageProducer.java#L79])
>  instead of calling on the endpoint's {{getResourceAsInputStream()}} method 
> that handles the caching.
>  
> The following code sets up a REST endpoint to return a simple script, and the 
> language endpoint is called twice. I would expect the the REST route to log 
> output for the first call only.
>  
> {code:java}
> public class CamelLanguageHttpTest {
>     
>     public static void main(String[] args) throws Exception {
>         CamelContext context = new DefaultCamelContext();
>         context.addRoutes(new RouteBuilder() {
>             @Override
>             public void configure() throws Exception {
>                 restConfiguration().component("netty-http")
>                     .host("localhost").port(8080);
>                 rest("/")
>                     .get("simple").to("direct:simple");
>                 from("direct:simple")
>                     .transform()
>                     .constant("Hello ${body}!").to("stream:out");
>             }
>         });
>         context.start();
>         ProducerTemplate producer = context.createProducerTemplate();
>         String endpoint = "language:simple:http://localhost:8080/simple";;     
>      String result = producer.requestBody(endpoint, "SimpleHttp", 
> String.class);
>         producer.requestBody(endpoint, "SimpleHttp", String.class);
>         
>         context.stop();
>         context.close();
>     }
> }
> // Output:
> // Hello ${body}!
> // Hello ${body}!
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to