You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2017/10/02 13:17:45 UTC

svn commit: r1810350 - in /uima/ruta/trunk: ruta-core/src/main/java/org/apache/uima/ruta/engine/ ruta-core/src/main/java/org/apache/uima/ruta/resource/ ruta-core/src/main/java/org/apache/uima/ruta/utils/ ruta-core/src/test/java/org/apache/uima/ruta/exp...

Author: pkluegl
Date: Mon Oct  2 13:17:44 2017
New Revision: 1810350

URL: http://svn.apache.org/viewvc?rev=1810350&view=rev
Log:
no jira - xml refactoring

Added:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/XmlUtils.java   (with props)
Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/StyleMapFactory.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/MultiTreeWordListPersistence.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java
    uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLUtils.java
    uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/XMLUtils.java
    uima/ruta/trunk/ruta-ep-engine/pom.xml
    uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPageFolder.java
    uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPagesLocationsBlock.java
    uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/DLTKRutaHelper.java
    uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/PackagesManager.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/StyleMapFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/StyleMapFactory.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/StyleMapFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/engine/StyleMapFactory.java Mon Oct  2 13:17:44 2017
@@ -22,7 +22,6 @@ package org.apache.uima.ruta.engine;
 import java.awt.Color;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -31,9 +30,6 @@ import java.util.Map;
 import java.util.StringTokenizer;
 
 import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.FactoryConfigurationError;
-import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.uima.cas.FSIterator;
@@ -41,6 +37,7 @@ import org.apache.uima.cas.FeatureStruct
 import org.apache.uima.cas.Type;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.ruta.type.RutaColoring;
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.apache.uima.tools.stylemap.ColorParser;
 import org.apache.uima.tools.stylemap.StyleMapEntry;
 import org.apache.uima.tools.stylemap.StyleMapXmlParser;
@@ -257,33 +254,13 @@ public class StyleMapFactory {
 
     File styleMapFile = new File(styleFileString);
     Document parse = null;
-    try {
-      DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-      FileInputStream stream = new FileInputStream(styleMapFile);
+   
+    try (FileInputStream stream = new FileInputStream(styleMapFile)) { 
+      DocumentBuilder db = XmlUtils.createDocumentBuilder();
       parse = db.parse(stream);
-      stream.close();
-
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
-      return null;
-
-    } catch (ParserConfigurationException e) {
-      e.printStackTrace();
-      return null;
-
-    } catch (FactoryConfigurationError e) {
-      e.printStackTrace();
-      return null;
-
-    } catch (SAXException e) {
-      e.printStackTrace();
-      return null;
-
-    } catch (IOException e) {
-      e.printStackTrace();
-      return null;
-    }
-
+    } catch (SAXException | IOException e) {
+      throw new IllegalStateException(e);
+    } 
     final Node root = parse.getDocumentElement();
     final NodeList nodeList = root.getChildNodes();
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/MultiTreeWordListPersistence.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/MultiTreeWordListPersistence.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/MultiTreeWordListPersistence.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/MultiTreeWordListPersistence.java Mon Oct  2 13:17:44 2017
@@ -32,10 +32,9 @@ import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
-import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
 
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
@@ -90,18 +89,16 @@ public class MultiTreeWordListPersistenc
       }
       InputStreamReader streamReader = new InputStreamReader(is, encoding);
       TrieXMLEventHandler handler = new TrieXMLEventHandler(root);
-      SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
-      SAXParser saxParser = saxParserFactory.newSAXParser();
+      SAXParser saxParser = XmlUtils.createSaxParser();
       XMLReader reader = saxParser.getXMLReader();
