diff --git a/pom.xml b/pom.xml
index d49aa9e..8053c67 100644
--- a/pom.xml
+++ b/pom.xml
@@ -140,7 +140,7 @@
2.10.0
- 2.4.0
+ 2.5.0
@@ -170,9 +170,14 @@
1.3.3
- log4j
- log4j
- 1.2.17
+ org.apache.logging.log4j
+ log4j-api
+ 2.17.1
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.17.1
org.apache.opennlp
diff --git a/src/main/java/org/ohnlp/medtagger/ae/AhoCorasickLookupAnnotator.java b/src/main/java/org/ohnlp/medtagger/ae/AhoCorasickLookupAnnotator.java
index e0ce296..71389a5 100644
--- a/src/main/java/org/ohnlp/medtagger/ae/AhoCorasickLookupAnnotator.java
+++ b/src/main/java/org/ohnlp/medtagger/ae/AhoCorasickLookupAnnotator.java
@@ -1,42 +1,33 @@
/*******************************************************************************
- * Copyright: (c) 2013 Mayo Foundation for Medical Education and
+ * Copyright: (c) 2013 Mayo Foundation for Medical Education and
* Research (MFMER). All rights reserved. MAYO, MAYO CLINIC, and the
* triple-shield Mayo logo are trademarks and service marks of MFMER.
- *
- * Except as contained in the copyright notice above, or as used to identify
+ *
+ * Except as contained in the copyright notice above, or as used to identify
* MFMER as the author of this software, the trade names, trademarks, service
* marks, or product names of the copyright holder shall not be used in
* advertising, promotion or otherwise in connection with this software without
* prior written authorization of the copyright holder.
- *
+ *
* Licensed 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
- *
+ *
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*******************************************************************************/
package org.ohnlp.medtagger.ae;
-import java.io.*;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Vector;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.Configurator;
import org.apache.uima.UimaContext;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -44,24 +35,34 @@
import org.apache.uima.jcas.JFSIndexRepository;
import org.apache.uima.resource.ResourceAccessException;
import org.apache.uima.resource.ResourceInitializationException;
-import org.ohnlp.typesystem.type.textspan.Segment;
-import org.ohnlp.typesystem.type.textspan.Sentence;
+import org.ohnlp.medtagger.dict.AhoCorasickDict;
+import org.ohnlp.medtagger.lvg.LvgLookup;
+import org.ohnlp.medtagger.type.ConceptMention;
import org.ohnlp.typesystem.type.syntax.BaseToken;
import org.ohnlp.typesystem.type.syntax.NumToken;
import org.ohnlp.typesystem.type.syntax.PunctuationToken;
import org.ohnlp.typesystem.type.syntax.WordToken;
-import org.ohnlp.medtagger.dict.AhoCorasickDict;
-import org.ohnlp.medtagger.lvg.LvgLookup;
-import org.ohnlp.medtagger.type.ConceptMention;
+import org.ohnlp.typesystem.type.textspan.Segment;
+import org.ohnlp.typesystem.type.textspan.Sentence;
+
+import java.io.*;
+import java.net.URI;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Vector;
/**
* @author Hongfang Liu
*/
public class AhoCorasickLookupAnnotator extends JCasAnnotator_ImplBase {
- // LOG4J logger based on class name
- private Logger logger = Logger.getLogger(getClass().getName());
- private boolean LONGEST = true;
+ // LOG4J logger based on class name
+ private Logger logger = LogManager.getLogger(getClass().getName());
+ private boolean LONGEST = true;
// data structure that stores the TRIE
AhoCorasickDict btac;
@@ -70,11 +71,11 @@ public class AhoCorasickLookupAnnotator extends JCasAnnotator_ImplBase {
// add the path in resources
LvgLookup lvg;
- @Override
- public void initialize(UimaContext aContext)
- throws ResourceInitializationException {
- super.initialize(aContext);
- logger.setLevel(Level.DEBUG);
+ @Override
+ public void initialize(UimaContext aContext)
+ throws ResourceInitializationException {
+ super.initialize(aContext);
+ Configurator.setLevel(logger.getName(), Level.DEBUG);
try {
lvg = new LvgLookup(aContext);
diff --git a/src/main/java/org/ohnlp/medtagger/ae/LineSentenceDetector.java b/src/main/java/org/ohnlp/medtagger/ae/LineSentenceDetector.java
index e48f416..a887da8 100644
--- a/src/main/java/org/ohnlp/medtagger/ae/LineSentenceDetector.java
+++ b/src/main/java/org/ohnlp/medtagger/ae/LineSentenceDetector.java
@@ -27,7 +27,8 @@
import java.util.ArrayList;
import java.util.Iterator;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.jcas.JCas;
@@ -42,7 +43,7 @@
public class LineSentenceDetector extends JCasAnnotator_ImplBase {
- private Logger logger = Logger.getLogger(getClass().getName());
+ private Logger logger = LogManager.getLogger(getClass().getName());
public static final byte CAPS_UNKNOWN = 0;
public static final byte CAPS_NONE = 1;
diff --git a/src/main/java/org/ohnlp/medtagger/ae/Open2OHTokenizer.java b/src/main/java/org/ohnlp/medtagger/ae/Open2OHTokenizer.java
index f6ffead..a7ee91b 100644
--- a/src/main/java/org/ohnlp/medtagger/ae/Open2OHTokenizer.java
+++ b/src/main/java/org/ohnlp/medtagger/ae/Open2OHTokenizer.java
@@ -27,7 +27,8 @@
import java.util.ArrayList;
import java.util.Iterator;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.jcas.JCas;
@@ -42,7 +43,7 @@
public class Open2OHTokenizer extends JCasAnnotator_ImplBase {
- private Logger logger = Logger.getLogger(getClass().getName());
+ private Logger logger = LogManager.getLogger(getClass().getName());
public static final byte CAPS_UNKNOWN = 0;
public static final byte CAPS_NONE = 1;
diff --git a/src/main/java/org/ohnlp/medtagger/dict/AhoCorasickDict.java b/src/main/java/org/ohnlp/medtagger/dict/AhoCorasickDict.java
index 59c307b..e8831af 100644
--- a/src/main/java/org/ohnlp/medtagger/dict/AhoCorasickDict.java
+++ b/src/main/java/org/ohnlp/medtagger/dict/AhoCorasickDict.java
@@ -39,13 +39,14 @@
import java.util.Set;
import java.util.Vector;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
public class AhoCorasickDict {
// LOG4J logger based on class name
- private Logger iv_logger = Logger.getLogger(getClass().getName());
+ private Logger iv_logger = LogManager.getLogger(getClass().getName());
public static final String FAILLINK="_FAIL_";
public static final String SLDELIM="||";
diff --git a/src/main/java/org/ohnlp/medtagger/dict/DictWriter.java b/src/main/java/org/ohnlp/medtagger/dict/DictWriter.java
index a3ae9f1..bf4aa2c 100644
--- a/src/main/java/org/ohnlp/medtagger/dict/DictWriter.java
+++ b/src/main/java/org/ohnlp/medtagger/dict/DictWriter.java
@@ -29,10 +29,14 @@
import java.util.HashSet;
import java.util.Iterator;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.apache.uima.UimaContext;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
-import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
+import org.apache.uima.cas.CAS;
+import org.apache.uima.cas.CASException;
+import org.apache.uima.collection.CasConsumer_ImplBase;
+import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.JFSIndexRepository;
import org.apache.uima.resource.ResourceInitializationException;
@@ -94,6 +98,7 @@ else if(token instanceof PunctuationToken){
pwr.flush();
}
+
@Override
public void destroy() {
super.destroy();
diff --git a/src/main/java/org/ohnlp/medtagger/ie/ae/LineSentenceDetector.java b/src/main/java/org/ohnlp/medtagger/ie/ae/LineSentenceDetector.java
index a3498b8..ae388b3 100644
--- a/src/main/java/org/ohnlp/medtagger/ie/ae/LineSentenceDetector.java
+++ b/src/main/java/org/ohnlp/medtagger/ie/ae/LineSentenceDetector.java
@@ -27,7 +27,8 @@
import java.util.ArrayList;
import java.util.Iterator;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
import org.apache.uima.jcas.JCas;
@@ -42,7 +43,7 @@
public class LineSentenceDetector extends JCasAnnotator_ImplBase {
- private Logger logger = Logger.getLogger(getClass().getName());
+ private Logger logger = LogManager.getLogger(getClass().getName());
public static final byte CAPS_UNKNOWN = 0;
public static final byte CAPS_NONE = 1;
diff --git a/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerDynamicIEAnnotator.java b/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerDynamicIEAnnotator.java
index 64e08b7..056d0bd 100644
--- a/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerDynamicIEAnnotator.java
+++ b/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerDynamicIEAnnotator.java
@@ -24,7 +24,8 @@
package org.ohnlp.medtagger.ie.ae;
import org.apache.commons.lang3.SerializationUtils;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.apache.uima.UimaContext;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.cas.FSIterator;
@@ -60,7 +61,7 @@ public class MedTaggerDynamicIEAnnotator extends JCasAnnotator_ImplBase {
//private Boolean hyphen2space = false;
private Boolean punct2space = false;
- private Logger iv_logger = Logger.getLogger(getClass().getName());
+ private Logger iv_logger = LogManager.getLogger(getClass().getName());
public void initialize(UimaContext aContext)
throws ResourceInitializationException {
diff --git a/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerIEAnnotator.java b/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerIEAnnotator.java
index 3b0ae79..21ef178 100644
--- a/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerIEAnnotator.java
+++ b/src/main/java/org/ohnlp/medtagger/ie/ae/MedTaggerIEAnnotator.java
@@ -23,10 +23,11 @@
*******************************************************************************/
package org.ohnlp.medtagger.ie.ae;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.apache.uima.UimaContext;
+import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.cas.FSIterator;
-import org.apache.uima.fit.component.JCasAnnotator_ImplBase;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.tcas.Annotation;
import org.apache.uima.resource.ResourceInitializationException;
@@ -67,7 +68,7 @@ public class MedTaggerIEAnnotator extends JCasAnnotator_ImplBase {
//private Boolean hyphen2space = false;
private Boolean punct2space = false;
- private Logger iv_logger = Logger.getLogger(getClass().getName());
+ private Logger iv_logger = LogManager.getLogger(getClass().getName());
public ResourceUtilManager rum;
diff --git a/src/main/java/org/ohnlp/medtagger/ie/util/ResourceUtilManager.java b/src/main/java/org/ohnlp/medtagger/ie/util/ResourceUtilManager.java
index 400f78f..5d6149d 100644
--- a/src/main/java/org/ohnlp/medtagger/ie/util/ResourceUtilManager.java
+++ b/src/main/java/org/ohnlp/medtagger/ie/util/ResourceUtilManager.java
@@ -41,7 +41,8 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
/**
@@ -53,7 +54,7 @@ public class ResourceUtilManager implements Serializable {
public transient static String RESOURCEDIR;
private transient static ResourceUtilManager INSTANCE = null;
- private transient Logger iv_logger = Logger.getLogger(getClass().getName());
+ private transient Logger iv_logger = LogManager.getLogger(getClass().getName());
private Pattern regexpPattern = Pattern.compile("(.*)");
private Pattern normPattern = Pattern.compile("^(.*?)\t(.*?)$");
diff --git a/src/main/java/org/ohnlp/medtagger/lvg/LvgLookup.java b/src/main/java/org/ohnlp/medtagger/lvg/LvgLookup.java
index fc519fb..7605c3b 100644
--- a/src/main/java/org/ohnlp/medtagger/lvg/LvgLookup.java
+++ b/src/main/java/org/ohnlp/medtagger/lvg/LvgLookup.java
@@ -32,7 +32,8 @@
import java.util.Iterator;
import java.util.Scanner;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.apache.uima.UimaContext;
import org.apache.uima.analysis_component.JCasAnnotator_ImplBase;
import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
@@ -46,7 +47,7 @@
public class LvgLookup extends JCasAnnotator_ImplBase {
// LOG4J logger based on class name
- private Logger logger = Logger.getLogger("LvgLookup");
+ private Logger logger = LogManager.getLogger("LvgLookup");
HashMap lvgMap;
HashSet openclass;
//private static OpenClassWords pds = new OpenClassWords();
diff --git a/src/main/java/org/ohnlp/medtagger/ml/cr/transShareAnnotation.java b/src/main/java/org/ohnlp/medtagger/ml/cr/transShareAnnotation.java
index 0fd2fa5..85b8e42 100644
--- a/src/main/java/org/ohnlp/medtagger/ml/cr/transShareAnnotation.java
+++ b/src/main/java/org/ohnlp/medtagger/ml/cr/transShareAnnotation.java
@@ -35,6 +35,8 @@
import org.ohnlp.medtagger.ml.type.shareAnnotation;
import org.ohnlp.medtagger.ml.type.shareSlot;
+import javax.xml.XMLConstants;
+import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
@@ -52,10 +54,9 @@ public transShareAnnotation(JCas jcas) {
};
public transShareAnnotation(String str, JCas jcas) {
- SAXParserFactory factory = SAXParserFactory.newInstance();
mjcas = jcas;
try {
- SAXParser saxParser = factory.newSAXParser();
+ SAXParser saxParser = createSaxParser();
saxParser.parse(new ByteArrayInputStream(str.getBytes()), this);
} catch (Throwable t) {
t.printStackTrace();
@@ -63,16 +64,26 @@ public transShareAnnotation(String str, JCas jcas) {
}
public transShareAnnotation(File xmlfile, JCas jcas) {
- SAXParserFactory factory = SAXParserFactory.newInstance();
mjcas=jcas;
try {
- SAXParser saxParser = factory.newSAXParser();
+ SAXParser saxParser = createSaxParser();
saxParser.parse(xmlfile, this);
} catch (Throwable t) {
t.printStackTrace();
}
}
+ private SAXParser createSaxParser() throws ParserConfigurationException, SAXException {
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+ factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+ factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+ SAXParser saxParser = factory.newSAXParser(); // Noncompliant
+ saxParser.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "");
+ saxParser.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "");
+ return saxParser;
+ }
+
// ===========================================================
// SAX DocumentHandler methods
// ===========================================================
diff --git a/src/main/java/org/ohnlp/medtagger/ml/crfsuite/CRFSuiteWrapper.java b/src/main/java/org/ohnlp/medtagger/ml/crfsuite/CRFSuiteWrapper.java
index 8e4c294..c5de668 100644
--- a/src/main/java/org/ohnlp/medtagger/ml/crfsuite/CRFSuiteWrapper.java
+++ b/src/main/java/org/ohnlp/medtagger/ml/crfsuite/CRFSuiteWrapper.java
@@ -39,14 +39,15 @@
import java.util.List;
import java.util.Set;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
import org.ohnlp.medtagger.ml.feature.Feature;
import org.ohnlp.medtagger.ml.util.Executer;
import org.ohnlp.medtagger.ml.util.PlatformDetection;
public class CRFSuiteWrapper {
- private Logger iv_logger = Logger.getLogger(getClass().getName());
+ private Logger iv_logger = LogManager.getLogger(getClass().getName());
private File executable;
public CRFSuiteWrapper() throws Exception {
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
deleted file mode 100644
index a1e29be..0000000
--- a/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-# Log to stdout and stderr
-log4j.rootLogger=INFO, stdout, stderr
-
-# Send TRACE - INFO level to stdout
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Threshold=TRACE
-log4j.appender.stdout.Target=System.out
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.filter.filter1=org.apache.log4j.varia.LevelRangeFilter
-log4j.appender.stdout.filter.filter1.levelMin=TRACE
-log4j.appender.stdout.filter.filter1.levelMax=INFO
-log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
-
-# Send WARN or higher to stderr
-log4j.appender.stderr=org.apache.log4j.ConsoleAppender
-log4j.appender.stderr.Threshold=WARN
-log4j.appender.stderr.Target =System.err
-log4j.appender.stderr.layout=org.apache.log4j.PatternLayout
-log4j.appender.stderr.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
-
-# Change this to set Spark log level
-log4j.logger.org.apache.spark=WARN
-log4j.logger.org.apache.spark.util=ERROR
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..d0dfa6e
--- /dev/null
+++ b/src/main/resources/log4j2.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file