[logback-dev] svn commit: r673 - logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran
noreply.ceki at qos.ch
noreply.ceki at qos.ch
Fri Oct 13 17:17:45 CEST 2006
Author: ceki
Date: Fri Oct 13 17:17:45 2006
New Revision: 673
Added:
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/GenericConfigurator.java
Modified:
logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/JoranConfiguratorBase.java
Log:
Added: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/GenericConfigurator.java
==============================================================================
--- (empty file)
+++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/GenericConfigurator.java Fri Oct 13 17:17:45 2006
@@ -0,0 +1,102 @@
+package ch.qos.logback.core.joran;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.List;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.InputSource;
+
+import ch.qos.logback.core.joran.spi.JoranException;
+import ch.qos.logback.core.joran.spi.SaxEvent;
+import ch.qos.logback.core.joran.spi.SaxEventRecorder;
+import ch.qos.logback.core.spi.ContextAwareBase;
+
+public class GenericConfigurator extends ContextAwareBase {
+
+ final public void doConfigure(URL url) throws JoranException {
+ try {
+ InputStream in = url.openStream();
+ doConfigure(in);
+ in.close();
+ } catch (IOException ioe) {
+ String errMsg = "Could not open URL [" + url + "].";
+ addError(errMsg, ioe);
+ throw new JoranException(errMsg, ioe);
+ }
+ }
+
+ final public void doConfigure(String filename) throws JoranException {
+ doConfigure(new File(filename));
+ }
+
+ final public void doConfigure(File file) throws JoranException {
+ FileInputStream fis = null;
+ try {
+ fis = new FileInputStream(file);
+ doConfigure(fis);
+ } catch (IOException ioe) {
+ String errMsg = "Could not open [" + file.getName() + "].";
+ addError(errMsg, ioe);
+ throw new JoranException(errMsg, ioe);
+ } finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ } catch (java.io.IOException ioe) {
+ String errMsg = "Could not close [" + file.getName() + "].";
+ addError(errMsg, ioe);
+ throw new JoranException(errMsg,ioe);
+ }
+ }
+ }
+ }
+
+ final public void doConfigure(InputStream inputStream) throws JoranException {
+ doConfigure(new InputSource(inputStream));
+ }
+
+ List<SaxEvent> recordEvents(InputSource inputSource) throws JoranException {
+ SAXParser saxParser = null;
+ SaxEventRecorder saxEventRecorder = new SaxEventRecorder();
+ try {
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ spf.setValidating(false);
+ spf.setNamespaceAware(true);
+ saxParser = spf.newSAXParser();
+ } catch (Exception pce) {
+ String errMsg = "Parser configuration error occured";
+ addError(errMsg, pce);
+ throw new JoranException(errMsg, pce);
+ }
+
+ try {
+ saxParser.parse(inputSource, saxEventRecorder);
+ return saxEventRecorder.saxEventList;
+
+ } catch (IOException ie) {
+ String errMsg = "I/O error occurred while parsing xml file";
+ addError(errMsg, ie);
+ throw new JoranException(errMsg, ie);
+ } catch (Exception ex) {
+ String errMsg = "Problem parsing XML document. See previously reported errors. Abandoning all further processing.";
+ addError(errMsg, ex);
+ throw new JoranException(errMsg, ex);
+ }
+
+ }
+
+ final public void doConfigure(final InputSource inputSource)
+ throws JoranException {
+
+ List<SaxEvent> saxEventList;
+ saxEventList = recordEvents(inputSource);
+
+ }
+
+}
Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/JoranConfiguratorBase.java
==============================================================================
--- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/JoranConfiguratorBase.java (original)
+++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/joran/JoranConfiguratorBase.java Fri Oct 13 17:17:45 2006
@@ -59,8 +59,7 @@
*/
abstract public class JoranConfiguratorBase extends ContextAwareBase {
Interpreter joranInterpreter;
- boolean listAppnderAttached = false;
-
+
final public void doConfigure(URL url) {
try {
More information about the logback-dev
mailing list