-      // was:
-      // XMLReader reader = XMLReaderFactory.createXMLReader();
+      reader.setFeature("http://xml.org/sax/features/external-general-entities", false);
+      reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+      reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",false);
       reader.setContentHandler(handler);
       reader.setErrorHandler(handler);
       reader.parse(new InputSource(streamReader));
     } catch (SAXException e) {
-      e.printStackTrace();
-    } catch (ParserConfigurationException e) {
-      e.printStackTrace();
+     throw new IllegalStateException(e);
     }
   }
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java Mon Oct  2 13:17:44 2017
@@ -36,9 +36,7 @@ import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
-import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
 
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.uima.cas.FSIterator;
@@ -46,11 +44,11 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.type.RutaBasic;
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.core.io.Resource;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 
 public class TreeWordList implements RutaWordList {
@@ -380,25 +378,16 @@ public class TreeWordList implements Rut
       InputStreamReader streamReader = new InputStreamReader(is, encoding);
       this.root = new TextNode();
       XMLEventHandler handler = new XMLEventHandler(root);
-      SAXParserFactory factory = SAXParserFactory.newInstance();
-      SAXParser parser = factory.newSAXParser();
+      SAXParser parser = XmlUtils.createSaxParser();
       XMLReader reader = parser.getXMLReader();
-      // XMLReader reader = XMLReaderFactory.createXMLReader();
+      reader.setFeature("http://xml.org/sax/features/external-general-entities", false);
+      reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+      reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",false);
       reader.setContentHandler(handler);
       reader.setErrorHandler(handler);
       reader.parse(new InputSource(streamReader));
-    } catch (SAXParseException spe) {
-      StringBuffer sb = new StringBuffer(spe.toString());
-      sb.append("\n  Line number: " + spe.getLineNumber());
-      sb.append("\n Column number: " + spe.getColumnNumber());
-      sb.append("\n Public ID: " + spe.getPublicId());
-      sb.append("\n System ID: " + spe.getSystemId() + "\n");
-      System.out.println(sb.toString());
-    } catch (SAXException se) {
-      System.out.println("loadDOM threw " + se);
-      se.printStackTrace(System.out);
-    } catch (ParserConfigurationException e) {
-      e.printStackTrace();
+    } catch (SAXException  e) {
+     throw new IllegalStateException(e);
     }
   }
 

Added: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/XmlUtils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/XmlUtils.java?rev=1810350&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/XmlUtils.java (added)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/XmlUtils.java Mon Oct  2 13:17:44 2017
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.uima.ruta.utils;
+
+import javax.xml.XMLConstants;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.SAXException;
+
+public final class XmlUtils {
+
+  private XmlUtils() {
+    // nothing here
+  }
+
+  public static DocumentBuilder createDocumentBuilder() {
+    
+    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+    
+    try {
+      
+      documentBuilderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+      return documentBuilderFactory.newDocumentBuilder();
+    } catch (ParserConfigurationException e) {
+      
+      throw new IllegalStateException(e);
+    }
+  }
+
+  public static SAXParser createSaxParser() {
+    
+    SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+    
+    try {
+      
+      saxParserFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+      return saxParserFactory.newSAXParser();
+    } catch (ParserConfigurationException | SAXException e) {
+      
+      throw new IllegalStateException(e);
+    }
+  }
+
+}

Propchange: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/XmlUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java Mon Oct  2 13:17:44 2017
@@ -654,6 +654,9 @@ public class AnnotationLabelExpressionTe
     script += "s1:Struct{IS(PERIOD), s1.a.b -> T8};";
     CAS cas = RutaTestUtils.getCAS(document, typeMap, featureMap);
     Ruta.apply(cas, script);
+    
+    RutaTestUtils.storeCas(cas, "testStackedReinitLazyFeature");
+    
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 1, "Some");
     RutaTestUtils.assertAnnotationsEquals(cas, 2, 1, "Some");
     RutaTestUtils.assertAnnotationsEquals(cas, 3, 1, "Some");

