diff --git a/pom.xml b/pom.xml
index 34c375548..631c6e8b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,7 +86,7 @@
UTF-8
yyyy-MM-dd'T'HH:mm:ssZ
- 9.0.0.8
+ 10.0
diff --git a/teamengine-core/pom.xml b/teamengine-core/pom.xml
index c76bcfb1d..5c864d9b6 100644
--- a/teamengine-core/pom.xml
+++ b/teamengine-core/pom.xml
@@ -22,8 +22,8 @@
${project.version}
- org.opengis.cite.saxon
- saxon9
+ net.sf.saxon
+ Saxon-HE
${saxon.version}
diff --git a/teamengine-core/src/main/java/com/occamlab/te/Engine.java b/teamengine-core/src/main/java/com/occamlab/te/Engine.java
index fb8d51514..c72af7c24 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/Engine.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/Engine.java
@@ -32,6 +32,8 @@ C. Heazel (WiSC): Applied mods to address Fortify issues
import net.sf.saxon.Configuration;
import net.sf.saxon.functions.FunctionLibraryList;
+import net.sf.saxon.lib.Feature;
+import net.sf.saxon.lib.TraceListener;
import net.sf.saxon.s9api.DocumentBuilder;
import net.sf.saxon.s9api.Processor;
import net.sf.saxon.s9api.SaxonApiException;
@@ -91,12 +93,12 @@ public Engine() throws Exception {
// Modify its configuration settings
Configuration config = processor.getUnderlyingConfiguration();
- config.setVersionWarning(false);
+ config.setConfigurationProperty(Feature.VERSION_WARNING, Boolean.FALSE);
// Use our custom error listener which reports line numbers in the CTL
// source file
errorListener = new TeErrorListener();
- config.setErrorListener(errorListener);
+ config.setTraceListener((TraceListener) errorListener);
// Create a compiler and document builder
compiler = processor.newXsltCompiler();
@@ -121,7 +123,9 @@ public void addFunctionLibrary(Collection indexes) {
}
liblist.addFunctionLibrary(config.getExtensionBinder("java"));
config.setExtensionBinder("java", liblist);
-
+// JavaExtensionLibrary javaExtensionLibrary = new JavaExtensionLibrary(config);
+// liblist.addFunctionLibrary(javaExtensionLibrary.copy());
+// config.addExtensionBinders(liblist);
}
/**
diff --git a/teamengine-core/src/main/java/com/occamlab/te/Generator.java b/teamengine-core/src/main/java/com/occamlab/te/Generator.java
index f6b383b24..def5a84b4 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/Generator.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/Generator.java
@@ -28,7 +28,7 @@ C. Heazel (WiSC): Added Fortify adjudication changes
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
-import net.sf.saxon.FeatureKeys;
+import net.sf.saxon.lib.Feature;
import net.sf.saxon.s9api.Processor;
import net.sf.saxon.s9api.QName;
import net.sf.saxon.s9api.Serializer;
@@ -88,7 +88,7 @@ public static Index generateXsl(SetupOptions opts) throws Exception {
// Create a transformer to generate executable scripts from CTL sources
Processor processor = new Processor(false);
- processor.setConfigurationProperty(FeatureKeys.LINE_NUMBERING,
+ processor.setConfigurationProperty(Feature.LINE_NUMBERING,
Boolean.TRUE);
XsltCompiler generatorCompiler = processor.newXsltCompiler();
XsltExecutable generatorXsltExecutable = generatorCompiler.compile(
@@ -203,7 +203,7 @@ public static Index generateXsl(SetupOptions opts) throws Exception {
// and is saved to disk. The generator also creates XSL
// template files in the working dir.
generatorTransformer.setSource(ctlSource);
- Serializer generatorSerializer = new Serializer();
+ Serializer generatorSerializer = processor.newSerializer();
generatorSerializer.setOutputFile(indexFile);
generatorTransformer.setDestination(generatorSerializer);
XdmAtomicValue av = new XdmAtomicValue(
diff --git a/teamengine-core/src/main/java/com/occamlab/te/TECore.java b/teamengine-core/src/main/java/com/occamlab/te/TECore.java
index 8a407e27b..2071da898 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/TECore.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/TECore.java
@@ -64,12 +64,13 @@
import com.occamlab.te.form.ImageHandler;
import com.occamlab.te.html.EarlToHtmlTransformation;
+import net.sf.saxon.PreparedStylesheet;
import net.sf.saxon.dom.NodeOverNodeInfo;
import net.sf.saxon.expr.XPathContext;
import net.sf.saxon.expr.XPathContextMajor;
-import net.sf.saxon.instruct.Executable;
import net.sf.saxon.om.NodeInfo;
import net.sf.saxon.s9api.Axis;
+import net.sf.saxon.s9api.Processor;
import net.sf.saxon.s9api.QName;
import net.sf.saxon.s9api.S9APIUtils;
import net.sf.saxon.s9api.SaxonApiException;
@@ -266,8 +267,7 @@ XPathContext getXPathContext(TestEntry test, String sourcesName,
XPathContext context = null;
if (test.usesContext()) {
XsltExecutable xe = engine.loadExecutable(test, sourcesName);
- Executable ex = xe.getUnderlyingCompiledStylesheet()
- .getExecutable();
+ PreparedStylesheet ex = xe.getUnderlyingCompiledStylesheet();
context = new XPathContextMajor(contextNode.getUnderlyingNode(), ex);
}
return context;
@@ -2366,7 +2366,8 @@ public Node form(Document ctlForm, String id) throws Exception {
formTransformer.setParameter(new QName("action"), new XdmAtomicValue(
getTestServletURL()));
StringWriter sw = new StringWriter();
- Serializer serializer = new Serializer();
+ Processor processor = new Processor(false);
+ Serializer serializer = processor.newSerializer();
serializer.setOutputWriter(sw);
serializer.setOutputProperty(Serializer.Property.OMIT_XML_DECLARATION,
"yes");
diff --git a/teamengine-core/src/main/java/com/occamlab/te/saxon/GetTypeFunctionCall.java b/teamengine-core/src/main/java/com/occamlab/te/saxon/GetTypeFunctionCall.java
index 774f4b3e6..bc310a9c3 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/saxon/GetTypeFunctionCall.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/saxon/GetTypeFunctionCall.java
@@ -4,19 +4,21 @@
import javax.xml.namespace.QName;
+import net.sf.saxon.Configuration;
import net.sf.saxon.expr.Expression;
-import net.sf.saxon.expr.ExpressionTool;
import net.sf.saxon.expr.StaticContext;
import net.sf.saxon.expr.XPathContext;
+import net.sf.saxon.expr.parser.ExpressionTool;
+import net.sf.saxon.om.Item;
+import net.sf.saxon.om.Sequence;
import net.sf.saxon.om.SequenceIterator;
+import net.sf.saxon.om.SequenceTool;
import net.sf.saxon.om.StructuredQName;
-import net.sf.saxon.om.ValueRepresentation;
import net.sf.saxon.trans.XPathException;
import net.sf.saxon.type.ItemType;
import net.sf.saxon.type.SchemaType;
import net.sf.saxon.type.TypeHierarchy;
import net.sf.saxon.value.SequenceType;
-import net.sf.saxon.value.Value;
public class GetTypeFunctionCall extends TEFunctionCall {
List params = null;
@@ -37,10 +39,8 @@ public static String getTypeName(ItemType it) throws XPathException {
public SequenceIterator iterate(XPathContext context) throws XPathException {
Expression[] argExpressions = getArguments();
- ValueRepresentation vr = ExpressionTool.lazyEvaluate(argExpressions[0],
- context, 1);
- ItemType it = Value.asValue(vr).getItemType(
- context.getConfiguration().getTypeHierarchy());
+ Sequence sequence = ExpressionTool.lazyEvaluate(argExpressions[0], context, false);
+ ItemType it = SequenceTool.getItemType(sequence, context.getConfiguration().getTypeHierarchy());
String type = getTypeName(it);
Value v = Value.convertJavaObjectToXPath(type,
SequenceType.SINGLE_STRING, context);
diff --git a/teamengine-core/src/main/java/com/occamlab/te/saxon/ObjValue.java b/teamengine-core/src/main/java/com/occamlab/te/saxon/ObjValue.java
index f6f6ef0cd..c519a1d68 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/saxon/ObjValue.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/saxon/ObjValue.java
@@ -1,10 +1,11 @@
package com.occamlab.te.saxon;
+import net.sf.saxon.s9api.XdmItem;
import net.sf.saxon.s9api.XdmValue;
import net.sf.saxon.value.ObjectValue;
public class ObjValue extends XdmValue {
public ObjValue(Object o) {
- super(new ObjectValue(o));
+ super((Iterable extends XdmItem>) new ObjectValue(o));
}
}
diff --git a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionCall.java b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionCall.java
index 17f534bca..3387d1ebc 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionCall.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionCall.java
@@ -1,21 +1,26 @@
package com.occamlab.te.saxon;
import net.sf.saxon.expr.Expression;
-import net.sf.saxon.expr.ExpressionVisitor;
import net.sf.saxon.expr.FunctionCall;
import net.sf.saxon.expr.StaticContext;
import net.sf.saxon.expr.StaticProperty;
+import net.sf.saxon.expr.XPathContext;
+import net.sf.saxon.expr.parser.ExpressionVisitor;
+import net.sf.saxon.expr.parser.RebindingMap;
+import net.sf.saxon.om.Function;
import net.sf.saxon.om.StructuredQName;
import net.sf.saxon.trans.XPathException;
import net.sf.saxon.type.AnyItemType;
import net.sf.saxon.type.ItemType;
-import net.sf.saxon.type.TypeHierarchy;
public class TEFunctionCall extends FunctionCall {
+
+ private StructuredQName functionName;
+
public TEFunctionCall(StructuredQName functionName,
Expression[] staticArgs, StaticContext env) {
super();
- this.setFunctionName(functionName);
+ setFunctionName(functionName);
this.setArguments(staticArgs);
}
@@ -35,12 +40,24 @@ protected void checkArguments(ExpressionVisitor visitor)
protected int computeCardinality() {
return StaticProperty.ALLOWS_ZERO_OR_MORE;
}
-
- public Expression copy() {
+
+ public Expression copy(RebindingMap rebindings) {
throw new UnsupportedOperationException();
}
-
- public ItemType getItemType(TypeHierarchy th) {
+
+ public ItemType getItemType() {
return AnyItemType.getInstance();
}
+
+ public void setFunctionName(StructuredQName fName) {
+ this.functionName = fName;
+ }
+
+ public StructuredQName getFunctionName() {
+ return functionName;
+ }
+
+ public Function getTargetFunction(XPathContext context) throws XPathException {
+ return null;
+ }
}
diff --git a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionLibrary.java b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionLibrary.java
index ef6eea851..f16cf6f9f 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionLibrary.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEFunctionLibrary.java
@@ -6,7 +6,9 @@
import net.sf.saxon.expr.Expression;
import net.sf.saxon.expr.StaticContext;
import net.sf.saxon.functions.FunctionLibrary;
+import net.sf.saxon.om.Function;
import net.sf.saxon.om.StructuredQName;
+import net.sf.saxon.trans.SymbolicName.F;
import net.sf.saxon.trans.XPathException;
import com.occamlab.te.Test;
@@ -24,8 +26,8 @@ public TEFunctionLibrary(Configuration config, Index index) {
public Expression bind(StructuredQName functionName,
Expression[] staticArgs, StaticContext env) throws XPathException {
- if (functionName.getNamespaceURI().equals(Test.TE_NS)
- && functionName.getLocalName().equals("get-type")) {
+ if (functionName.getURI().equals(Test.TE_NS)
+ && functionName.getLocalPart().equals("get-type")) {
return new GetTypeFunctionCall(functionName, staticArgs, env);
}
@@ -74,4 +76,17 @@ public boolean isAvailable(StructuredQName functionName, int arity) {
return false;
}
+ public boolean isAvailable(F functionName) {
+ return false;
+ }
+
+ public Expression bind(F functionName, Expression[] staticArgs,
+ StaticContext env, List reasons) {
+ return null;
+ }
+
+ public Function getFunctionItem(F functionName, StaticContext staticContext)
+ throws XPathException {
+ return null;
+ }
}
diff --git a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEJavaFunctionCall.java b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEJavaFunctionCall.java
index e3d423afe..7b749a14a 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEJavaFunctionCall.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEJavaFunctionCall.java
@@ -3,19 +3,20 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import net.sf.saxon.Configuration;
import net.sf.saxon.Controller;
import net.sf.saxon.expr.Expression;
-import net.sf.saxon.expr.ExpressionTool;
import net.sf.saxon.expr.StaticContext;
import net.sf.saxon.expr.XPathContext;
-import net.sf.saxon.om.EmptyIterator;
+import net.sf.saxon.expr.parser.ExpressionTool;
+import net.sf.saxon.om.Item;
+import net.sf.saxon.om.Sequence;
import net.sf.saxon.om.SequenceIterator;
import net.sf.saxon.om.StructuredQName;
-import net.sf.saxon.om.ValueRepresentation;
import net.sf.saxon.trans.XPathException;
+import net.sf.saxon.tree.iter.EmptyIterator;
import net.sf.saxon.value.ObjectValue;
import net.sf.saxon.value.SequenceType;
-import net.sf.saxon.value.Value;
import com.occamlab.te.TEClassLoader;
import com.occamlab.te.TECore;
@@ -35,8 +36,7 @@ public TEJavaFunctionCall(FunctionEntry fe, StructuredQName functionName,
public SequenceIterator iterate(XPathContext context) throws XPathException {
Controller controller = context.getController();
- ObjectValue ov = (ObjectValue) controller.getParameter("{" + Test.TE_NS
- + "}core");
+ ObjectValue> ov = (ObjectValue>) controller.getParameter(new StructuredQName("", Test.TE_NS, "core"));
TECore core = (TECore) ov.getObject();
TEClassLoader cl = core.getEngine().getClassLoader(
core.getOpts().getSourcesName());
@@ -75,7 +75,7 @@ public SequenceIterator iterate(XPathContext context) throws XPathException {
if (fe.usesContext()) {
m = methods[argExpressions.length + 1];
types = m.getParameterTypes();
- ValueRepresentation vr = context.getContextItem();
+ Item item = context.getContextItem();
javaArgs[0] = Value.asValue(vr).convertToJava(types[0], context);
argsIndex = 1;
} else {
@@ -84,8 +84,8 @@ public SequenceIterator iterate(XPathContext context) throws XPathException {
argsIndex = 0;
}
for (int i = 0; i < argExpressions.length; i++) {
- ValueRepresentation vr = ExpressionTool.lazyEvaluate(
- argExpressions[i], context, 1);
+ Sequence sequence = ExpressionTool.lazyEvaluate(
+ argExpressions[i], context, false);
javaArgs[argsIndex] = Value.asValue(vr).convertToJava(
types[argsIndex], context);
argsIndex++;
diff --git a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEXSLFunctionCall.java b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEXSLFunctionCall.java
index ae72a8453..6999b19e0 100644
--- a/teamengine-core/src/main/java/com/occamlab/te/saxon/TEXSLFunctionCall.java
+++ b/teamengine-core/src/main/java/com/occamlab/te/saxon/TEXSLFunctionCall.java
@@ -11,20 +11,21 @@
import net.sf.saxon.Controller;
import net.sf.saxon.expr.Expression;
-import net.sf.saxon.expr.ExpressionTool;
import net.sf.saxon.expr.StaticContext;
import net.sf.saxon.expr.XPathContext;
-import net.sf.saxon.om.Axis;
-import net.sf.saxon.om.EmptyIterator;
+import net.sf.saxon.expr.parser.ExpressionTool;
+import net.sf.saxon.om.AxisInfo;
+import net.sf.saxon.om.GroundedValue;
import net.sf.saxon.om.NodeInfo;
+import net.sf.saxon.om.Sequence;
import net.sf.saxon.om.SequenceIterator;
+import net.sf.saxon.om.SequenceTool;
import net.sf.saxon.om.StructuredQName;
-import net.sf.saxon.om.ValueRepresentation;
import net.sf.saxon.trans.XPathException;
+import net.sf.saxon.tree.iter.EmptyIterator;
import net.sf.saxon.type.ItemType;
import net.sf.saxon.type.SchemaType;
import net.sf.saxon.value.ObjectValue;
-import net.sf.saxon.value.Value;
import org.w3c.dom.Attr;
import org.w3c.dom.Node;
@@ -45,9 +46,8 @@ public TEXSLFunctionCall(FunctionEntry fe, StructuredQName functionName,
public static String getType(Expression expr, XPathContext context)
throws XPathException {
- ValueRepresentation vr = ExpressionTool.lazyEvaluate(expr, context, 1);
- ItemType it = Value.asValue(vr).getItemType(
- context.getConfiguration().getTypeHierarchy());
+ Sequence sequence = ExpressionTool.lazyEvaluate(expr, context, false);
+ ItemType it = SequenceTool.getItemType(sequence, context.getConfiguration().getTypeHierarchy());
if (it instanceof SchemaType) {
return "xs:" + ((SchemaType) it).getName();
}
@@ -56,8 +56,7 @@ public static String getType(Expression expr, XPathContext context)
public SequenceIterator iterate(XPathContext context) throws XPathException {
Controller controller = context.getController();
- ObjectValue ov = (ObjectValue) controller.getParameter("{" + Test.TE_NS
- + "}core");
+ ObjectValue> ov = (ObjectValue>) controller.getParameter(new StructuredQName("", Test.TE_NS, "core"));
TECore core = (TECore) ov.getObject();
Expression[] argExpressions = getArguments();
@@ -69,7 +68,7 @@ public SequenceIterator iterate(XPathContext context) throws XPathException {
xml += " local-name=\"" + param.getLocalPart() + "\"";
xml += " namespace-uri=\"" + param.getNamespaceURI() + "\"";
xml += " prefix=\"" + param.getPrefix() + "\"";
- ValueRepresentation vr = ExpressionTool.eagerEvaluate(
+ GroundedValue groundValue = ExpressionTool.eagerEvaluate(
argExpressions[i], context);
Value v = Value.asValue(vr);
try {
@@ -122,7 +121,7 @@ public SequenceIterator iterate(XPathContext context) throws XPathException {
if (result == null) {
return EmptyIterator.getInstance();
} else {
- return result.iterateAxis(Axis.CHILD);
+ return result.iterateAxis(AxisInfo.CHILD);
}
}
}
diff --git a/teamengine-core/src/main/java/net/sf/saxon/s9api/S9APIUtils.java b/teamengine-core/src/main/java/net/sf/saxon/s9api/S9APIUtils.java
index cb58b1c3a..afba3b24c 100644
--- a/teamengine-core/src/main/java/net/sf/saxon/s9api/S9APIUtils.java
+++ b/teamengine-core/src/main/java/net/sf/saxon/s9api/S9APIUtils.java
@@ -28,6 +28,6 @@ public static void setTransformerParam(XsltTransformer xt, String param,
public static void setTransformerParam(XsltTransformer xt, QName param,
String value) throws SaxonApiException {
xt.setParameter(param,
- XdmItem.newAtomicValue(value, ItemType.ANY_ATOMIC_VALUE));
+ new XdmAtomicValue(value, ItemType.ANY_ATOMIC_VALUE));
}
}
diff --git a/teamengine-web/src/main/webapp/viewSessionLog.jsp b/teamengine-web/src/main/webapp/viewSessionLog.jsp
index 5745f9586..eb9febd82 100644
--- a/teamengine-web/src/main/webapp/viewSessionLog.jsp
+++ b/teamengine-web/src/main/webapp/viewSessionLog.jsp
@@ -181,10 +181,9 @@ File earlHtml = null;
if(!resDir.exists()){
resDir = new File(userLog.toString() + System.getProperty("file.separator") + sessionId );
}
-if(resDir.exists()){
+earlHtml = new File(resultdir + System.getProperty("file.separator") + "result" + System.getProperty("file.separator") + "index.html");
+if(resDir.exists() && !earlHtml.exists()){
core.earlHtmlReport(resultdir.toString());
-earlHtml = new File(resultdir + System.getProperty("file.separator") + "result" + System.getProperty("file.separator") + "index.html");
-
}
/* if ( htmlReportDir.isDirectory()) { */
%>