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

Maciej Prochniak updated CAMEL-2122:
------------------------------------

    Description: 
trying to inject following:
public void insert(@XPath("concat('48','//node/msisdn/text())") String msisdn) 
{ }
results in  
Can not convert #STRING to a NodeList! exception.

The reason is that XPathAnnotationExpressionFactory uses 
XPathBuilder.xpath(xpath); 
and by default xpath is evaluated as nodeSet.

I think it would be nice to be able to define result type in annotation e.g.
@XPath(value = "concat('48','//node/msisdn/text())", resultType = String.class)
The default would be NodeSet to be backward compatible

  was:
trying to inject following:
public void insert(@XPath("concat('48','//node/msisdn/text())") String msisdn) 
{ }

results in  Can not convert #STRING to a NodeList! exception.
The reason is that XPathAnnotationExpressionFactory uses 

XPathBuilder.xpath(xpath); -by default xpath is evaluated as nodeSet.
I think it would be nice to be able to define result type in annotation e.g.
@XPath(value = "concat('48','//node/msisdn/text())", resultType = String.class)

- the default would be NodeSet to be backward compatible


> XPath injection cannot handle expressions returning strings
> -----------------------------------------------------------
>
>                 Key: CAMEL-2122
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2122
>             Project: Apache Camel
>          Issue Type: Bug
>    Affects Versions: 2.0.0
>            Reporter: Maciej Prochniak
>            Priority: Minor
>
> trying to inject following:
> public void insert(@XPath("concat('48','//node/msisdn/text())") String 
> msisdn) { }
> results in  
> Can not convert #STRING to a NodeList! exception.
> The reason is that XPathAnnotationExpressionFactory uses 
> XPathBuilder.xpath(xpath); 
> and by default xpath is evaluated as nodeSet.
> I think it would be nice to be able to define result type in annotation e.g.
> @XPath(value = "concat('48','//node/msisdn/text())", resultType = 
> String.class)
> The default would be NodeSet to be backward compatible

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to