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 2019/02/04 14:06:24 UTC

svn commit: r1852917 [2/2] - in /uima/ruta/trunk: ruta-core-ext/src/test/java/org/apache/uima/ruta/type/ ruta-core/src/main/java/org/apache/uima/ruta/descriptor/ ruta-core/src/main/java/org/apache/uima/ruta/engine/ ruta-core/src/main/java/org/apache/ui...

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/quantifier/QuantifierTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/quantifier/QuantifierTest.java?rev=1852917&r1=1852916&r2=1852917&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/quantifier/QuantifierTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/rule/quantifier/QuantifierTest.java Mon Feb  4 14:06:24 2019
@@ -32,44 +32,52 @@ import org.apache.uima.ruta.engine.RutaT
 import org.apache.uima.util.InvalidXMLException;
 import org.junit.Assert;
 import org.junit.Test;
-
+import org.xml.sax.SAXException;
 
 public class QuantifierTest {
-  
+
   @Test
-  public void testRightToLeftMinMaxReluctantToLiteral() throws CASException, ResourceInitializationException, InvalidXMLException,
-          IOException, AnalysisEngineProcessException {
-    
+  public void testRightToLeftMinMaxReluctantToLiteral()
+          throws CASException, ResourceInitializationException, InvalidXMLException, IOException,
+          AnalysisEngineProcessException, SAXException {
+
     JCas jcas = RutaTestUtils.getCAS("a b c d e.").getJCas();
-    Assert.assertEquals("a b c d e.", Ruta.select(jcas, "\"a\" W[0,5]? @PERIOD;").get(0).getCoveredText());
-    Assert.assertEquals("b c d e.", Ruta.select(jcas, "\"b\" W[0,5]? @PERIOD;").get(0).getCoveredText());
-    Assert.assertEquals("c d e.", Ruta.select(jcas, "\"c\" W[0,5]? @PERIOD;").get(0).getCoveredText());
-    Assert.assertEquals("d e.", Ruta.select(jcas, "\"d\" W[0,5]? @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("a b c d e.",
+            Ruta.select(jcas, "\"a\" W[0,5]? @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("b c d e.",
+            Ruta.select(jcas, "\"b\" W[0,5]? @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("c d e.",
+            Ruta.select(jcas, "\"c\" W[0,5]? @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("d e.",
+            Ruta.select(jcas, "\"d\" W[0,5]? @PERIOD;").get(0).getCoveredText());
     Assert.assertEquals("e.", Ruta.select(jcas, "\"e\" W[0,5]? @PERIOD;").get(0).getCoveredText());
-    
+
     jcas.release();
   }
-  
+
   @Test
-  public void testRightToLeftMinMaxGreedyToLiteral() throws CASException, ResourceInitializationException, InvalidXMLException,
-          IOException, AnalysisEngineProcessException {
-    
+  public void testRightToLeftMinMaxGreedyToLiteral()
+          throws CASException, ResourceInitializationException, InvalidXMLException, IOException,
+          AnalysisEngineProcessException, SAXException {
+
     JCas jcas = RutaTestUtils.getCAS("a b c d e.").getJCas();
-    Assert.assertEquals("a b c d e.", Ruta.select(jcas, "\"a\" W[0,4] @PERIOD;").get(0).getCoveredText());
-    Assert.assertEquals("b c d e.", Ruta.select(jcas, "\"b\" W[0,3] @PERIOD;").get(0).getCoveredText());
-    Assert.assertEquals("c d e.", Ruta.select(jcas, "\"c\" W[0,2] @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("a b c d e.",
+            Ruta.select(jcas, "\"a\" W[0,4] @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("b c d e.",
+            Ruta.select(jcas, "\"b\" W[0,3] @PERIOD;").get(0).getCoveredText());
+    Assert.assertEquals("c d e.",
+            Ruta.select(jcas, "\"c\" W[0,2] @PERIOD;").get(0).getCoveredText());
     Assert.assertEquals("d e.", Ruta.select(jcas, "\"d\" W[0,1] @PERIOD;").get(0).getCoveredText());
     Assert.assertEquals("e.", Ruta.select(jcas, "\"e\" W[0,0] @PERIOD;").get(0).getCoveredText());
-    
+
     jcas.release();
   }
-  
+
   @Test
   public void testReluctantGreedyInComposed() throws Exception {
     JCas jcas = RutaTestUtils.getCAS("a B B . a B . a .").getJCas();
     List<Annotation> select = Ruta.select(jcas, "SW (CW+?) PERIOD;");
     Assert.assertEquals(2, select.size());
   }
-  
-  
+
 }

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=1852917&r1=1852916&r2=1852917&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 Feb  4 14:06:24 2019
@@ -24,9 +24,9 @@ import java.io.FileReader;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.uima.internal.util.XMLUtils;
 import org.xml.sax.InputSource;
 import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
 
 public class ConstraintXMLUtils {
 
@@ -46,15 +46,16 @@ 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();
-    xmlReader.setContentHandler(handler);
-    xmlReader.parse(inputSource);
-    return handler.getConstraints();
+
+    try (FileReader reader = new FileReader(location)) {
+
+      InputSource inputSource = new InputSource(reader);
+      ConstraintContentHandler handler = new ConstraintContentHandler();
+      XMLReader xmlReader = XMLUtils.createXMLReader();
+      xmlReader.setContentHandler(handler);
+      xmlReader.parse(inputSource);
+      return handler.getConstraints();
+    }
+
   }
 }

Modified: uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java?rev=1852917&r1=1852916&r2=1852917&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java (original)
+++ uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/AnnotationCheckComposite.java Mon Feb  4 14:06:24 2019
@@ -732,7 +732,7 @@ public class AnnotationCheckComposite ex
       }
       File dataFile = new File(goldFolderLocation, "data.xml");
       try {
-        XMLUtils.write(docs, dataFile);
+        CheckDocumentXMLUtils.write(docs, dataFile);
       } catch (IOException e) {
         RutaAddonsPlugin.error(e);
       }

Added: uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/CheckDocumentXMLUtils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/CheckDocumentXMLUtils.java?rev=1852917&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/CheckDocumentXMLUtils.java (added)
+++ uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/CheckDocumentXMLUtils.java Mon Feb  4 14:06:24 2019
@@ -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.check;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.uima.internal.util.XMLUtils;
+import org.apache.uima.util.FileUtils;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+
+public class CheckDocumentXMLUtils {
+
+  public static void write(List<CheckDocument> docs, File file) throws IOException {
+    StringBuilder sb = new StringBuilder();
+    sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+    sb.append("\n");
+    sb.append("<documents>");
+    sb.append("\n");
+    for (CheckDocument checkDocument : docs) {
+      sb.append(checkDocument.toXML());
+    }
+    sb.append("</documents>");
+    FileUtils.saveString2File(sb.toString(), file, "UTF-8");
+  }
+
+  public static List<CheckDocument> read(File file) throws SAXException, IOException {
+    if (file == null || !file.exists()) {
+      return new ArrayList<CheckDocument>();
+    }
+
+    try (FileReader reader = new FileReader(file)) {
+      InputSource inputSource = new InputSource(reader);
+      CheckDocumentsContentHandler handler = new CheckDocumentsContentHandler();
+      XMLReader xmlReader = XMLUtils.createXMLReader();
+      xmlReader.setContentHandler(handler);
+      xmlReader.parse(inputSource);
+      return handler.getCheckDocuments();
+    }
+  }
+
+}

Modified: uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/UpdateTaskHandler.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/UpdateTaskHandler.java?rev=1852917&r1=1852916&r2=1852917&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/UpdateTaskHandler.java (original)
+++ uima/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/check/UpdateTaskHandler.java Mon Feb  4 14:06:24 2019
@@ -108,7 +108,7 @@ public class UpdateTaskHandler implement
       File dataFile = new File(documentSink, "data.xml");
       List<CheckDocument> docs = new ArrayList<CheckDocument>();
       try {
-        docs = XMLUtils.read(dataFile);
+        docs = CheckDocumentXMLUtils.read(dataFile);
       } catch (SAXException e) {
         RutaAddonsPlugin.error(e);
       } catch (IOException e) {

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=1852917&r1=1852916&r2=1852917&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 Feb  4 14:06:24 2019
@@ -28,9 +28,11 @@ 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.apache.uima.internal.util.XMLUtils;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -90,10 +92,11 @@ public class RutaPageFolder {
     // Do the parsing and obtain the top-level node
     Element config = null;
     try {
-      DocumentBuilder parser = XmlUtils.createDocumentBuilder();
-      parser.setErrorHandler(new DefaultHandler());
-      config = parser.parse(new InputSource(stream)).getDocumentElement();
-    } catch (SAXException e) {
+      DocumentBuilderFactory documentBuilderFactory = XMLUtils.createDocumentBuilderFactory();
+      DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+      builder.setErrorHandler(new DefaultHandler());
+      config = builder.parse(new InputSource(stream)).getDocumentElement();
+    } catch (SAXException | IOException | ParserConfigurationException e) {
       throw new IOException("Bad XML format");
     } finally {
       IOUtils.closeQuietly(stream);

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=1852917&r1=1852916&r2=1852917&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 Feb  4 14:06:24 2019
@@ -33,21 +33,22 @@ 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;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.apache.uima.internal.util.XMLUtils;
 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;
+import org.eclipse.dltk.core.DLTKCore;
 import org.eclipse.dltk.ui.DLTKPluginImages;
 import org.eclipse.dltk.ui.dialogs.TimeTriggeredProgressMonitorDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
@@ -141,8 +142,17 @@ public class RutaPagesLocationsBlock imp
       return null;
 
     // Create the Document and the top-level node
-    DocumentBuilder docBuilder = XmlUtils.createDocumentBuilder();
-    Document doc = docBuilder.newDocument();
+    DocumentBuilderFactory documentBuilderFactory = XMLUtils.createDocumentBuilderFactory();
+    DocumentBuilder builder;
+    try {
+      builder = documentBuilderFactory.newDocumentBuilder();
+    } catch (ParserConfigurationException e) {
+      if (DLTKCore.DEBUG) {
+        e.printStackTrace();
+      }
+      return null;
+    }
+    Document doc = builder.newDocument();
 
     Element topElement = doc.createElement("manPages");
     doc.appendChild(topElement);
@@ -165,9 +175,7 @@ public class RutaPagesLocationsBlock imp
     ByteArrayOutputStream s = new ByteArrayOutputStream();
 
     try {
-      TransformerFactory factory = TransformerFactory.newInstance();
-      factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
-      factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
+      TransformerFactory factory = XMLUtils.createTransformerFactory();
       Transformer transformer = factory.newTransformer();
       transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
       transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
@@ -175,17 +183,19 @@ public class RutaPagesLocationsBlock imp
       DOMSource source = new DOMSource(doc);
       StreamResult outputTarget = new StreamResult(s);
       transformer.transform(source, outputTarget);
-    } catch (TransformerConfigurationException e) {
-      e.printStackTrace();
     } catch (TransformerException e) {
-      e.printStackTrace();
+      if (DLTKCore.DEBUG) {
+        e.printStackTrace();
+      }
     }
 
     String result = null;
     try {
       result = s.toString("UTF8");
     } catch (UnsupportedEncodingException e) {
-      e.printStackTrace();
+      if (DLTKCore.DEBUG) {
+        e.printStackTrace();
+      }
     }
 
     return result;
@@ -193,6 +203,7 @@ public class RutaPagesLocationsBlock imp
 
   private class ManLocationsContentProvider implements ITreeContentProvider {
 
+    @Override
     public Object[] getChildren(Object parentElement) {
       if (parentElement instanceof RutaPageFolder) {
         RutaPageFolder folder = (RutaPageFolder) parentElement;
@@ -208,25 +219,30 @@ public class RutaPagesLocationsBlock imp
       return new Object[0];
     }
 
+    @Override
     public Object getParent(Object element) {
       return null;
     }
 
+    @Override
     public boolean hasChildren(Object element) {
       if (element instanceof RutaPageFolder)
         return true;
       return false;
     }
 
+    @Override
     public Object[] getElements(Object inputElement) {
       if (folders == null)
         return new Object[0];
       return folders.toArray(new Object[folders.size()]);
     }
 
+    @Override
     public void dispose() {
     }
 
+    @Override
     public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
     }
 
@@ -379,6 +395,7 @@ public class RutaPagesLocationsBlock imp
    * @see
    * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
    */
+  @Override
   public void widgetSelected(SelectionEvent e) {
     Object source = e.getSource();
     if (source == fClearButton) {
@@ -410,6 +427,7 @@ public class RutaPagesLocationsBlock imp
    * @seeorg.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.
    * SelectionEvent)
    */
+  @Override
   public void widgetDefaultSelected(SelectionEvent e) {
   }
 
@@ -428,6 +446,7 @@ public class RutaPagesLocationsBlock imp
         ProgressMonitorDialog dialog2 = new TimeTriggeredProgressMonitorDialog(null, 500);
         try {
           dialog2.run(true, true, new IRunnableWithProgress() {
+            @Override
             public void run(IProgressMonitor monitor) {
               monitor.beginTask("Searching for man pages", 1);
               performSearch(file);
@@ -456,6 +475,7 @@ public class RutaPagesLocationsBlock imp
 
     File[] childs = dir.listFiles(new FileFilter() {
 
+      @Override
       public boolean accept(File file) {
         if (file.isDirectory())
           return true;
@@ -519,6 +539,7 @@ public class RutaPagesLocationsBlock imp
    * org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers
    * .SelectionChangedEvent)
    */
+  @Override
   public void selectionChanged(SelectionChangedEvent event) {
     updateButtons();
   }

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=1852917&r1=1852916&r2=1852917&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 Feb  4 14:06:24 2019
@@ -33,10 +33,12 @@ 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.internal.util.XMLUtils;
 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;
@@ -63,6 +65,7 @@ public class DLTKRutaHelper {
     final List elements = new ArrayList();
     final BufferedReader input = new BufferedReader(new InputStreamReader(stream));
     Thread t = new Thread(new Runnable() {
+      @Override
       public void run() {
         try {
           while (true) {
@@ -369,15 +372,12 @@ public class DLTKRutaHelper {
 
   private static Document getDocument(String text) {
     try {
-      DocumentBuilder parser = XmlUtils.createDocumentBuilder();
+      DocumentBuilderFactory documentBuilderFactory = XMLUtils.createDocumentBuilderFactory();
+      DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
       parser.setErrorHandler(new DefaultHandler());
       Document document = parser.parse(new ByteArrayInputStream(text.getBytes()));
       return document;
-    } catch (IOException e) {
-      if (DLTKCore.DEBUG) {
-        e.printStackTrace();
-      }
-    } catch (SAXException e) {
+    } catch (IOException | SAXException | 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=1852917&r1=1852916&r2=1852917&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 Feb  4 14:06:24 2019
@@ -23,9 +23,9 @@ import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -36,8 +36,9 @@ 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;
@@ -45,9 +46,10 @@ import javax.xml.transform.TransformerFa
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 
+import org.apache.commons.io.IOUtils;
+import org.apache.uima.internal.util.XMLUtils;
 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;
@@ -180,19 +182,14 @@ public class PackagesManager {
     File packagesFile = packagesPath.toFile();
     if (packagesFile.exists()) {
       try {
-        DocumentBuilder builder = XmlUtils.createDocumentBuilder();
-        Document document = builder.parse(new BufferedInputStream(
-                new FileInputStream(packagesFile), 2048));
-        populate(document.getDocumentElement());
-      } catch (FileNotFoundException e) {
-        if (DLTKCore.DEBUG) {
-          e.printStackTrace();
-        }
-      } catch (SAXException e) {
-        if (DLTKCore.DEBUG) {
-          e.printStackTrace();
+        DocumentBuilderFactory documentBuilderFactory = XMLUtils.createDocumentBuilderFactory();
+        DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
+        try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(packagesFile),
+                2048)) {
+          Document document = builder.parse(bis);
+          populate(document.getDocumentElement());
         }
-      } catch (IOException e) {
+      } catch (SAXException | IOException | ParserConfigurationException e) {
         if (DLTKCore.DEBUG) {
           e.printStackTrace();
         }
@@ -203,40 +200,31 @@ public class PackagesManager {
   private void save() {
     IPath packagesPath = RutaIdeCorePlugin.getDefault().getStateLocation().append(PACKAGES_FILE);
     File packagesFile = packagesPath.toFile();
-    DocumentBuilder builder;
+
+    OutputStream os = null;
     try {
-      builder = XmlUtils.createDocumentBuilder();
+      DocumentBuilderFactory documentBuilderFactory = XMLUtils.createDocumentBuilderFactory();
+      DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
       Document document = builder.newDocument();
       save(document);
 
-      FileOutputStream fos = new FileOutputStream(packagesFile, false);
-      BufferedOutputStream bos = new BufferedOutputStream(fos, 2048);
+      os = new BufferedOutputStream(new FileOutputStream(packagesFile, false), 2048);
 
-      TransformerFactory serFactory = TransformerFactory.newInstance();
-      serFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
-      serFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
-      Transformer transformer = serFactory.newTransformer();
+      TransformerFactory transformerFactory = XMLUtils.createTransformerFactory();
+      Transformer transformer = transformerFactory.newTransformer();
       transformer.setOutputProperty(OutputKeys.METHOD, "xml"); //$NON-NLS-1$
       transformer.setOutputProperty(OutputKeys.INDENT, "yes"); //$NON-NLS-1$
 
       DOMSource source = new DOMSource(document);
-      StreamResult outputTarget = new StreamResult(bos);
+      StreamResult outputTarget = new StreamResult(os);
       transformer.transform(source, outputTarget);
-      bos.close();
-      fos.close();
 
-    } catch (FileNotFoundException e) {
-      if (DLTKCore.DEBUG) {
-        e.printStackTrace();
-      }
-    } catch (IOException e) {
-      if (DLTKCore.DEBUG) {
-        e.printStackTrace();
-      }
-    } catch (TransformerException e) {
+    } catch (IOException | TransformerException | ParserConfigurationException e) {
       if (DLTKCore.DEBUG) {
         e.printStackTrace();
       }
+    } finally {
+      IOUtils.closeQuietly(os);
     }
   }
 
@@ -464,7 +452,8 @@ public class PackagesManager {
   /**
    * Return all packages paths in one call.
    */
-  public synchronized IPath[] getPathsForPackages(IInterpreterInstall install, Set packagesInBuild) {
+  public synchronized IPath[] getPathsForPackages(IInterpreterInstall install,
+          Set packagesInBuild) {
 
     StringBuffer buf = new StringBuffer();
     String[] pkgs = (String[]) packagesInBuild.toArray(new String[packagesInBuild.size()]);