camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charles Moulliard (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-3802) Simple language and OGNL does not support dots in key name
Date Thu, 24 Mar 2011 21:28:05 GMT

    [ https://issues.apache.org/jira/browse/CAMEL-3802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010934#comment-13010934
] 

Charles Moulliard commented on CAMEL-3802:
------------------------------------------

I suggest that we add a test to check if the first character of the body is a bracket. If
this is the case, than we should no remove the dots from the key value

code to be changed

{code}
    public static Expression headersOgnlExpression(final String ognl) {
        return new ExpressionAdapter() {
            public Object evaluate(Exchange exchange) {
                // try with full name first
                Object header = exchange.getIn().getHeader(ognl);
                if (header != null) {
                    return header;
                }

                // split into first name
                List<String> methods = OgnlHelper.splitOgnl(ognl);
                // remove any OGNL operators so we got the pure key name
                String key = OgnlHelper.removeOperators(methods.get(0));

                header = exchange.getIn().getHeader(key);
                if (header == null) {
                    return null;
                }
                // the remainder is the rest of the ognl without the key
                String remainder = ObjectHelper.after(ognl, key);
                return new MethodCallExpression(header, remainder).evaluate(exchange);
            }

            @Override
            public String toString() {
                return "headerOgnl(" + ognl + ")";
            }
        };
    }
{code}

> Simple language and OGNL does not support dots in key name
> ----------------------------------------------------------
>
>                 Key: CAMEL-3802
>                 URL: https://issues.apache.org/jira/browse/CAMEL-3802
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.6.0
>            Reporter: Charles Moulliard
>            Priority: Minor
>             Fix For: 2.8.0
>
>
> It is not possible in a simple expression to have access to a key of a Map when the key
name contains dots
> ex : <simple>${body[com.fusesource.webinars.persistence.model.Incident]}</simple>
> where com.fusesource.webinars.persistence.model.Incident is the key name
> Camel generates the error :
> {code}
> Caused by: org.apache.camel.component.bean.MethodNotFoundException: Method with name:
[com not found on bean: [{com.fusesource.webinars.persistence.model.Incident=com.fusesource.webinars.persistence.model.Incident@7fec0e19[
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message