You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2015/02/18 23:17:38 UTC

svn commit: r1660743 - /uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java

Author: burn
Date: Wed Feb 18 22:17:37 2015
New Revision: 1660743

URL: http://svn.apache.org/r1660743
Log:
UIMA-4220 If -Duima.framework_impl is specified, check for a similarly-named SAX parser to use in the dd2spring step

Modified:
    uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java

Modified: uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java?rev=1660743&r1=1660742&r2=1660743&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java (original)
+++ uima/uima-as/trunk/uimaj-as-jms/src/main/java/org/apache/uima/adapter/jms/service/Dd2spring.java Wed Feb 18 22:17:37 2015
@@ -23,7 +23,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintStream;
-import java.io.StringWriter;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
@@ -35,14 +34,11 @@ import java.util.List;
 
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.adapter.jms.JmsConstants;
-import org.apache.uima.util.FileUtils;
 import org.apache.uima.util.Level;
 
 public class Dd2spring {
 
-  private static final Class[] mainArg = new Class[] { String[].class };
-
-  private static final Class THIS_CLASS = Dd2spring.class;
+  private static final Class<Dd2spring> THIS_CLASS = Dd2spring.class;
 
   private ClassLoader saxonClassLoader;
   
@@ -131,7 +127,7 @@ public class Dd2spring {
 
       saxonClassLoader = new URLClassLoader(classLoaderUrls, Object.class.getClassLoader());
     }
-    Class mainStartClass = null;
+    Class<?> mainStartClass = null;
     try {
       try {
         mainStartClass = Class.forName("net.sf.saxon.Transform", true, saxonClassLoader);
@@ -146,9 +142,22 @@ public class Dd2spring {
       }
   
       // args for saxon
-      // -l -s deployment_descriptor} -o output_file_path dd2spring.xsl_file_path
+      // -l -s deployment_descriptor} -o output_file_path dd2spring.xsl_file_path <-x sax_parser_class>
+      // If a custom framework includes a custom XML parser we may also need a custom parser for Saxon,
+      // so check for the existence of a class with "_SAXParser" appended to the framework name. 
   
       List<String> argsForSaxon = new ArrayList<String>();
+      String uimaFrameworkClass = System.getProperty("uima.framework_impl");
+      if (uimaFrameworkClass != null) {
+        String saxonParserClass = uimaFrameworkClass + "_SAXParser";
+        try {
+          ClassLoader.getSystemClassLoader().loadClass(saxonParserClass);
+          argsForSaxon.add("-x");
+          argsForSaxon.add(saxonParserClass);
+        } catch (ClassNotFoundException e) {
+          // No parser clkass defined
+        }
+      }
       argsForSaxon.add("-l"); // turn on line numbers
       argsForSaxon.add("-s"); // source file
       argsForSaxon.add(ddFilePath); // source file
@@ -156,13 +165,11 @@ public class Dd2spring {
       argsForSaxon.add(tempFile.getAbsolutePath()); // output file
       argsForSaxon.add(dd2SpringXsltFilePath); // xslt transform to apply
   
-      if (null != System.getProperty("uima-as.dd2spring.noTempQueues")) {
-        argsForSaxon.add("noTempQueues=true"); // disable generate of temp queues (for testing)
-      }
-  
+      UIMAFramework.getLogger(THIS_CLASS).log(Level.INFO, "Saxon args: " + argsForSaxon); 
+      
       Method mainMethod = null;
       try {
-        mainMethod = mainStartClass.getMethod("main", mainArg);
+        mainMethod = mainStartClass.getMethod("main", String[].class);
       } catch (SecurityException e) {
         e.printStackTrace();
         UIMAFramework.getLogger(THIS_CLASS).logrb(Level.CONFIG, THIS_CLASS.getName(),