Modified: uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLUtils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLUtils.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLUtils.java (original)
+++ uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLUtils.java Mon Oct  2 13:17:44 2017
@@ -47,6 +47,9 @@ public class ConstraintXMLUtils {
 
   public static List<ConstraintData> readConstraints(String location) throws Exception {
     XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+    xmlReader.setFeature("http://xml.org/sax/features/external-general-entities", false);
+    xmlReader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+    xmlReader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",false);
     FileReader reader = new FileReader(location);
     InputSource inputSource = new InputSource(reader);
     ConstraintContentHandler handler = new ConstraintContentHandler();

Modified: uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/XMLUtils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/XMLUtils.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/XMLUtils.java (original)
+++ uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/XMLUtils.java Mon Oct  2 13:17:44 2017
@@ -51,6 +51,9 @@ public class XMLUtils {
       return new ArrayList<CheckDocument>();
     }
     XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+    xmlReader.setFeature("http://xml.org/sax/features/external-general-entities", false);
+    xmlReader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+    xmlReader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd",false);
     FileReader reader = new FileReader(file);
     InputSource inputSource = new InputSource(reader);
     CheckDocumentsContentHandler handler = new CheckDocumentsContentHandler();

Modified: uima/ruta/trunk/ruta-ep-engine/pom.xml
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-engine/pom.xml?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-engine/pom.xml (original)
+++ uima/ruta/trunk/ruta-ep-engine/pom.xml Mon Oct  2 13:17:44 2017
@@ -279,7 +279,7 @@ licensed under the Common Public License
                   !javax.xml.stream.events, !javax.xml.stream.util,
                   !javax.xml.transform, !javax.xml.transform.sax,
                   !javax.xml.transform.stax,
-                  !javax.xml.ws, !joptsimple, !net.sf.cglib.*, !net.sf.ehcache.*,
+                  !javax.xml.ws, !javax.xml.*, !joptsimple, !net.sf.cglib.*, !net.sf.ehcache.*,
                   !org.antlr.stringtemplate,
                   !org.apache.avalon.framework.logger,
                   !org.apache.log, !org.apache.log4j, !org.apache.log4j.xml,

Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPageFolder.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPageFolder.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPageFolder.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPageFolder.java Mon Oct  2 13:17:44 2017
@@ -28,9 +28,9 @@ import java.util.HashMap;
 import java.util.List;
 
 import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.commons.io.IOUtils;
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -90,16 +90,13 @@ public class RutaPageFolder {
     // Do the parsing and obtain the top-level node
     Element config = null;
     try {
-      DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+      DocumentBuilder parser = XmlUtils.createDocumentBuilder();
       parser.setErrorHandler(new DefaultHandler());
       config = parser.parse(new InputSource(stream)).getDocumentElement();
     } catch (SAXException e) {
       throw new IOException("Bad XML format");
-    } catch (ParserConfigurationException e) {
-      stream.close();
-      throw new IOException("Bad XML format");
     } finally {
-      stream.close();
+      IOUtils.closeQuietly(stream);
     }
 
     if (!config.getNodeName().equalsIgnoreCase("manPages")) {

Modified: uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPagesLocationsBlock.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPagesLocationsBlock.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPagesLocationsBlock.java (original)
+++ uima/ruta/trunk/ruta-ep-ide-ui/src/main/java/org/apache/uima/ruta/ide/ui/documentation/RutaPagesLocationsBlock.java Mon Oct  2 13:17:44 2017
@@ -33,9 +33,8 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerConfigurationException;
@@ -45,6 +44,7 @@ import javax.xml.transform.dom.DOMSource
 import javax.xml.transform.stream.StreamResult;
 
 import org.apache.uima.ruta.ide.ui.RutaPreferenceConstants;
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
@@ -141,14 +141,7 @@ public class RutaPagesLocationsBlock imp
       return null;
 
     // Create the Document and the top-level node
-    DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
-    DocumentBuilder docBuilder;
-    try {
-      docBuilder = dfactory.newDocumentBuilder();
-    } catch (ParserConfigurationException e1) {
-      e1.printStackTrace();
-      return null;
-    }
+    DocumentBuilder docBuilder = XmlUtils.createDocumentBuilder();
     Document doc = docBuilder.newDocument();
 
     Element topElement = doc.createElement("manPages");
@@ -173,8 +166,9 @@ public class RutaPagesLocationsBlock imp
 
     try {
       TransformerFactory factory = TransformerFactory.newInstance();
-      Transformer transformer;
-      transformer = factory.newTransformer();
+      factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
+      factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
+      Transformer transformer = factory.newTransformer();
       transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
       transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
 

Modified: uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/DLTKRutaHelper.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/DLTKRutaHelper.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/DLTKRutaHelper.java (original)
+++ uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/DLTKRutaHelper.java Mon Oct  2 13:17:44 2017
@@ -33,11 +33,10 @@ import java.util.Map;
 import java.util.Set;
 
 import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.uima.ruta.engine.RutaEngine;
 import org.apache.uima.ruta.ide.RutaIdeCorePlugin;
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -370,13 +369,11 @@ public class DLTKRutaHelper {
 
   private static Document getDocument(String text) {
     try {
-      DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+      DocumentBuilder parser = XmlUtils.createDocumentBuilder();
       parser.setErrorHandler(new DefaultHandler());
       Document document = parser.parse(new ByteArrayInputStream(text.getBytes()));
       return document;
     } catch (IOException e) {
-
-    } catch (ParserConfigurationException e) {
       if (DLTKCore.DEBUG) {
         e.printStackTrace();
       }

Modified: uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/PackagesManager.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/PackagesManager.java?rev=1810350&r1=1810349&r2=1810350&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/PackagesManager.java (original)
+++ uima/ruta/trunk/ruta-ep-ide/src/main/java/org/apache/uima/ruta/ide/core/packages/PackagesManager.java Mon Oct  2 13:17:44 2017
@@ -36,9 +36,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.XMLConstants;
 import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.transform.OutputKeys;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
@@ -48,6 +47,7 @@ import javax.xml.transform.stream.Stream
 
 import org.apache.uima.ruta.ide.RutaIdeCorePlugin;
 import org.apache.uima.ruta.ide.core.packages.DLTKRutaHelper.RutaPackage;
+import org.apache.uima.ruta.utils.XmlUtils;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -179,17 +179,11 @@ public class PackagesManager {
     IPath packagesPath = RutaIdeCorePlugin.getDefault().getStateLocation().append(PACKAGES_FILE);
     File packagesFile = packagesPath.toFile();
     if (packagesFile.exists()) {
-      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-      DocumentBuilder builder;
       try {
-        builder = factory.newDocumentBuilder();
+        DocumentBuilder builder = XmlUtils.createDocumentBuilder();
         Document document = builder.parse(new BufferedInputStream(
                 new FileInputStream(packagesFile), 2048));
         populate(document.getDocumentElement());
-      } catch (ParserConfigurationException e) {
-        if (DLTKCore.DEBUG) {
-          e.printStackTrace();
-        }
       } catch (FileNotFoundException e) {
         if (DLTKCore.DEBUG) {
           e.printStackTrace();
@@ -209,10 +203,9 @@ public class PackagesManager {
   private void save() {
     IPath packagesPath = RutaIdeCorePlugin.getDefault().getStateLocation().append(PACKAGES_FILE);
     File packagesFile = packagesPath.toFile();
-    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     DocumentBuilder builder;
     try {
-      builder = factory.newDocumentBuilder();
+      builder = XmlUtils.createDocumentBuilder();
       Document document = builder.newDocument();
       save(document);
 
@@ -220,6 +213,8 @@ public class PackagesManager {
       BufferedOutputStream bos = new BufferedOutputStream(fos, 2048);
 
       TransformerFactory serFactory = TransformerFactory.newInstance();
+      serFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
+      serFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
       Transformer transformer = serFactory.newTransformer();
       transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
       transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
@@ -230,10 +225,6 @@ public class PackagesManager {
       bos.close();
       fos.close();
 
-    } catch (ParserConfigurationException e) {
-      if (DLTKCore.DEBUG) {
-        e.printStackTrace();
-      }
     } catch (FileNotFoundException e) {
       if (DLTKCore.DEBUG) {
         e.printStackTrace();