use of org.apache.camel.Expression in project camel by apache.
the class SimpleParserExpressionTest method testUnaryLenient.
public void testUnaryLenient() throws Exception {
exchange.getIn().setHeader("JMSMessageID", "JMSMessageID-123");
exchange.getIn().setBody("THE MSG ID ${header.JMSMessageID} isA --");
SimpleExpressionParser parser = new SimpleExpressionParser("THE MSG ID ${header.JMSMessageID} isA --", true);
Expression exp = parser.parseExpression();
assertEquals("THE MSG ID JMSMessageID-123 isA --", exp.evaluate(exchange, String.class));
}
use of org.apache.camel.Expression in project camel by apache.
the class SimpleParserExpressionTest method testSimpleSingleQuoteEol.
public void testSimpleSingleQuoteEol() throws Exception {
SimpleExpressionParser parser = new SimpleExpressionParser("'Hello' World", true);
Expression exp = parser.parseExpression();
assertEquals("'Hello' World", exp.evaluate(exchange, String.class));
}
use of org.apache.camel.Expression in project camel by apache.
the class SimpleParserExpressionTest method testSimpleSingleQuoteWithFunction.
public void testSimpleSingleQuoteWithFunction() throws Exception {
exchange.getIn().setBody("World");
SimpleExpressionParser parser = new SimpleExpressionParser("'Hello ${body} how are you?'", true);
Expression exp = parser.parseExpression();
assertEquals("'Hello World how are you?'", exp.evaluate(exchange, String.class));
}
use of org.apache.camel.Expression in project camel by apache.
the class SqlLanguageTest method testExpressionWithHeaderVariable.
@Test
public void testExpressionWithHeaderVariable() throws Exception {
Language language = assertResolveLanguage(getLanguageName());
Expression expression = language.createExpression("SELECT * FROM org.apache.camel.builder.sql.Person where name = :fooHeader");
List<?> value = expression.evaluate(exchange, List.class);
assertEquals("List size", 1, value.size());
for (Object person : value) {
log.info("Found: " + person);
assertEquals("name", "James", ((Person) person).getName());
}
}
use of org.apache.camel.Expression in project camel by apache.
the class BeanInfo method createParameterUnmarshalExpressionForAnnotation.
private Expression createParameterUnmarshalExpressionForAnnotation(Class<?> clazz, Method method, Class<?> parameterType, Annotation annotation) {
if (annotation instanceof AttachmentObjects) {
return ExpressionBuilder.attachmentObjectsExpression();
} else if (annotation instanceof Attachments) {
return ExpressionBuilder.attachmentsExpression();
} else if (annotation instanceof Property) {
Property propertyAnnotation = (Property) annotation;
return ExpressionBuilder.exchangePropertyExpression(propertyAnnotation.value());
} else if (annotation instanceof ExchangeProperty) {
ExchangeProperty propertyAnnotation = (ExchangeProperty) annotation;
return ExpressionBuilder.exchangePropertyExpression(propertyAnnotation.value());
} else if (annotation instanceof Properties) {
return ExpressionBuilder.exchangePropertiesExpression();
} else if (annotation instanceof ExchangeProperties) {
return ExpressionBuilder.exchangePropertiesExpression();
} else if (annotation instanceof Header) {
Header headerAnnotation = (Header) annotation;
return ExpressionBuilder.headerExpression(headerAnnotation.value());
} else if (annotation instanceof Headers) {
return ExpressionBuilder.headersExpression();
} else if (annotation instanceof OutHeaders) {
return ExpressionBuilder.outHeadersExpression();
} else if (annotation instanceof ExchangeException) {
return ExpressionBuilder.exchangeExceptionExpression(CastUtils.cast(parameterType, Exception.class));
} else if (annotation instanceof PropertyInject) {
PropertyInject propertyAnnotation = (PropertyInject) annotation;
Expression inject = ExpressionBuilder.propertiesComponentExpression(propertyAnnotation.value(), null, propertyAnnotation.defaultValue());
return ExpressionBuilder.convertToExpression(inject, parameterType);
} else {
LanguageAnnotation languageAnnotation = annotation.annotationType().getAnnotation(LanguageAnnotation.class);
if (languageAnnotation != null) {
Class<?> type = languageAnnotation.factory();
Object object = camelContext.getInjector().newInstance(type);
if (object instanceof AnnotationExpressionFactory) {
AnnotationExpressionFactory expressionFactory = (AnnotationExpressionFactory) object;
return expressionFactory.createExpression(camelContext, annotation, languageAnnotation, parameterType);
} else {
LOG.warn("Ignoring bad annotation: " + languageAnnotation + "on method: " + method + " which declares a factory: " + type.getName() + " which does not implement " + AnnotationExpressionFactory.class.getName());
}
}
}
return null;
}
Aggregations