use of org.hypertrace.entity.query.service.v1.Expression in project opennms by OpenNMS.
the class IpInterfaceScan method isIpMatching.
protected static boolean isIpMatching(final InetAddress ip, final String expr) {
try {
JexlEngine parser = new JexlEngine();
Expression e = parser.createExpression(generateExpr(expr));
final Map<String, Object> context = new HashMap<String, Object>();
context.put("iplike", IPLike.class);
context.put("ipaddr", ip.getHostAddress());
Boolean out = (Boolean) e.evaluate(new MapContext(context));
return out;
} catch (Exception e) {
LOG.error("Can't process rule '{}' while checking IP {}.", expr, ip, e);
return false;
}
}
use of org.hypertrace.entity.query.service.v1.Expression in project opennms by OpenNMS.
the class JEXL method filter.
@Override
public void filter(RowSortedTable<Long, String, Double> qrAsTable) throws Exception {
// Prepare the JEXL context
final Map<String, Object> jexlValues = Maps.newHashMap();
jexlValues.put("table", qrAsTable);
final JexlContext context = new MapContext(jexlValues);
// Compile the expression
Expression expression = jexl.createExpression(m_expression);
// Evaluate the expression
expression.evaluate(context);
}
use of org.hypertrace.entity.query.service.v1.Expression in project opennms by OpenNMS.
the class JMXMonitor method poll.
/**
* {@inheritDoc}
*/
@Override
public PollStatus poll(MonitoredService svc, Map<String, Object> map) {
final InetAddress ipv4Addr = svc.getAddress();
PollStatus serviceStatus = PollStatus.unavailable();
try {
final Timer timer = new Timer();
final JmxConnectionManager connectionManager = new DefaultConnectionManager(ParameterMap.getKeyedInteger(map, "retry", 3));
final JmxConnectionManager.RetryCallback retryCallback = new JmxConnectionManager.RetryCallback() {
@Override
public void onRetry() {
timer.reset();
}
};
try (JmxServerConnectionWrapper connection = connectionManager.connect(getConnectionName(), ipv4Addr, JmxUtils.convertToStringMap(map), retryCallback)) {
// Start with simple communication
connection.getMBeanServerConnection().getMBeanCount();
// Take time just here to get not influenced by test execution
// time
final long nanoResponseTime = System.nanoTime() - timer.getStartTime();
// Find all variable definitions
final Map<String, Object> variables = Maps.newHashMap();
for (final String key : map.keySet()) {
// Skip fast if it does not start with the prefix
if (!key.startsWith(PARAM_BEAN_PREFIX)) {
continue;
}
// Get the variable name
final String variable = key.substring(PARAM_BEAN_PREFIX.length());
// Get the variable definition
final String definition = ParameterMap.getKeyedString(map, key, null);
// Store wrapper for variable definition
variables.put(variable, ObjectNameWrapper.create(connection.getMBeanServerConnection(), definition));
}
// Find all test definitions
final Map<String, Expression> tests = Maps.newHashMap();
for (final String key : map.keySet()) {
// Skip fast if it does not start with the prefix
if (!key.startsWith(PARAM_TEST_PREFIX)) {
continue;
}
// Get the test name
final String variable = key.substring(PARAM_TEST_PREFIX.length());
// Get the test definition
final String definition = ParameterMap.getKeyedString(map, key, null);
// Build the expression from the definition
final Expression expression = JEXL_ENGINE.createExpression(definition);
// Store expressions
tests.put(variable, expression);
}
// Also handle a single test
if (map.containsKey(PARAM_TEST)) {
// Get the test definition
final String definition = ParameterMap.getKeyedString(map, PARAM_TEST, null);
// Build the expression from the definition
final Expression expression = JEXL_ENGINE.createExpression(definition);
// Store expressions
tests.put(null, expression);
}
// Build the context for all tests
final JexlContext context = new ReadonlyContext(new MapContext(variables));
serviceStatus = PollStatus.up(nanoResponseTime / 1000000.0);
// Execute all tests
for (final Map.Entry<String, Expression> e : tests.entrySet()) {
if (!(boolean) e.getValue().evaluate(context)) {
serviceStatus = PollStatus.down("Test failed: " + e.getKey());
break;
}
}
} catch (JmxServerConnectionException mbse) {
// Number of retries exceeded
String reason = "IOException while polling address: " + ipv4Addr;
LOG.debug(reason);
serviceStatus = PollStatus.unavailable(reason);
}
} catch (Throwable e) {
String reason = "Monitor - failed! " + InetAddressUtils.str(ipv4Addr);
LOG.debug(reason);
serviceStatus = PollStatus.unavailable(reason);
}
return serviceStatus;
}
use of org.hypertrace.entity.query.service.v1.Expression in project drools by kiegroup.
the class DMNEvaluatorCompiler method compileList.
private DMNExpressionEvaluator compileList(DMNCompilerContext ctx, DMNModelImpl model, DMNBaseNode node, String listName, org.kie.dmn.model.v1_1.List expression) {
org.kie.dmn.model.v1_1.List listDef = expression;
DMNListEvaluator listEval = new DMNListEvaluator(node.getName(), node.getSource(), listDef);
for (Expression expr : listDef.getExpression()) {
listEval.addElement(compileExpression(ctx, model, node, listName, expr));
}
return listEval;
}
use of org.hypertrace.entity.query.service.v1.Expression in project kie-wb-common by kiegroup.
the class BindingPropertyConverter method wbFromDMN.
public static Binding wbFromDMN(final org.kie.dmn.model.v1_1.Binding dmn) {
if (dmn == null) {
return null;
}
InformationItem convertedParameter = InformationItemPropertyConverter.wbFromDMN(dmn.getParameter());
Expression convertedExpression = ExpressionPropertyConverter.wbFromDMN(dmn.getExpression());
Binding result = new Binding();
result.setParameter(convertedParameter);
result.setExpression(convertedExpression);
return result;
}
Aggregations