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()]);