diff options
author | Caolán McNamara <cmc@openoffice.org> | 2010-03-15 13:00:27 +0000 |
---|---|---|
committer | Caolán McNamara <cmc@openoffice.org> | 2010-03-15 13:00:27 +0000 |
commit | 695871957c18544577065488908f86871f470f2a (patch) | |
tree | 7b43e755db2134098e545f1db776857c01e2ced8 /configure.in | |
parent | cmcfixes73: #i110077# silence soltools warnings (diff) | |
download | core-695871957c18544577065488908f86871f470f2a.tar.gz core-695871957c18544577065488908f86871f470f2a.zip |
cmcfixes73: #i110136# detect useless saxon versions
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/configure.in b/configure.in index 6c6033c192bc..8f4356421200 100644 --- a/configure.in +++ b/configure.in @@ -4056,6 +4056,65 @@ if test -n "$with_system_saxon" -o -n "$with_system_libs" && \ [AC_MSG_ERROR(serializer.jar not found.)], []) AC_SUBST(SERIALIZER_JAR) fi + +dnl Saxon comes in two practically available versions, the out-of-date saxonb which +dnl supports the java extensions that OOo uses, and the up-to-date saxon he +dnl "home edition" version, which is crippled to not support those java extensions. +dnl And as an aside the he one also needs to be tweaked to include +dnl a META-INF/services to broadcast that it supports the jaxp transform factory + + AC_MSG_CHECKING([if saxon works]) + cat > saxontest.java <<_ACEOF +[import javax.xml.transform.TransformerFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.stream.StreamSource; +import java.io.*; + +class saxontest { + public static void main(String[] args) { + System.setProperty("javax.xml.transform.TransformerFactory", + "net.sf.saxon.TransformerFactoryImpl"); + try { + TransformerFactory tfactory = TransformerFactory.newInstance(); + System.out.println("TransformerFactory is" + + tfactory.getClass().getName()); + Transformer transformer = tfactory.newTransformer( + new StreamSource(new File(args[0]))); + } catch(Exception e){ + e.printStackTrace(System.err); + System.exit(-1); + } + System.exit(0); + } +} +] +_ACEOF + cat > saxontest.xsl<<_ACEOF +[<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:template match="/"> + <xsl:value-of select="math:sqrt(1)" xmlns:math="java:java.lang.Math"/> + </xsl:template> +</xsl:stylesheet> +] +_ACEOF + javac_cmd="$JAVACOMPILER saxontest.java 1>&2" + AC_TRY_EVAL(javac_cmd) + if test $? = 0 && test -f ./saxontest.class ; then + java_cmd="$JAVAINTERPRETER -cp $SAXON_JAR:. saxontest saxontest.xsl 1>&2" + AC_TRY_EVAL(java_cmd) + if test $? = 0; then + AC_MSG_RESULT([yes]) + else + cat saxontest.java >&5 + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Non-functional saxon jar, e.g. crippled saxon-he instead of saxonb]) + fi + else + AC_MSG_RESULT([no]) + cat saxontest.java >&5 + AC_MSG_ERROR([saxontest could not be compiled, non-functional saxon jar]) + fi else AC_MSG_RESULT([internal]) SYSTEM_SAXON=NO |