1.1 --- a/java/alt2xml-out-xpath/src/cz/frantovo/alt2xml/out/xpath/XPathAction.java Sun Sep 07 00:26:38 2014 +0200
1.2 +++ b/java/alt2xml-out-xpath/src/cz/frantovo/alt2xml/out/xpath/XPathAction.java Sun Sep 07 01:28:07 2014 +0200
1.3 @@ -30,6 +30,7 @@
1.4 import javax.xml.xpath.XPathExpression;
1.5 import javax.xml.xpath.XPathExpressionException;
1.6 import javax.xml.xpath.XPathFactory;
1.7 +import javax.xml.xpath.XPathVariableResolver;
1.8
1.9 /**
1.10 *
1.11 @@ -39,8 +40,10 @@
1.12
1.13 public static final String PARAMETER_TYPED_PARAMETERS = "typed-parameters";
1.14 public static final String PARAMETER_LINE_BREAK = "line-break";
1.15 + public static final String PARAMETER_ENVIRONMENT_VARIABLES = "environment-variables";
1.16 private final boolean typedParameters;
1.17 private final boolean lineBreak;
1.18 + private final boolean environmentVariables;
1.19 private final XPathFactory xpathFactory;
1.20 private final XPath xpath;
1.21 private final String expressionString;
1.22 @@ -59,6 +62,7 @@
1.23
1.24 typedParameters = Boolean.parseBoolean(actionContext.getActionProperties().getProperty(PARAMETER_TYPED_PARAMETERS));
1.25 lineBreak = Boolean.parseBoolean(actionContext.getActionProperties().getProperty(PARAMETER_LINE_BREAK, Boolean.TRUE.toString()));
1.26 + environmentVariables = Boolean.parseBoolean(actionContext.getActionProperties().getProperty(PARAMETER_ENVIRONMENT_VARIABLES, Boolean.FALSE.toString()));
1.27
1.28 Map<String, Object> xpathParameters = new HashMap<>();
1.29
1.30 @@ -69,7 +73,10 @@
1.31 xpathParameters.put(parameterName, parameterValue);
1.32 }
1.33
1.34 - xpath.setXPathVariableResolver(new PropertiesVariableResolver(xpathParameters));
1.35 + XPathVariableResolver cliVariableResolver = new PropertiesVariableResolver(xpathParameters);
1.36 + XPathVariableResolver variableResolver = environmentVariables ? new CompoundVariableResolver(cliVariableResolver, new EnvironmentVariableResolver()) : cliVariableResolver;
1.37 +
1.38 + xpath.setXPathVariableResolver(variableResolver);
1.39
1.40 expressionString = actionData.get(0);
1.41 try {