You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2017/10/14 18:05:24 UTC

logging-chainsaw git commit: Fix line endings issues

Repository: logging-chainsaw
Updated Branches:
  refs/heads/master f539452a7 -> 99e527104


Fix line endings issues


Project: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/commit/99e52710
Tree: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/tree/99e52710
Diff: http://git-wip-us.apache.org/repos/asf/logging-chainsaw/diff/99e52710

Branch: refs/heads/master
Commit: 99e527104a665bbd6d1584329f6fa8b6b065b214
Parents: f539452
Author: Matt Sicker <bo...@gmail.com>
Authored: Sat Oct 14 13:05:06 2017 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Sat Oct 14 13:05:06 2017 -0500

----------------------------------------------------------------------
 .../log4j/chainsaw/JTextComponentFormatter.java |  78 +--
 .../log4j/chainsaw/LoggingEventWrapper.java     | 380 ++++++------
 .../chainsaw/receivers/VisualReceiver.java      |  78 +--
 .../org/apache/log4j/helpers/Constants.java     | 260 ++++----
 .../apache/log4j/xml/LogFileXMLReceiver.java    | 620 +++++++++----------
 5 files changed, 708 insertions(+), 708 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/99e52710/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java b/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
index 6039047..89ad68a 100644
--- a/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
+++ b/src/main/java/org/apache/log4j/chainsaw/JTextComponentFormatter.java
@@ -1,39 +1,39 @@
-/*
- * 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.log4j.chainsaw;
-
-import java.awt.Font;
-
-import javax.swing.UIManager;
-import javax.swing.text.Document;
-import javax.swing.text.JTextComponent;
-import javax.swing.text.html.HTMLDocument;
-
-/**
- * Apply system font and size (normal size + 1) rule if the JEditorPane document contains html.
- */
-public class JTextComponentFormatter
-{
-    public static void applySystemFontAndSize(JTextComponent textComponent) {
-        Document document = textComponent.getDocument();
-        if (document instanceof HTMLDocument) {
-          Font font = UIManager.getFont("Label.font");
-          String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
-          ((HTMLDocument)document).getStyleSheet().addRule(bodyRule);
-        }
-    }
-}
+/*
+ * 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.log4j.chainsaw;
+
+import java.awt.Font;
+
+import javax.swing.UIManager;
+import javax.swing.text.Document;
+import javax.swing.text.JTextComponent;
+import javax.swing.text.html.HTMLDocument;
+
+/**
+ * Apply system font and size (normal size + 1) rule if the JEditorPane document contains html.
+ */
+public class JTextComponentFormatter
+{
+    public static void applySystemFontAndSize(JTextComponent textComponent) {
+        Document document = textComponent.getDocument();
+        if (document instanceof HTMLDocument) {
+          Font font = UIManager.getFont("Label.font");
+          String bodyRule = "body { font-family: " + font.getFamily() + "; font-size: " + (font.getSize() + 1) + "pt; }";
+          ((HTMLDocument)document).getStyleSheet().addRule(bodyRule);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/99e52710/src/main/java/org/apache/log4j/chainsaw/LoggingEventWrapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/LoggingEventWrapper.java b/src/main/java/org/apache/log4j/chainsaw/LoggingEventWrapper.java
index 30429a3..63363a3 100644
--- a/src/main/java/org/apache/log4j/chainsaw/LoggingEventWrapper.java
+++ b/src/main/java/org/apache/log4j/chainsaw/LoggingEventWrapper.java
@@ -1,190 +1,190 @@
-/*
- * 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.log4j.chainsaw;
-
-import java.awt.Color;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.log4j.helpers.Constants;
-import org.apache.log4j.rule.Rule;
-import org.apache.log4j.spi.LoggingEvent;
-
-/**
- * Wrap access to a LoggingEvent.  All property updates need to go through this object and not through the wrapped logging event,
- * since the properties are shared by two views of the same backing LoggingEvent, and loggingEvent itself creates a copy of passed-in properties..
- *
- * Property reads can be made on the actual LoggingEvent.
- */
-public class LoggingEventWrapper {
-  private final LoggingEvent loggingEvent;
-  private static final int DEFAULT_HEIGHT = -1;
-
-  private Color colorRuleBackground = ChainsawConstants.COLOR_DEFAULT_BACKGROUND;
-  private Color colorRuleForeground = ChainsawConstants.COLOR_DEFAULT_FOREGROUND;
-  private int markerHeight = DEFAULT_HEIGHT;
-  private int msgHeight = DEFAULT_HEIGHT;
-
-  //set to the log4jid value via setId - assumed to never change
-  private int id;
-
-  private boolean searchMatch = false;
-  //a Map of event fields to Sets of string matches (can be used to render matches differently)
-  Map eventMatches = new HashMap();
-  private LoggingEventWrapper syncWrapper;
-  private boolean displayed;
-
-  public LoggingEventWrapper(LoggingEvent loggingEvent) {
-    this.loggingEvent = loggingEvent;
-  }
-
-  public LoggingEventWrapper(LoggingEventWrapper loggingEventWrapper) {
-    this.loggingEvent = loggingEventWrapper.getLoggingEvent();
-    this.id = loggingEventWrapper.id;
-    this.syncWrapper = loggingEventWrapper;
-    loggingEventWrapper.syncWrapper = this;
-  }
-
-  public LoggingEvent getLoggingEvent() {
-    return loggingEvent;
-  }
-
-  public void setProperty(String propName, String propValue) {
-    loggingEvent.setProperty(propName, propValue);
-    if (id == 0 && propName.equals(Constants.LOG4J_ID_KEY)) {
-      id = Integer.parseInt(propValue);
-    }
-    if (syncWrapper != null && !propName.equals(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE)) {
-      syncWrapper.getLoggingEvent().setProperty(propName, propValue);
-    }
-  }
-
-  public Object removeProperty(String propName) {
-    Object result = loggingEvent.removeProperty(propName);
-    if (syncWrapper != null && !propName.equals(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE)) {
-      syncWrapper.getLoggingEvent().removeProperty(propName);
-    }
-    return result;
-  }
-
-  public Set getPropertyKeySet() {
-    return loggingEvent.getPropertyKeySet();
-  }
-
-  public void updateColorRuleColors(Color backgroundColor, Color foregroundColor) {
-    if (backgroundColor != null && foregroundColor != null) {
-      this.colorRuleBackground = backgroundColor;
-      this.colorRuleForeground = foregroundColor;
-      if (syncWrapper != null) {
-        syncWrapper.colorRuleBackground = this.colorRuleBackground;
-        syncWrapper.colorRuleForeground = this.colorRuleForeground;
-      }
-    } else {
-      this.colorRuleBackground = ChainsawConstants.COLOR_DEFAULT_BACKGROUND;
-      this.colorRuleForeground = ChainsawConstants.COLOR_DEFAULT_FOREGROUND;
-      if (syncWrapper != null) {
-        syncWrapper.colorRuleBackground = this.colorRuleBackground;
-        syncWrapper.colorRuleForeground = this.colorRuleForeground;
-      }
-    }
-  }
-
-  public void evaluateSearchRule(Rule searchRule) {
-    eventMatches.clear();
-    searchMatch = searchRule != null && searchRule.evaluate(loggingEvent, eventMatches);
-  }
-
-  public Map getSearchMatches() {
-    return eventMatches;
-  }
-
-  public Color getForeground() {
-    return colorRuleForeground;
-  }
-
-  public Color getBackground() {
-    return colorRuleBackground;
-  }
-
-  public Color getColorRuleBackground() {
-    return colorRuleBackground;
-  }
-
-  public Color getColorRuleForeground() {
-    return colorRuleForeground;
-  }
-
-  public boolean isSearchMatch() {
-    return searchMatch;
-  }
-
-  public void setMarkerHeight(int markerHeight) {
-    this.markerHeight = markerHeight;
-  }
-
-  public int getMarkerHeight() {
-    return markerHeight;
-  }
-
-  public void setMsgHeight(int msgHeight) {
-    this.msgHeight = msgHeight;
-  }
-
-  public int getMsgHeight() {
-    return msgHeight;
-  }
-
-  public void setDisplayed(boolean b) {
-    markerHeight = DEFAULT_HEIGHT;
-    msgHeight = DEFAULT_HEIGHT;
-    displayed = b;
-  }
-
-  public void setPreviousDisplayedEventTimestamp(long previousDisplayedEventTimeStamp) {
-    setProperty(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE, String.valueOf(loggingEvent.getTimeStamp() - previousDisplayedEventTimeStamp));
-  }
-
-  public boolean isDisplayed() {
-    return displayed;
-  }
-
-  public boolean equals(Object o) {
-    if (this == o) {
-      return true;
-    }
-    if (o == null || getClass() != o.getClass()) {
-      return false;
-    }
-
-    LoggingEventWrapper that = (LoggingEventWrapper) o;
-
-    if (id != that.id) {
-      return false;
-    }
-
-    return true;
-  }
-
-  public int hashCode() {
-    return id;
-  }
-
-  public String toString() {
-    return "LoggingEventWrapper - id: " + id + " background: " + getBackground() + ", foreground: " + getForeground() + ", msg: " + loggingEvent.getMessage();
-  }
-}
+/*
+ * 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.log4j.chainsaw;
+
+import java.awt.Color;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.helpers.Constants;
+import org.apache.log4j.rule.Rule;
+import org.apache.log4j.spi.LoggingEvent;
+
+/**
+ * Wrap access to a LoggingEvent.  All property updates need to go through this object and not through the wrapped logging event,
+ * since the properties are shared by two views of the same backing LoggingEvent, and loggingEvent itself creates a copy of passed-in properties..
+ *
+ * Property reads can be made on the actual LoggingEvent.
+ */
+public class LoggingEventWrapper {
+  private final LoggingEvent loggingEvent;
+  private static final int DEFAULT_HEIGHT = -1;
+
+  private Color colorRuleBackground = ChainsawConstants.COLOR_DEFAULT_BACKGROUND;
+  private Color colorRuleForeground = ChainsawConstants.COLOR_DEFAULT_FOREGROUND;
+  private int markerHeight = DEFAULT_HEIGHT;
+  private int msgHeight = DEFAULT_HEIGHT;
+
+  //set to the log4jid value via setId - assumed to never change
+  private int id;
+
+  private boolean searchMatch = false;
+  //a Map of event fields to Sets of string matches (can be used to render matches differently)
+  Map eventMatches = new HashMap();
+  private LoggingEventWrapper syncWrapper;
+  private boolean displayed;
+
+  public LoggingEventWrapper(LoggingEvent loggingEvent) {
+    this.loggingEvent = loggingEvent;
+  }
+
+  public LoggingEventWrapper(LoggingEventWrapper loggingEventWrapper) {
+    this.loggingEvent = loggingEventWrapper.getLoggingEvent();
+    this.id = loggingEventWrapper.id;
+    this.syncWrapper = loggingEventWrapper;
+    loggingEventWrapper.syncWrapper = this;
+  }
+
+  public LoggingEvent getLoggingEvent() {
+    return loggingEvent;
+  }
+
+  public void setProperty(String propName, String propValue) {
+    loggingEvent.setProperty(propName, propValue);
+    if (id == 0 && propName.equals(Constants.LOG4J_ID_KEY)) {
+      id = Integer.parseInt(propValue);
+    }
+    if (syncWrapper != null && !propName.equals(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE)) {
+      syncWrapper.getLoggingEvent().setProperty(propName, propValue);
+    }
+  }
+
+  public Object removeProperty(String propName) {
+    Object result = loggingEvent.removeProperty(propName);
+    if (syncWrapper != null && !propName.equals(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE)) {
+      syncWrapper.getLoggingEvent().removeProperty(propName);
+    }
+    return result;
+  }
+
+  public Set getPropertyKeySet() {
+    return loggingEvent.getPropertyKeySet();
+  }
+
+  public void updateColorRuleColors(Color backgroundColor, Color foregroundColor) {
+    if (backgroundColor != null && foregroundColor != null) {
+      this.colorRuleBackground = backgroundColor;
+      this.colorRuleForeground = foregroundColor;
+      if (syncWrapper != null) {
+        syncWrapper.colorRuleBackground = this.colorRuleBackground;
+        syncWrapper.colorRuleForeground = this.colorRuleForeground;
+      }
+    } else {
+      this.colorRuleBackground = ChainsawConstants.COLOR_DEFAULT_BACKGROUND;
+      this.colorRuleForeground = ChainsawConstants.COLOR_DEFAULT_FOREGROUND;
+      if (syncWrapper != null) {
+        syncWrapper.colorRuleBackground = this.colorRuleBackground;
+        syncWrapper.colorRuleForeground = this.colorRuleForeground;
+      }
+    }
+  }
+
+  public void evaluateSearchRule(Rule searchRule) {
+    eventMatches.clear();
+    searchMatch = searchRule != null && searchRule.evaluate(loggingEvent, eventMatches);
+  }
+
+  public Map getSearchMatches() {
+    return eventMatches;
+  }
+
+  public Color getForeground() {
+    return colorRuleForeground;
+  }
+
+  public Color getBackground() {
+    return colorRuleBackground;
+  }
+
+  public Color getColorRuleBackground() {
+    return colorRuleBackground;
+  }
+
+  public Color getColorRuleForeground() {
+    return colorRuleForeground;
+  }
+
+  public boolean isSearchMatch() {
+    return searchMatch;
+  }
+
+  public void setMarkerHeight(int markerHeight) {
+    this.markerHeight = markerHeight;
+  }
+
+  public int getMarkerHeight() {
+    return markerHeight;
+  }
+
+  public void setMsgHeight(int msgHeight) {
+    this.msgHeight = msgHeight;
+  }
+
+  public int getMsgHeight() {
+    return msgHeight;
+  }
+
+  public void setDisplayed(boolean b) {
+    markerHeight = DEFAULT_HEIGHT;
+    msgHeight = DEFAULT_HEIGHT;
+    displayed = b;
+  }
+
+  public void setPreviousDisplayedEventTimestamp(long previousDisplayedEventTimeStamp) {
+    setProperty(ChainsawConstants.MILLIS_DELTA_COL_NAME_LOWERCASE, String.valueOf(loggingEvent.getTimeStamp() - previousDisplayedEventTimeStamp));
+  }
+
+  public boolean isDisplayed() {
+    return displayed;
+  }
+
+  public boolean equals(Object o) {
+    if (this == o) {
+      return true;
+    }
+    if (o == null || getClass() != o.getClass()) {
+      return false;
+    }
+
+    LoggingEventWrapper that = (LoggingEventWrapper) o;
+
+    if (id != that.id) {
+      return false;
+    }
+
+    return true;
+  }
+
+  public int hashCode() {
+    return id;
+  }
+
+  public String toString() {
+    return "LoggingEventWrapper - id: " + id + " background: " + getBackground() + ", foreground: " + getForeground() + ", msg: " + loggingEvent.getMessage();
+  }
+}

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/99e52710/src/main/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java b/src/main/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
index d5e2be7..29ffd31 100644
--- a/src/main/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
+++ b/src/main/java/org/apache/log4j/chainsaw/receivers/VisualReceiver.java
@@ -1,39 +1,39 @@
-/*
- * Copyright 1999,2004 The Apache Software Foundation.
- * 
- * 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
- * 
- * 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.log4j.chainsaw.receivers;
-
-import java.awt.Container;
-
-/**
- * If a receiver has a visual component, implement this interface and Chainsaw will call 
- * 'setContainer' passing in a container that the receiver can use.
- * <p>
- * For example, VFSLogFilePatternReceiver provides an optional 'promptForUserInfo', that
- * when set to true, will allow a login dialog to be displayed on top of the Chainsaw window.
- * 
- * @author Scott Deboy&lt;sdeboy@apache.org&gt;
- *
- */
-
-public interface VisualReceiver {
-	/**
-	 * Provides access to a container.
-	 * 
-	 * @param container
-	 */
-	void setContainer(Container container);
-}
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ * 
+ * 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
+ * 
+ * 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.log4j.chainsaw.receivers;
+
+import java.awt.Container;
+
+/**
+ * If a receiver has a visual component, implement this interface and Chainsaw will call 
+ * 'setContainer' passing in a container that the receiver can use.
+ * <p>
+ * For example, VFSLogFilePatternReceiver provides an optional 'promptForUserInfo', that
+ * when set to true, will allow a login dialog to be displayed on top of the Chainsaw window.
+ * 
+ * @author Scott Deboy&lt;sdeboy@apache.org&gt;
+ *
+ */
+
+public interface VisualReceiver {
+	/**
+	 * Provides access to a container.
+	 * 
+	 * @param container
+	 */
+	void setContainer(Container container);
+}

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/99e52710/src/main/java/org/apache/log4j/helpers/Constants.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/helpers/Constants.java b/src/main/java/org/apache/log4j/helpers/Constants.java
index 2e181fa..82b06c7 100644
--- a/src/main/java/org/apache/log4j/helpers/Constants.java
+++ b/src/main/java/org/apache/log4j/helpers/Constants.java
@@ -1,130 +1,130 @@
-/*
- * 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.log4j.helpers;
-
-
-/**
- * Constants used internally throughout log4j.
- *
- */
-public interface Constants {
-
-    /**
-     * log4j package name string literal.
-     */
-  String LOG4J_PACKAGE_NAME = "org.apache.log4j";
-
-  /**
-   *  The name of the default repository is "default" (without the quotes).
-   */
-  String DEFAULT_REPOSITORY_NAME  = "default";
-
-    /**
-     * application string literal.
-     */
-  String APPLICATION_KEY = "application";
-    /**
-     * hostname string literal.
-     */
-  String HOSTNAME_KEY = "hostname";
-    /**
-     * receiver string literal.
-     */
-  String RECEIVER_NAME_KEY = "receiver";
-    /**
-     * group string literal.
-     */
-  String GROUP_KEY = "group";
-    /**
-     * log4jid string literal.
-     */
-  String LOG4J_ID_KEY = "log4jid";
-    /**
-     * time stamp pattern string literal.
-     */
-  String TIMESTAMP_RULE_FORMAT = "yyyy/MM/dd HH:mm:ss";
-
-  /**
-   * The default property file name for automatic configuration.
-   */
-  String DEFAULT_CONFIGURATION_FILE = "log4j.properties";
-  /**
-   * The default XML configuration file name for automatic configuration.
-   */
-  String DEFAULT_XML_CONFIGURATION_FILE = "log4j.xml";
-    /**
-     * log4j.configuration string literal.
-     */
-  String DEFAULT_CONFIGURATION_KEY = "log4j.configuration";
-    /**
-     * log4j.configuratorClass string literal.
-     */
-  String CONFIGURATOR_CLASS_KEY = "log4j.configuratorClass";
-
-    /**
-     * JNDI context name string literal.
-     */
-  String JNDI_CONTEXT_NAME = "java:comp/env/log4j/context-name";
-
-    /**
-     * TEMP_LIST_APPENDER string literal.
-     */
-  String TEMP_LIST_APPENDER_NAME = "TEMP_LIST_APPENDER";
-    /**
-     * TEMP_CONSOLE_APPENDER string literal.
-     */
-  String TEMP_CONSOLE_APPENDER_NAME = "TEMP_CONSOLE_APPENDER";
-    /**
-     * Codes URL string literal.
-     */
-  String CODES_HREF =
-          "http://logging.apache.org/log4j/docs/codes.html";
-
-
-    /**
-     * ABSOLUTE string literal.
-     */
-  String ABSOLUTE_FORMAT = "ABSOLUTE";
-    /**
-     * SimpleTimePattern for ABSOLUTE.
-     */
-  String ABSOLUTE_TIME_PATTERN = "HH:mm:ss,SSS";
-
-    /**
-     * SimpleTimePattern for ABSOLUTE.
-     */
-  String SIMPLE_TIME_PATTERN = "HH:mm:ss";
-
-    /**
-     * DATE string literal.
-     */
-  String DATE_AND_TIME_FORMAT = "DATE";
-    /**
-     * SimpleTimePattern for DATE.
-     */
-  String DATE_AND_TIME_PATTERN = "dd MMM yyyy HH:mm:ss,SSS";
-
-    /**
-     * ISO8601 string literal.
-     */
-  String ISO8601_FORMAT = "ISO8601";
-    /**
-     * SimpleTimePattern for ISO8601.
-     */
-  String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS";
-}
+/*
+ * 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.log4j.helpers;
+
+
+/**
+ * Constants used internally throughout log4j.
+ *
+ */
+public interface Constants {
+
+    /**
+     * log4j package name string literal.
+     */
+  String LOG4J_PACKAGE_NAME = "org.apache.log4j";
+
+  /**
+   *  The name of the default repository is "default" (without the quotes).
+   */
+  String DEFAULT_REPOSITORY_NAME  = "default";
+
+    /**
+     * application string literal.
+     */
+  String APPLICATION_KEY = "application";
+    /**
+     * hostname string literal.
+     */
+  String HOSTNAME_KEY = "hostname";
+    /**
+     * receiver string literal.
+     */
+  String RECEIVER_NAME_KEY = "receiver";
+    /**
+     * group string literal.
+     */
+  String GROUP_KEY = "group";
+    /**
+     * log4jid string literal.
+     */
+  String LOG4J_ID_KEY = "log4jid";
+    /**
+     * time stamp pattern string literal.
+     */
+  String TIMESTAMP_RULE_FORMAT = "yyyy/MM/dd HH:mm:ss";
+
+  /**
+   * The default property file name for automatic configuration.
+   */
+  String DEFAULT_CONFIGURATION_FILE = "log4j.properties";
+  /**
+   * The default XML configuration file name for automatic configuration.
+   */
+  String DEFAULT_XML_CONFIGURATION_FILE = "log4j.xml";
+    /**
+     * log4j.configuration string literal.
+     */
+  String DEFAULT_CONFIGURATION_KEY = "log4j.configuration";
+    /**
+     * log4j.configuratorClass string literal.
+     */
+  String CONFIGURATOR_CLASS_KEY = "log4j.configuratorClass";
+
+    /**
+     * JNDI context name string literal.
+     */
+  String JNDI_CONTEXT_NAME = "java:comp/env/log4j/context-name";
+
+    /**
+     * TEMP_LIST_APPENDER string literal.
+     */
+  String TEMP_LIST_APPENDER_NAME = "TEMP_LIST_APPENDER";
+    /**
+     * TEMP_CONSOLE_APPENDER string literal.
+     */
+  String TEMP_CONSOLE_APPENDER_NAME = "TEMP_CONSOLE_APPENDER";
+    /**
+     * Codes URL string literal.
+     */
+  String CODES_HREF =
+          "http://logging.apache.org/log4j/docs/codes.html";
+
+
+    /**
+     * ABSOLUTE string literal.
+     */
+  String ABSOLUTE_FORMAT = "ABSOLUTE";
+    /**
+     * SimpleTimePattern for ABSOLUTE.
+     */
+  String ABSOLUTE_TIME_PATTERN = "HH:mm:ss,SSS";
+
+    /**
+     * SimpleTimePattern for ABSOLUTE.
+     */
+  String SIMPLE_TIME_PATTERN = "HH:mm:ss";
+
+    /**
+     * DATE string literal.
+     */
+  String DATE_AND_TIME_FORMAT = "DATE";
+    /**
+     * SimpleTimePattern for DATE.
+     */
+  String DATE_AND_TIME_PATTERN = "dd MMM yyyy HH:mm:ss,SSS";
+
+    /**
+     * ISO8601 string literal.
+     */
+  String ISO8601_FORMAT = "ISO8601";
+    /**
+     * SimpleTimePattern for ISO8601.
+     */
+  String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS";
+}

http://git-wip-us.apache.org/repos/asf/logging-chainsaw/blob/99e52710/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
index 52805da..dbd8e9d 100644
--- a/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
+++ b/src/main/java/org/apache/log4j/xml/LogFileXMLReceiver.java
@@ -1,310 +1,310 @@
-/*
- * 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.log4j.xml;
-
-import java.io.BufferedReader;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.log4j.helpers.Constants;
-import org.apache.log4j.plugins.Receiver;
-import org.apache.log4j.rule.ExpressionRule;
-import org.apache.log4j.rule.Rule;
-import org.apache.log4j.spi.Decoder;
-import org.apache.log4j.spi.LoggingEvent;
-
-/**
- * LogFileXMLReceiver will read an xml-formated log file and make the events in the log file
- * available to the log4j framework.
- * <p>
- * This receiver supports log files created using log4j's XMLLayout, as well as java.util.logging
- * XMLFormatter (via the org.apache.log4j.spi.Decoder interface).
- * <p>
- * By default, log4j's XMLLayout is supported (no need to specify a decoder in that case).
- * <p>
- * To configure this receiver to support java.util.logging's XMLFormatter, specify a 'decoder' param
- * of org.apache.log4j.xml.UtilLoggingXMLDecoder.
- * <p>
- * Tailing -may- work, but not in all cases (try using a file:// URL). If a process has a log file
- * open, the receiver may be able to read and tail the file. If the process closes the file and
- * reopens the file, the receiver may not be able to continue tailing the file.
- * <p>
- * An expressionFilter may be specified. Only events passing the expression will be forwarded to the
- * log4j framework.
- * <p>
- * Once the event has been "posted", it will be handled by the appenders currently configured in the
- * LoggerRespository.
- * 
- * @author Scott Deboy &lt;sdeboy@apache.org&gt;
- * @since 1.3
- */
-
-public class LogFileXMLReceiver extends Receiver {
-    private String fileURL;
-    private Rule expressionRule;
-    private String filterExpression;
-    private String decoder = "org.apache.log4j.xml.XMLDecoder";
-    private boolean tailing = false;
-
-    private Decoder decoderInstance;
-    private Reader reader;
-    private static final String FILE_KEY = "file";
-    private String host;
-    private String path;
-    private boolean useCurrentThread;
-
-    /**
-     * Accessor
-     * 
-     * @return file URL
-     */
-    public String getFileURL() {
-        return fileURL;
-    }
-
-    /**
-     * Specify the URL of the XML-formatted file to process.
-     * 
-     * @param fileURL
-     */
-    public void setFileURL(String fileURL) {
-        this.fileURL = fileURL;
-    }
-
-    /**
-     * Accessor
-     * 
-     * @return
-     */
-    public String getDecoder() {
-        return decoder;
-    }
-
-    /**
-     * Specify the class name implementing org.apache.log4j.spi.Decoder that can process the file.
-     * 
-     * @param _decoder
-     */
-    public void setDecoder(String _decoder) {
-        decoder = _decoder;
-    }
-
-    /**
-     * Accessor
-     * 
-     * @return filter expression
-     */
-    public String getFilterExpression() {
-        return filterExpression;
-    }
-
-    /**
-     * Accessor
-     * 
-     * @return tailing flag
-     */
-    public boolean isTailing() {
-        return tailing;
-    }
-
-    /**
-     * Set the 'tailing' flag - may only work on file:// URLs and may stop tailing if the writing
-     * process closes the file and reopens.
-     * 
-     * @param tailing
-     */
-    public void setTailing(boolean tailing) {
-        this.tailing = tailing;
-    }
-
-    /**
-     * Set the filter expression that will cause only events which pass the filter to be forwarded
-     * to the log4j framework.
-     * 
-     * @param filterExpression
-     */
-    public void setFilterExpression(String filterExpression) {
-        this.filterExpression = filterExpression;
-    }
-
-    private boolean passesExpression(LoggingEvent event) {
-        if (event != null) {
-            if (expressionRule != null) {
-                return (expressionRule.evaluate(event, null));
-            }
-        }
-        return true;
-    }
-
-    public static void main(String[] args) {
-        /*
-         * LogFileXMLReceiver test = new LogFileXMLReceiver();
-         * test.setFileURL("file:///c:/samplelog.xml"); test.setFilterExpression("level >= TRACE");
-         * test.activateOptions();
-         */
-    }
-
-    /**
-     * Close the receiver, release any resources that are accessing the file.
-     */
-    public void shutdown() {
-        try {
-            if (reader != null) {
-                reader.close();
-                reader = null;
-            }
-        } catch (IOException ioe) {
-            ioe.printStackTrace();
-        }
-    }
-
-    /**
-     * Process the file
-     */
-    public void activateOptions() {
-        Runnable runnable = new Runnable() {
-            public void run() {
-                try {
-                    URL url = new URL(fileURL);
-                    host = url.getHost();
-                    if (host != null && host.equals("")) {
-                        host = FILE_KEY;
-                    }
-                    path = url.getPath();
-                } catch (MalformedURLException e1) {
-                    // TODO Auto-generated catch block
-                    e1.printStackTrace();
-                }
-
-                try {
-                    if (filterExpression != null) {
-                        expressionRule = ExpressionRule.getRule(filterExpression);
-                    }
-                } catch (Exception e) {
-                    getLogger().warn("Invalid filter expression: " + filterExpression, e);
-                }
-
-                Class c;
-                try {
-                    c = Class.forName(decoder);
-                    Object o = c.newInstance();
-                    if (o instanceof Decoder) {
-                        decoderInstance = (Decoder) o;
-                    }
-                } catch (ClassNotFoundException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                } catch (InstantiationException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                } catch (IllegalAccessException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-
-                try {
-                    reader = new InputStreamReader(new URL(getFileURL()).openStream());
-                    process(reader);
-                } catch (FileNotFoundException fnfe) {
-                    getLogger().info("file not available");
-                } catch (IOException ioe) {
-                    getLogger().warn("unable to load file", ioe);
-                    return;
-                }
-            }
-        };
-        if (useCurrentThread) {
-            runnable.run();
-        } else {
-            Thread thread = new Thread(runnable, "LogFileXMLReceiver-" + getName());
-
-            thread.start();
-
-        }
-    }
-
-    private void process(Reader unbufferedReader) throws IOException {
-        BufferedReader bufferedReader = new BufferedReader(unbufferedReader);
-        char[] content = new char[10000];
-        getLogger().debug("processing starting: " + fileURL);
-        int length = 0;
-        do {
-            System.out.println("in do loop-about to process");
-            while ((length = bufferedReader.read(content)) > -1) {
-                processEvents(decoderInstance.decodeEvents(String.valueOf(content, 0, length)));
-            }
-            if (tailing) {
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e) {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
-            }
-        } while (tailing);
-        getLogger().debug("processing complete: " + fileURL);
-
-        shutdown();
-    }
-
-    private void processEvents(Collection c) {
-        if (c == null) {
-            return;
-        }
-
-        for (Iterator iter = c.iterator(); iter.hasNext();) {
-            LoggingEvent evt = (LoggingEvent) iter.next();
-            if (passesExpression(evt)) {
-                if (evt.getProperty(Constants.HOSTNAME_KEY) != null) {
-                    evt.setProperty(Constants.HOSTNAME_KEY, host);
-                }
-                if (evt.getProperty(Constants.APPLICATION_KEY) != null) {
-                    evt.setProperty(Constants.APPLICATION_KEY, path);
-                }
-                doPost(evt);
-            }
-        }
-    }
-
-    /**
-     * When true, this property uses the current Thread to perform the import, otherwise when false
-     * (the default), a new Thread is created and started to manage the import.
-     * 
-     * @return
-     */
-    public final boolean isUseCurrentThread() {
-        return useCurrentThread;
-    }
-
-    /**
-     * Sets whether the current Thread or a new Thread is created to perform the import, the default
-     * being false (new Thread created).
-     * 
-     * @param useCurrentThread
-     */
-    public final void setUseCurrentThread(boolean useCurrentThread) {
-        this.useCurrentThread = useCurrentThread;
-    }
-
-}
+/*
+ * 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.log4j.xml;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.log4j.helpers.Constants;
+import org.apache.log4j.plugins.Receiver;
+import org.apache.log4j.rule.ExpressionRule;
+import org.apache.log4j.rule.Rule;
+import org.apache.log4j.spi.Decoder;
+import org.apache.log4j.spi.LoggingEvent;
+
+/**
+ * LogFileXMLReceiver will read an xml-formated log file and make the events in the log file
+ * available to the log4j framework.
+ * <p>
+ * This receiver supports log files created using log4j's XMLLayout, as well as java.util.logging
+ * XMLFormatter (via the org.apache.log4j.spi.Decoder interface).
+ * <p>
+ * By default, log4j's XMLLayout is supported (no need to specify a decoder in that case).
+ * <p>
+ * To configure this receiver to support java.util.logging's XMLFormatter, specify a 'decoder' param
+ * of org.apache.log4j.xml.UtilLoggingXMLDecoder.
+ * <p>
+ * Tailing -may- work, but not in all cases (try using a file:// URL). If a process has a log file
+ * open, the receiver may be able to read and tail the file. If the process closes the file and
+ * reopens the file, the receiver may not be able to continue tailing the file.
+ * <p>
+ * An expressionFilter may be specified. Only events passing the expression will be forwarded to the
+ * log4j framework.
+ * <p>
+ * Once the event has been "posted", it will be handled by the appenders currently configured in the
+ * LoggerRespository.
+ * 
+ * @author Scott Deboy &lt;sdeboy@apache.org&gt;
+ * @since 1.3
+ */
+
+public class LogFileXMLReceiver extends Receiver {
+    private String fileURL;
+    private Rule expressionRule;
+    private String filterExpression;
+    private String decoder = "org.apache.log4j.xml.XMLDecoder";
+    private boolean tailing = false;
+
+    private Decoder decoderInstance;
+    private Reader reader;
+    private static final String FILE_KEY = "file";
+    private String host;
+    private String path;
+    private boolean useCurrentThread;
+
+    /**
+     * Accessor
+     * 
+     * @return file URL
+     */
+    public String getFileURL() {
+        return fileURL;
+    }
+
+    /**
+     * Specify the URL of the XML-formatted file to process.
+     * 
+     * @param fileURL
+     */
+    public void setFileURL(String fileURL) {
+        this.fileURL = fileURL;
+    }
+
+    /**
+     * Accessor
+     * 
+     * @return
+     */
+    public String getDecoder() {
+        return decoder;
+    }
+
+    /**
+     * Specify the class name implementing org.apache.log4j.spi.Decoder that can process the file.
+     * 
+     * @param _decoder
+     */
+    public void setDecoder(String _decoder) {
+        decoder = _decoder;
+    }
+
+    /**
+     * Accessor
+     * 
+     * @return filter expression
+     */
+    public String getFilterExpression() {
+        return filterExpression;
+    }
+
+    /**
+     * Accessor
+     * 
+     * @return tailing flag
+     */
+    public boolean isTailing() {
+        return tailing;
+    }
+
+    /**
+     * Set the 'tailing' flag - may only work on file:// URLs and may stop tailing if the writing
+     * process closes the file and reopens.
+     * 
+     * @param tailing
+     */
+    public void setTailing(boolean tailing) {
+        this.tailing = tailing;
+    }
+
+    /**
+     * Set the filter expression that will cause only events which pass the filter to be forwarded
+     * to the log4j framework.
+     * 
+     * @param filterExpression
+     */
+    public void setFilterExpression(String filterExpression) {
+        this.filterExpression = filterExpression;
+    }
+
+    private boolean passesExpression(LoggingEvent event) {
+        if (event != null) {
+            if (expressionRule != null) {
+                return (expressionRule.evaluate(event, null));
+            }
+        }
+        return true;
+    }
+
+    public static void main(String[] args) {
+        /*
+         * LogFileXMLReceiver test = new LogFileXMLReceiver();
+         * test.setFileURL("file:///c:/samplelog.xml"); test.setFilterExpression("level >= TRACE");
+         * test.activateOptions();
+         */
+    }
+
+    /**
+     * Close the receiver, release any resources that are accessing the file.
+     */
+    public void shutdown() {
+        try {
+            if (reader != null) {
+                reader.close();
+                reader = null;
+            }
+        } catch (IOException ioe) {
+            ioe.printStackTrace();
+        }
+    }
+
+    /**
+     * Process the file
+     */
+    public void activateOptions() {
+        Runnable runnable = new Runnable() {
+            public void run() {
+                try {
+                    URL url = new URL(fileURL);
+                    host = url.getHost();
+                    if (host != null && host.equals("")) {
+                        host = FILE_KEY;
+                    }
+                    path = url.getPath();
+                } catch (MalformedURLException e1) {
+                    // TODO Auto-generated catch block
+                    e1.printStackTrace();
+                }
+
+                try {
+                    if (filterExpression != null) {
+                        expressionRule = ExpressionRule.getRule(filterExpression);
+                    }
+                } catch (Exception e) {
+                    getLogger().warn("Invalid filter expression: " + filterExpression, e);
+                }
+
+                Class c;
+                try {
+                    c = Class.forName(decoder);
+                    Object o = c.newInstance();
+                    if (o instanceof Decoder) {
+                        decoderInstance = (Decoder) o;
+                    }
+                } catch (ClassNotFoundException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                } catch (InstantiationException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                } catch (IllegalAccessException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+
+                try {
+                    reader = new InputStreamReader(new URL(getFileURL()).openStream());
+                    process(reader);
+                } catch (FileNotFoundException fnfe) {
+                    getLogger().info("file not available");
+                } catch (IOException ioe) {
+                    getLogger().warn("unable to load file", ioe);
+                    return;
+                }
+            }
+        };
+        if (useCurrentThread) {
+            runnable.run();
+        } else {
+            Thread thread = new Thread(runnable, "LogFileXMLReceiver-" + getName());
+
+            thread.start();
+
+        }
+    }
+
+    private void process(Reader unbufferedReader) throws IOException {
+        BufferedReader bufferedReader = new BufferedReader(unbufferedReader);
+        char[] content = new char[10000];
+        getLogger().debug("processing starting: " + fileURL);
+        int length = 0;
+        do {
+            System.out.println("in do loop-about to process");
+            while ((length = bufferedReader.read(content)) > -1) {
+                processEvents(decoderInstance.decodeEvents(String.valueOf(content, 0, length)));
+            }
+            if (tailing) {
+                try {
+                    Thread.sleep(5000);
+                } catch (InterruptedException e) {
+                    // TODO Auto-generated catch block
+                    e.printStackTrace();
+                }
+            }
+        } while (tailing);
+        getLogger().debug("processing complete: " + fileURL);
+
+        shutdown();
+    }
+
+    private void processEvents(Collection c) {
+        if (c == null) {
+            return;
+        }
+
+        for (Iterator iter = c.iterator(); iter.hasNext();) {
+            LoggingEvent evt = (LoggingEvent) iter.next();
+            if (passesExpression(evt)) {
+                if (evt.getProperty(Constants.HOSTNAME_KEY) != null) {
+                    evt.setProperty(Constants.HOSTNAME_KEY, host);
+                }
+                if (evt.getProperty(Constants.APPLICATION_KEY) != null) {
+                    evt.setProperty(Constants.APPLICATION_KEY, path);
+                }
+                doPost(evt);
+            }
+        }
+    }
+
+    /**
+     * When true, this property uses the current Thread to perform the import, otherwise when false
+     * (the default), a new Thread is created and started to manage the import.
+     * 
+     * @return
+     */
+    public final boolean isUseCurrentThread() {
+        return useCurrentThread;
+    }
+
+    /**
+     * Sets whether the current Thread or a new Thread is created to perform the import, the default
+     * being false (new Thread created).
+     * 
+     * @param useCurrentThread
+     */
+    public final void setUseCurrentThread(boolean useCurrentThread) {
+        this.useCurrentThread = useCurrentThread;
+    }
+
+}