use of org.apache.camel.spi.Language in project camel by apache.
the class SimpleTest method assertExpressionResultInstanceOf.
protected void assertExpressionResultInstanceOf(String expressionText, Class<?> expectedType) {
Language language = assertResolveLanguage(getLanguageName());
Expression expression = language.createExpression(expressionText);
assertNotNull("Cannot assert type when no type is provided", expectedType);
assertNotNull("No Expression could be created for text: " + expressionText + " language: " + language, expression);
Object answer = expression.evaluate(exchange, Object.class);
assertIsInstanceOf(expectedType, answer);
}
use of org.apache.camel.spi.Language in project camel by apache.
the class DefaultCamelContext method resolveLanguage.
// Helper methods
// -----------------------------------------------------------------------
public Language resolveLanguage(String language) {
Language answer;
synchronized (languages) {
answer = languages.get(language);
// check if the language is singleton, if so return the shared instance
if (answer instanceof IsSingleton) {
boolean singleton = ((IsSingleton) answer).isSingleton();
if (singleton) {
return answer;
}
}
// language not known or not singleton, then use resolver
answer = getLanguageResolver().resolveLanguage(language, this);
// inject CamelContext if aware
if (answer != null) {
if (answer instanceof CamelContextAware) {
((CamelContextAware) answer).setCamelContext(this);
}
if (answer instanceof Service) {
try {
startService((Service) answer);
} catch (Exception e) {
throw ObjectHelper.wrapRuntimeCamelException(e);
}
}
languages.put(language, answer);
}
}
return answer;
}
use of org.apache.camel.spi.Language in project camel by apache.
the class ManagedBacklogDebugger method validateConditionalBreakpoint.
public String validateConditionalBreakpoint(String language, String predicate) {
Language lan = null;
try {
lan = camelContext.resolveLanguage(language);
lan.createPredicate(predicate);
return null;
} catch (Exception e) {
if (lan == null) {
return e.getMessage();
} else {
return "Invalid syntax " + predicate + " due: " + e.getMessage();
}
}
}
use of org.apache.camel.spi.Language in project camel by apache.
the class ContextTestSupport method assertPredicate.
/**
* Asserts that the given language name and predicate expression evaluates
* to the expected value on the message exchange
*/
protected void assertPredicate(String languageName, String expressionText, Exchange exchange, boolean expected) {
Language language = assertResolveLanguage(languageName);
Predicate predicate = language.createPredicate(expressionText);
assertNotNull("No Predicate could be created for text: " + expressionText + " language: " + language, predicate);
assertPredicate(predicate, exchange, expected);
}
use of org.apache.camel.spi.Language in project camel by apache.
the class LanguageTestSupport method evaluateExpression.
/**
* Evaluates the expression
*/
protected Object evaluateExpression(String expressionText, String expectedValue) {
Language language = assertResolveLanguage(getLanguageName());
Expression expression = language.createExpression(expressionText);
assertNotNull("No Expression could be created for text: " + expressionText + " language: " + language, expression);
Object value;
if (expectedValue != null) {
value = expression.evaluate(exchange, expectedValue.getClass());
} else {
value = expression.evaluate(exchange, Object.class);
}
log.debug("Evaluated expression: " + expression + " on exchange: " + exchange + " result: " + value);
return value;
}
Aggregations