XMLReaderFactory.createXMLReader Deprecation (#1493)

* remove the resources\datafiles\presets folder as its is being built by the copy-orc-files build script

* Refactored from new Boolean and new Integer to Boolean.valueOf and Integer.valueOf due to deprecation warnings.   Value of is supported in Java 8 (https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html)

* Removed non-atomic updates around deprecation

* updates

* sync

* resolved deprecated xmlreader
This commit is contained in:
thzero 2022-07-04 16:36:57 -05:00 committed by GitHub
parent 30e423064e
commit 08b76e0b7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,6 +11,9 @@ import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
/**
* A "simple SAX" XML reader. This system imposes the limit that an XML element may
@ -18,27 +21,26 @@ import org.xml.sax.helpers.XMLReaderFactory;
* both. This holds true for both the OpenRocket and RockSim design formats and the
* RockSim engine definition format.
* <p>
* The actual handling is performed by subclasses of {@link ElementHandler}. The
* The actual handling is performed by subclasses of {@link ElementHandler}. The
* initial handler is provided to the {@link #readXML(InputSource, ElementHandler, WarningSet)}
* method.
*
*
* @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/
public class SimpleSAX {
static final XMLReaderCache cache = new XMLReaderCache(10);
/**
* Read a simple XML file.
*
*
* @param source the SAX input source.
* @param initialHandler the initial content handler.
* @param warnings a warning set to store warning (cannot be <code>null</code>).
* @throws IOException if an I/O exception occurs while reading.
* @throws SAXException if e.g. malformed XML is encountered.
*/
public static void readXML(InputSource source, ElementHandler initialHandler,
WarningSet warnings) throws IOException, SAXException {
public static void readXML(InputSource source, ElementHandler initialHandler, WarningSet warnings)
throws IOException, SAXException {
DelegatorHandler xmlhandler = new DelegatorHandler(initialHandler, warnings);
@ -55,17 +57,27 @@ public class SimpleSAX {
}
private static class XMLReaderCache {
private final SAXParserFactory parserFactory;
private final BlockingQueue<XMLReader> queue;
private XMLReaderCache( int maxSize ) {
this.queue = new LinkedBlockingQueue<XMLReader>(maxSize);
parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
queue = new LinkedBlockingQueue<XMLReader>(maxSize);
}
private XMLReader createXMLReader() throws SAXException {
XMLReader reader = queue.poll();
if ( reader == null ) {
try {
reader = XMLReaderFactory.createXMLReader();
SAXParser parser = parserFactory.newSAXParser();
reader = parser.getXMLReader();
}
catch (ParserConfigurationException ignore) {
System.out.print(ignore);
}
}
return reader;
}
@ -77,5 +89,4 @@ public class SimpleSAX {
queue.offer( reader );
}
}
}