Chainsaw updates
- It's now possible to directly load events stored in a zip file created when saving events to a file with a zip extension
- Now hiding the receivers panel by default
- Reduced the default size of the details pane
- Updated logpanel details, welcome tab and release notes panes to use system fonts and size
git-svn-id: https://svn.apache.org/repos/asf/logging/log4j/companions/receivers/trunk@930644 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java b/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
index b36ffb6..6b8fdfd 100644
--- a/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
+++ b/src/main/java/org/apache/log4j/xml/UtilLoggingXMLDecoder.java
@@ -19,6 +19,7 @@
import java.awt.Component;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.StringReader;
@@ -29,6 +30,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
+import java.util.zip.ZipInputStream;
import javax.swing.ProgressMonitorInputStream;
import javax.xml.parsers.DocumentBuilder;
@@ -89,6 +91,8 @@
*/
private Component owner = null;
+ private static final String ENCODING = "UTF-8";
+
/**
* Create new instance.
* @param o owner
@@ -177,14 +181,23 @@
* @throws IOException if IO error during processing.
*/
public Vector decode(final URL url) throws IOException {
- LineNumberReader reader = null;
+ LineNumberReader reader;
+ boolean isZipFile = url.getPath().toLowerCase().endsWith(".zip");
+ InputStream inputStream;
+ if (isZipFile) {
+ inputStream = new ZipInputStream(url.openStream());
+ //move stream to next entry so we can read it
+ ((ZipInputStream)inputStream).getNextEntry();
+ } else {
+ inputStream = url.openStream();
+ }
if (owner != null) {
reader = new LineNumberReader(
new InputStreamReader(
new ProgressMonitorInputStream(owner,
- "Loading " + url , url.openStream())));
+ "Loading " + url , inputStream), ENCODING));
} else {
- reader = new LineNumberReader(new InputStreamReader(url.openStream()));
+ reader = new LineNumberReader(new InputStreamReader(inputStream, ENCODING));
}
Vector v = new Vector();
diff --git a/src/main/java/org/apache/log4j/xml/XMLDecoder.java b/src/main/java/org/apache/log4j/xml/XMLDecoder.java
index 13aa495..62cae3a 100644
--- a/src/main/java/org/apache/log4j/xml/XMLDecoder.java
+++ b/src/main/java/org/apache/log4j/xml/XMLDecoder.java
@@ -19,6 +19,7 @@
import java.awt.Component;
import java.io.IOException;
+import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.StringReader;
@@ -28,6 +29,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
+import java.util.zip.ZipInputStream;
import javax.swing.ProgressMonitorInputStream;
import javax.xml.parsers.DocumentBuilder;
@@ -184,12 +186,22 @@
*/
public Vector decode(final URL url) throws IOException {
LineNumberReader reader;
- if (owner != null) {
- reader = new LineNumberReader(new InputStreamReader(
- new ProgressMonitorInputStream(owner,
- "Loading " + url , url.openStream()), ENCODING));
+ boolean isZipFile = url.getPath().toLowerCase().endsWith(".zip");
+ InputStream inputStream;
+ if (isZipFile) {
+ inputStream = new ZipInputStream(url.openStream());
+ //move stream to next entry so we can read it
+ ((ZipInputStream)inputStream).getNextEntry();
} else {
- reader = new LineNumberReader(new InputStreamReader(url.openStream(), ENCODING));
+ inputStream = url.openStream();
+ }
+ if (owner != null) {
+ reader = new LineNumberReader(
+ new InputStreamReader(
+ new ProgressMonitorInputStream(owner,
+ "Loading " + url , inputStream), ENCODING));
+ } else {
+ reader = new LineNumberReader(new InputStreamReader(inputStream, ENCODING));
}
Vector v = new Vector();