You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ni...@apache.org on 2008/04/25 12:43:13 UTC
svn commit: r651569 - in /commons/proper/io/trunk: src/changes/
src/java/org/apache/commons/io/ src/test/org/apache/commons/io/
src/test/org/apache/commons/io/input/ xdocs/
Author: niallp
Date: Fri Apr 25 03:42:55 2008
New Revision: 651569
URL: http://svn.apache.org/viewvc?rev=651569&view=rev
Log:
IO-165 set svn:eol-style to native - thanks to Benjamin Bentmann for the patch
Modified:
commons/proper/io/trunk/src/changes/changes.xml (contents, props changed)
commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java (contents, props changed)
commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java (contents, props changed)
commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java (contents, props changed)
commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java (contents, props changed)
commons/proper/io/trunk/xdocs/upgradeto1_3_2.xml (contents, props changed)
commons/proper/io/trunk/xdocs/upgradeto1_4.xml (contents, props changed)
Modified: commons/proper/io/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/changes/changes.xml?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/src/changes/changes.xml (original)
+++ commons/proper/io/trunk/src/changes/changes.xml Fri Apr 25 03:42:55 2008
@@ -1,61 +1,61 @@
-<?xml version="1.0"?>
-<!--
- 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.
--->
-
-<!--
-This file is used by the maven-changes-plugin to generate the release notes.
-Useful ways of finding items to add to this file are:
-
-1. Add items when you fix a bug or add a feature (this makes the
-release process easy :-).
-
-2. Do a Jira search for tickets closed since the previous release.
-
-3. Use the report generated by the maven-changelog-plugin to see all
-CVS commits. Set the project.properties' maven.changelog.range
-property to the number of days since the last release.
-
-
-The <action> type attribute can be add,update,fix,remove.
--->
-
-<document>
- <properties>
- <title>Release Notes</title>
- </properties>
-
- <body>
- <release version="1.4" date="Not yet released">
- </release>
-
- <release version="1.3.2" date="2007-Jul-02">
- <action dev="jochen" type="fix" issue="IO-115">
- Some tests, which are implicitly assuming a Unix-like file
- system, are now skipped on Windows.
- </action>
- <action dev="jochen" type="fix" issue="IO-116">
- Created the FileCleaningTracker, basically a non-static
- version of the FileCleaner, which can be controlled by
- the user.
- </action>
- <action dev="bayard" type="fix" issue="IO-117" due-to="Hiroshi Ikeda">
- EndianUtils - both readSwappedUnsignedInteger(...) methods could
- return negative numbers due to int/long casting.
- </action>
- </release>
- </body>
-</document>
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<!--
+This file is used by the maven-changes-plugin to generate the release notes.
+Useful ways of finding items to add to this file are:
+
+1. Add items when you fix a bug or add a feature (this makes the
+release process easy :-).
+
+2. Do a Jira search for tickets closed since the previous release.
+
+3. Use the report generated by the maven-changelog-plugin to see all
+CVS commits. Set the project.properties' maven.changelog.range
+property to the number of days since the last release.
+
+
+The <action> type attribute can be add,update,fix,remove.
+-->
+
+<document>
+ <properties>
+ <title>Release Notes</title>
+ </properties>
+
+ <body>
+ <release version="1.4" date="Not yet released">
+ </release>
+
+ <release version="1.3.2" date="2007-Jul-02">
+ <action dev="jochen" type="fix" issue="IO-115">
+ Some tests, which are implicitly assuming a Unix-like file
+ system, are now skipped on Windows.
+ </action>
+ <action dev="jochen" type="fix" issue="IO-116">
+ Created the FileCleaningTracker, basically a non-static
+ version of the FileCleaner, which can be controlled by
+ the user.
+ </action>
+ <action dev="bayard" type="fix" issue="IO-117" due-to="Hiroshi Ikeda">
+ EndianUtils - both readSwappedUnsignedInteger(...) methods could
+ return negative numbers due to int/long casting.
+ </action>
+ </release>
+ </body>
+</document>
Propchange: commons/proper/io/trunk/src/changes/changes.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java (original)
+++ commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java Fri Apr 25 03:42:55 2008
@@ -1,258 +1,258 @@
-/*
- * 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.commons.io;
-
-import java.io.File;
-import java.lang.ref.PhantomReference;
-import java.lang.ref.ReferenceQueue;
-import java.util.Collection;
-import java.util.Vector;
-
-/**
- * Keeps track of files awaiting deletion, and deletes them when an associated
- * marker object is reclaimed by the garbage collector.
- * <p>
- * This utility creates a background thread to handle file deletion.
- * Each file to be deleted is registered with a handler object.
- * When the handler object is garbage collected, the file is deleted.
- * <p>
- * In an environment with multiple class loaders (a servlet container, for
- * example), you should consider stopping the background thread if it is no
- * longer needed. This is done by invoking the method
- * {@link #exitWhenFinished}, typically in
- * {@link javax.servlet.ServletContextListener#contextDestroyed} or similar.
- *
- * @author Noel Bergman
- * @author Martin Cooper
- * @version $Id: FileCleaner.java 490987 2006-12-29 12:11:48Z scolebourne $
- */
-public class FileCleaningTracker {
- /**
- * Queue of <code>Tracker</code> instances being watched.
- */
- ReferenceQueue /* Tracker */ q = new ReferenceQueue();
- /**
- * Collection of <code>Tracker</code> instances in existence.
- */
- final Collection<Tracker> trackers = new Vector<Tracker>(); // synchronized
- /**
- * Whether to terminate the thread when the tracking is complete.
- */
- volatile boolean exitWhenFinished = false;
- /**
- * The thread that will clean up registered files.
- */
- Thread reaper;
-
- //-----------------------------------------------------------------------
- /**
- * Track the specified file, using the provided marker, deleting the file
- * when the marker instance is garbage collected.
- * The {@link FileDeleteStrategy#NORMAL normal} deletion strategy will be used.
- *
- * @param file the file to be tracked, not null
- * @param marker the marker object used to track the file, not null
- * @throws NullPointerException if the file is null
- */
- public void track(File file, Object marker) {
- track(file, marker, (FileDeleteStrategy) null);
- }
-
- /**
- * Track the specified file, using the provided marker, deleting the file
- * when the marker instance is garbage collected.
- * The speified deletion strategy is used.
- *
- * @param file the file to be tracked, not null
- * @param marker the marker object used to track the file, not null
- * @param deleteStrategy the strategy to delete the file, null means normal
- * @throws NullPointerException if the file is null
- */
- public void track(File file, Object marker, FileDeleteStrategy deleteStrategy) {
- if (file == null) {
- throw new NullPointerException("The file must not be null");
- }
- addTracker(file.getPath(), marker, deleteStrategy);
- }
-
- /**
- * Track the specified file, using the provided marker, deleting the file
- * when the marker instance is garbage collected.
- * The {@link FileDeleteStrategy#NORMAL normal} deletion strategy will be used.
- *
- * @param path the full path to the file to be tracked, not null
- * @param marker the marker object used to track the file, not null
- * @throws NullPointerException if the path is null
- */
- public void track(String path, Object marker) {
- track(path, marker, (FileDeleteStrategy) null);
- }
-
- /**
- * Track the specified file, using the provided marker, deleting the file
- * when the marker instance is garbage collected.
- * The speified deletion strategy is used.
- *
- * @param path the full path to the file to be tracked, not null
- * @param marker the marker object used to track the file, not null
- * @param deleteStrategy the strategy to delete the file, null means normal
- * @throws NullPointerException if the path is null
- */
- public void track(String path, Object marker, FileDeleteStrategy deleteStrategy) {
- if (path == null) {
- throw new NullPointerException("The path must not be null");
- }
- addTracker(path, marker, deleteStrategy);
- }
-
- /**
- * Adds a tracker to the list of trackers.
- *
- * @param path the full path to the file to be tracked, not null
- * @param marker the marker object used to track the file, not null
- * @param deleteStrategy the strategy to delete the file, null means normal
- */
- private synchronized void addTracker(String path, Object marker, FileDeleteStrategy deleteStrategy) {
- // synchronized block protects reaper
- if (exitWhenFinished) {
- throw new IllegalStateException("No new trackers can be added once exitWhenFinished() is called");
- }
- if (reaper == null) {
- reaper = new Reaper();
- reaper.start();
- }
- trackers.add(new Tracker(path, deleteStrategy, marker, q));
- }
-
- //-----------------------------------------------------------------------
- /**
- * Retrieve the number of files currently being tracked, and therefore
- * awaiting deletion.
- *
- * @return the number of files being tracked
- */
- public int getTrackCount() {
- return trackers.size();
- }
-
- /**
- * Call this method to cause the file cleaner thread to terminate when
- * there are no more objects being tracked for deletion.
- * <p>
- * In a simple environment, you don't need this method as the file cleaner
- * thread will simply exit when the JVM exits. In a more complex environment,
- * with multiple class loaders (such as an application server), you should be
- * aware that the file cleaner thread will continue running even if the class
- * loader it was started from terminates. This can consitute a memory leak.
- * <p>
- * For example, suppose that you have developed a web application, which
- * contains the commons-io jar file in your WEB-INF/lib directory. In other
- * words, the FileCleaner class is loaded through the class loader of your
- * web application. If the web application is terminated, but the servlet
- * container is still running, then the file cleaner thread will still exist,
- * posing a memory leak.
- * <p>
- * This method allows the thread to be terminated. Simply call this method
- * in the resource cleanup code, such as {@link javax.servlet.ServletContextListener#contextDestroyed}.
- * One called, no new objects can be tracked by the file cleaner.
- */
- public synchronized void exitWhenFinished() {
- // synchronized block protects reaper
- exitWhenFinished = true;
- if (reaper != null) {
- synchronized (reaper) {
- reaper.interrupt();
- }
- }
- }
-
- //-----------------------------------------------------------------------
- /**
- * The reaper thread.
- */
- private final class Reaper extends Thread {
- /** Construct a new Reaper */
- Reaper() {
- super("File Reaper");
- setPriority(Thread.MAX_PRIORITY);
- setDaemon(true);
- }
-
- /**
- * Run the reaper thread that will delete files as their associated
- * marker objects are reclaimed by the garbage collector.
- */
- public void run() {
- // thread exits when exitWhenFinished is true and there are no more tracked objects
- while (exitWhenFinished == false || trackers.size() > 0) {
- Tracker tracker = null;
- try {
- // Wait for a tracker to remove.
- tracker = (Tracker) q.remove();
- } catch (Exception e) {
- continue;
- }
- if (tracker != null) {
- tracker.delete();
- tracker.clear();
- trackers.remove(tracker);
- }
- }
- }
- }
-
- //-----------------------------------------------------------------------
- /**
- * Inner class which acts as the reference for a file pending deletion.
- */
- private static final class Tracker extends PhantomReference {
-
- /**
- * The full path to the file being tracked.
- */
- private final String path;
- /**
- * The strategy for deleting files.
- */
- private final FileDeleteStrategy deleteStrategy;
-
- /**
- * Constructs an instance of this class from the supplied parameters.
- *
- * @param path the full path to the file to be tracked, not null
- * @param deleteStrategy the strategy to delete the file, null means normal
- * @param marker the marker object used to track the file, not null
- * @param queue the queue on to which the tracker will be pushed, not null
- */
- Tracker(String path, FileDeleteStrategy deleteStrategy, Object marker, ReferenceQueue queue) {
- super(marker, queue);
- this.path = path;
- this.deleteStrategy = (deleteStrategy == null ? FileDeleteStrategy.NORMAL : deleteStrategy);
- }
-
- /**
- * Deletes the file associated with this tracker instance.
- *
- * @return <code>true</code> if the file was deleted successfully;
- * <code>false</code> otherwise.
- */
- public boolean delete() {
- return deleteStrategy.deleteQuietly(new File(path));
- }
- }
-
-}
+/*
+ * 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.commons.io;
+
+import java.io.File;
+import java.lang.ref.PhantomReference;
+import java.lang.ref.ReferenceQueue;
+import java.util.Collection;
+import java.util.Vector;
+
+/**
+ * Keeps track of files awaiting deletion, and deletes them when an associated
+ * marker object is reclaimed by the garbage collector.
+ * <p>
+ * This utility creates a background thread to handle file deletion.
+ * Each file to be deleted is registered with a handler object.
+ * When the handler object is garbage collected, the file is deleted.
+ * <p>
+ * In an environment with multiple class loaders (a servlet container, for
+ * example), you should consider stopping the background thread if it is no
+ * longer needed. This is done by invoking the method
+ * {@link #exitWhenFinished}, typically in
+ * {@link javax.servlet.ServletContextListener#contextDestroyed} or similar.
+ *
+ * @author Noel Bergman
+ * @author Martin Cooper
+ * @version $Id$
+ */
+public class FileCleaningTracker {
+ /**
+ * Queue of <code>Tracker</code> instances being watched.
+ */
+ ReferenceQueue /* Tracker */ q = new ReferenceQueue();
+ /**
+ * Collection of <code>Tracker</code> instances in existence.
+ */
+ final Collection<Tracker> trackers = new Vector<Tracker>(); // synchronized
+ /**
+ * Whether to terminate the thread when the tracking is complete.
+ */
+ volatile boolean exitWhenFinished = false;
+ /**
+ * The thread that will clean up registered files.
+ */
+ Thread reaper;
+
+ //-----------------------------------------------------------------------
+ /**
+ * Track the specified file, using the provided marker, deleting the file
+ * when the marker instance is garbage collected.
+ * The {@link FileDeleteStrategy#NORMAL normal} deletion strategy will be used.
+ *
+ * @param file the file to be tracked, not null
+ * @param marker the marker object used to track the file, not null
+ * @throws NullPointerException if the file is null
+ */
+ public void track(File file, Object marker) {
+ track(file, marker, (FileDeleteStrategy) null);
+ }
+
+ /**
+ * Track the specified file, using the provided marker, deleting the file
+ * when the marker instance is garbage collected.
+ * The speified deletion strategy is used.
+ *
+ * @param file the file to be tracked, not null
+ * @param marker the marker object used to track the file, not null
+ * @param deleteStrategy the strategy to delete the file, null means normal
+ * @throws NullPointerException if the file is null
+ */
+ public void track(File file, Object marker, FileDeleteStrategy deleteStrategy) {
+ if (file == null) {
+ throw new NullPointerException("The file must not be null");
+ }
+ addTracker(file.getPath(), marker, deleteStrategy);
+ }
+
+ /**
+ * Track the specified file, using the provided marker, deleting the file
+ * when the marker instance is garbage collected.
+ * The {@link FileDeleteStrategy#NORMAL normal} deletion strategy will be used.
+ *
+ * @param path the full path to the file to be tracked, not null
+ * @param marker the marker object used to track the file, not null
+ * @throws NullPointerException if the path is null
+ */
+ public void track(String path, Object marker) {
+ track(path, marker, (FileDeleteStrategy) null);
+ }
+
+ /**
+ * Track the specified file, using the provided marker, deleting the file
+ * when the marker instance is garbage collected.
+ * The speified deletion strategy is used.
+ *
+ * @param path the full path to the file to be tracked, not null
+ * @param marker the marker object used to track the file, not null
+ * @param deleteStrategy the strategy to delete the file, null means normal
+ * @throws NullPointerException if the path is null
+ */
+ public void track(String path, Object marker, FileDeleteStrategy deleteStrategy) {
+ if (path == null) {
+ throw new NullPointerException("The path must not be null");
+ }
+ addTracker(path, marker, deleteStrategy);
+ }
+
+ /**
+ * Adds a tracker to the list of trackers.
+ *
+ * @param path the full path to the file to be tracked, not null
+ * @param marker the marker object used to track the file, not null
+ * @param deleteStrategy the strategy to delete the file, null means normal
+ */
+ private synchronized void addTracker(String path, Object marker, FileDeleteStrategy deleteStrategy) {
+ // synchronized block protects reaper
+ if (exitWhenFinished) {
+ throw new IllegalStateException("No new trackers can be added once exitWhenFinished() is called");
+ }
+ if (reaper == null) {
+ reaper = new Reaper();
+ reaper.start();
+ }
+ trackers.add(new Tracker(path, deleteStrategy, marker, q));
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Retrieve the number of files currently being tracked, and therefore
+ * awaiting deletion.
+ *
+ * @return the number of files being tracked
+ */
+ public int getTrackCount() {
+ return trackers.size();
+ }
+
+ /**
+ * Call this method to cause the file cleaner thread to terminate when
+ * there are no more objects being tracked for deletion.
+ * <p>
+ * In a simple environment, you don't need this method as the file cleaner
+ * thread will simply exit when the JVM exits. In a more complex environment,
+ * with multiple class loaders (such as an application server), you should be
+ * aware that the file cleaner thread will continue running even if the class
+ * loader it was started from terminates. This can consitute a memory leak.
+ * <p>
+ * For example, suppose that you have developed a web application, which
+ * contains the commons-io jar file in your WEB-INF/lib directory. In other
+ * words, the FileCleaner class is loaded through the class loader of your
+ * web application. If the web application is terminated, but the servlet
+ * container is still running, then the file cleaner thread will still exist,
+ * posing a memory leak.
+ * <p>
+ * This method allows the thread to be terminated. Simply call this method
+ * in the resource cleanup code, such as {@link javax.servlet.ServletContextListener#contextDestroyed}.
+ * One called, no new objects can be tracked by the file cleaner.
+ */
+ public synchronized void exitWhenFinished() {
+ // synchronized block protects reaper
+ exitWhenFinished = true;
+ if (reaper != null) {
+ synchronized (reaper) {
+ reaper.interrupt();
+ }
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * The reaper thread.
+ */
+ private final class Reaper extends Thread {
+ /** Construct a new Reaper */
+ Reaper() {
+ super("File Reaper");
+ setPriority(Thread.MAX_PRIORITY);
+ setDaemon(true);
+ }
+
+ /**
+ * Run the reaper thread that will delete files as their associated
+ * marker objects are reclaimed by the garbage collector.
+ */
+ public void run() {
+ // thread exits when exitWhenFinished is true and there are no more tracked objects
+ while (exitWhenFinished == false || trackers.size() > 0) {
+ Tracker tracker = null;
+ try {
+ // Wait for a tracker to remove.
+ tracker = (Tracker) q.remove();
+ } catch (Exception e) {
+ continue;
+ }
+ if (tracker != null) {
+ tracker.delete();
+ tracker.clear();
+ trackers.remove(tracker);
+ }
+ }
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ /**
+ * Inner class which acts as the reference for a file pending deletion.
+ */
+ private static final class Tracker extends PhantomReference {
+
+ /**
+ * The full path to the file being tracked.
+ */
+ private final String path;
+ /**
+ * The strategy for deleting files.
+ */
+ private final FileDeleteStrategy deleteStrategy;
+
+ /**
+ * Constructs an instance of this class from the supplied parameters.
+ *
+ * @param path the full path to the file to be tracked, not null
+ * @param deleteStrategy the strategy to delete the file, null means normal
+ * @param marker the marker object used to track the file, not null
+ * @param queue the queue on to which the tracker will be pushed, not null
+ */
+ Tracker(String path, FileDeleteStrategy deleteStrategy, Object marker, ReferenceQueue queue) {
+ super(marker, queue);
+ this.path = path;
+ this.deleteStrategy = (deleteStrategy == null ? FileDeleteStrategy.NORMAL : deleteStrategy);
+ }
+
+ /**
+ * Deletes the file associated with this tracker instance.
+ *
+ * @return <code>true</code> if the file was deleted successfully;
+ * <code>false</code> otherwise.
+ */
+ public boolean delete() {
+ return deleteStrategy.deleteQuietly(new File(path));
+ }
+ }
+
+}
Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/FileCleaningTracker.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java (original)
+++ commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java Fri Apr 25 03:42:55 2008
@@ -1,69 +1,69 @@
-/*
- * 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.commons.io;
-
-import java.io.IOException;
-
-/**
- * Subclasses IOException with the {@link Throwable} constructors missing before Java 6. If you are using Java 6,
- * consider this class deprecated and use {@link IOException}.
- *
- * @author <a href="http://commons.apache.org/io/">Apache Commons IO</a>
- * @version $Id$
- * @since Commons IO 1.4
- */
-public class IOExceptionWithCause extends IOException {
-
- /**
- * Defines the serial version UID.
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Constructs a new instance with the given message and cause.
- * <p>
- * As specified in {@link Throwable}, the message in the given <code>cause</code> is not used in this instance's
- * message.
- * </p>
- *
- * @param message
- * the message (see {@link #getMessage()})
- * @param cause
- * the cause (see {@link #getCause()}). A <code>null</code> value is allowed.
- */
- public IOExceptionWithCause(String message, Throwable cause) {
- super(message);
- this.initCause(cause);
- }
-
- /**
- * Constructs a new instance with the given cause.
- * <p>
- * The message is set to <code>cause==null ? null : cause.toString()</code>, which by default contains the class
- * and message of <code>cause</code>. This constructor is useful for call sites that just wrap another throwable.
- * </p>
- *
- * @param cause
- * the cause (see {@link #getCause()}). A <code>null</code> value is allowed.
- */
- public IOExceptionWithCause(Throwable cause) {
- super(cause == null ? null : cause.toString());
- this.initCause(cause);
- }
-
-}
+/*
+ * 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.commons.io;
+
+import java.io.IOException;
+
+/**
+ * Subclasses IOException with the {@link Throwable} constructors missing before Java 6. If you are using Java 6,
+ * consider this class deprecated and use {@link IOException}.
+ *
+ * @author <a href="http://commons.apache.org/io/">Apache Commons IO</a>
+ * @version $Id$
+ * @since Commons IO 1.4
+ */
+public class IOExceptionWithCause extends IOException {
+
+ /**
+ * Defines the serial version UID.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Constructs a new instance with the given message and cause.
+ * <p>
+ * As specified in {@link Throwable}, the message in the given <code>cause</code> is not used in this instance's
+ * message.
+ * </p>
+ *
+ * @param message
+ * the message (see {@link #getMessage()})
+ * @param cause
+ * the cause (see {@link #getCause()}). A <code>null</code> value is allowed.
+ */
+ public IOExceptionWithCause(String message, Throwable cause) {
+ super(message);
+ this.initCause(cause);
+ }
+
+ /**
+ * Constructs a new instance with the given cause.
+ * <p>
+ * The message is set to <code>cause==null ? null : cause.toString()</code>, which by default contains the class
+ * and message of <code>cause</code>. This constructor is useful for call sites that just wrap another throwable.
+ * </p>
+ *
+ * @param cause
+ * the cause (see {@link #getCause()}). A <code>null</code> value is allowed.
+ */
+ public IOExceptionWithCause(Throwable cause) {
+ super(cause == null ? null : cause.toString());
+ this.initCause(cause);
+ }
+
+}
Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/IOExceptionWithCause.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java (original)
+++ commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java Fri Apr 25 03:42:55 2008
@@ -1,53 +1,53 @@
-/*
- * 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.commons.io;
-
-import junit.framework.TestCase;
-
-/**
- * Tests IOExceptionWithCause
- *
- * @author <a href="mailto:ggregory@seagullsw.com">Gary Gregory</a>
- * @version $Id: $
- */
-public class IOExceptionWithCauseTestCase extends TestCase {
-
- /**
- * Tests the {@link IOExceptionWithCause#IOExceptionWithCause(String,Throwable)} constructor.
- */
- public void testIOExceptionStringThrowable() {
- Throwable cause = new IllegalArgumentException("cause");
- IOExceptionWithCause exception = new IOExceptionWithCause("message", cause);
- this.validate(exception, cause, "message");
- }
-
- /**
- * Tests the {@link IOExceptionWithCause#IOExceptionWithCause(Throwable)} constructor.
- */
- public void testIOExceptionThrowable() {
- Throwable cause = new IllegalArgumentException("cause");
- IOExceptionWithCause exception = new IOExceptionWithCause(cause);
- this.validate(exception, cause, "java.lang.IllegalArgumentException: cause");
- }
-
- void validate(Throwable throwable, Throwable expectedCause, String expectedMessage) {
- assertEquals(expectedMessage, throwable.getMessage());
- assertEquals(expectedCause, throwable.getCause());
- assertSame(expectedCause, throwable.getCause());
- }
-}
+/*
+ * 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.commons.io;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests IOExceptionWithCause
+ *
+ * @author <a href="mailto:ggregory@seagullsw.com">Gary Gregory</a>
+ * @version $Id$
+ */
+public class IOExceptionWithCauseTestCase extends TestCase {
+
+ /**
+ * Tests the {@link IOExceptionWithCause#IOExceptionWithCause(String,Throwable)} constructor.
+ */
+ public void testIOExceptionStringThrowable() {
+ Throwable cause = new IllegalArgumentException("cause");
+ IOExceptionWithCause exception = new IOExceptionWithCause("message", cause);
+ this.validate(exception, cause, "message");
+ }
+
+ /**
+ * Tests the {@link IOExceptionWithCause#IOExceptionWithCause(Throwable)} constructor.
+ */
+ public void testIOExceptionThrowable() {
+ Throwable cause = new IllegalArgumentException("cause");
+ IOExceptionWithCause exception = new IOExceptionWithCause(cause);
+ this.validate(exception, cause, "java.lang.IllegalArgumentException: cause");
+ }
+
+ void validate(Throwable throwable, Throwable expectedCause, String expectedMessage) {
+ assertEquals(expectedMessage, throwable.getMessage());
+ assertEquals(expectedCause, throwable.getCause());
+ assertSame(expectedCause, throwable.getCause());
+ }
+}
Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/IOExceptionWithCauseTestCase.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java (original)
+++ commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java Fri Apr 25 03:42:55 2008
@@ -1,58 +1,58 @@
-/*
- * 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.commons.io.input;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.ObjectOutputStream;
-
-import junit.framework.TestCase;
-
-/**
- * Tests the CountingInputStream.
- *
- * @version $Id: CountingInputStreamTest.java 160202 2005-04-05 17:22:21Z roxspring $
- */
-public class ClassLoaderObjectInputStreamTest extends TestCase {
-
- public ClassLoaderObjectInputStreamTest(String name) {
- super(name);
- }
-
- /* Note: This test case tests the simplest functionality of
- * ObjectInputStream. IF we really wanted to test ClassLoaderObjectInputStream
- * we would probably need to create a transient Class Loader. -TO
- */
-
-
- public void testExpected() throws Exception {
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
-
- oos.writeObject( Boolean.FALSE );
-
- InputStream bais = new ByteArrayInputStream(baos.toByteArray());
- ClassLoaderObjectInputStream clois =
- new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais);
- Boolean result = (Boolean) clois.readObject();
-
- assertTrue( !result.booleanValue() );
- }
-
-}
+/*
+ * 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.commons.io.input;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.ObjectOutputStream;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests the CountingInputStream.
+ *
+ * @version $Id$
+ */
+public class ClassLoaderObjectInputStreamTest extends TestCase {
+
+ public ClassLoaderObjectInputStreamTest(String name) {
+ super(name);
+ }
+
+ /* Note: This test case tests the simplest functionality of
+ * ObjectInputStream. IF we really wanted to test ClassLoaderObjectInputStream
+ * we would probably need to create a transient Class Loader. -TO
+ */
+
+
+ public void testExpected() throws Exception {
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+
+ oos.writeObject( Boolean.FALSE );
+
+ InputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ ClassLoaderObjectInputStream clois =
+ new ClassLoaderObjectInputStream(getClass().getClassLoader(), bais);
+ Boolean result = (Boolean) clois.readObject();
+
+ assertTrue( !result.booleanValue() );
+ }
+
+}
Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/input/ClassLoaderObjectInputStreamTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified: commons/proper/io/trunk/xdocs/upgradeto1_3_2.xml
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/xdocs/upgradeto1_3_2.xml?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/xdocs/upgradeto1_3_2.xml (original)
+++ commons/proper/io/trunk/xdocs/upgradeto1_3_2.xml Fri Apr 25 03:42:55 2008
@@ -1,87 +1,87 @@
-<?xml version="1.0"?>
-<!--
-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.
--->
-<document>
- <properties>
- <title>Upgrade from 1.3, or 1.3.1, to 1.3.2</title>
- <author email="dev@commons.apache.org">Commons Documentation Team</author>
- </properties>
-<body>
-
-<section name="Upgrade">
-<p>
-These are the release notes and advice for upgrading Commons-IO from
-version 1.3, or 1.3.1, to version 1.3.2.
-<source>
-Commons IO is a package of Java utility classes for java.io's hierarchy.
-Classes in this package are considered to be so standard and of such high
-reuse as to justify existence in java.io.
-
-Commons IO contains utility classes, stream implementations, file filters,
-and endian transformation classes.
-
-
-Compatibility with 1.3.1
-------------------------
-Binary compatible - Yes
-
-Source compatible - Yes
-
-Semantic compatible - Yes
- Check the bug fixes section for semantic bug fixes
-
-
-Compatibility with 1.3
-----------------------
-Binary compatible - No
- See [IO-113]
-
-Source compatible - No
- See [IO-113]
-
-Semantic compatible - Yes
-
-
-Enhancements since 1.3.1
-------------------------
-
-- Created the FileCleaningTracker, basically a non-static version of the
- FileCleaner, which can be controlled by the user. [IO-116]
-- The FileCleaner is deprecated. (For reasons of compatibility, the
- deprecation warnings are hidden within the 1.3 branch. They'll be
- visible, as of version 1.4.)
-
-
-Bug fixes from 1.3.1
---------------------
-
-- Some tests, which are implicitly assuming a Unix-like file system, are
- now skipped on Windows. [IO-115]
-
-
-Bug fixes from 1.3
-------------------
-
-- FileUtils
- - NPE in openOutputStream(File) when file has no parent in path [IO-112]
- - readFileToString(File) is not static [IO-113]
-</source>
-</p>
-</section>
-
-</body>
-</document>
+<?xml version="1.0"?>
+<!--
+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.
+-->
+<document>
+ <properties>
+ <title>Upgrade from 1.3, or 1.3.1, to 1.3.2</title>
+ <author email="dev@commons.apache.org">Commons Documentation Team</author>
+ </properties>
+<body>
+
+<section name="Upgrade">
+<p>
+These are the release notes and advice for upgrading Commons-IO from
+version 1.3, or 1.3.1, to version 1.3.2.
+<source>
+Commons IO is a package of Java utility classes for java.io's hierarchy.
+Classes in this package are considered to be so standard and of such high
+reuse as to justify existence in java.io.
+
+Commons IO contains utility classes, stream implementations, file filters,
+and endian transformation classes.
+
+
+Compatibility with 1.3.1
+------------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+ Check the bug fixes section for semantic bug fixes
+
+
+Compatibility with 1.3
+----------------------
+Binary compatible - No
+ See [IO-113]
+
+Source compatible - No
+ See [IO-113]
+
+Semantic compatible - Yes
+
+
+Enhancements since 1.3.1
+------------------------
+
+- Created the FileCleaningTracker, basically a non-static version of the
+ FileCleaner, which can be controlled by the user. [IO-116]
+- The FileCleaner is deprecated. (For reasons of compatibility, the
+ deprecation warnings are hidden within the 1.3 branch. They'll be
+ visible, as of version 1.4.)
+
+
+Bug fixes from 1.3.1
+--------------------
+
+- Some tests, which are implicitly assuming a Unix-like file system, are
+ now skipped on Windows. [IO-115]
+
+
+Bug fixes from 1.3
+------------------
+
+- FileUtils
+ - NPE in openOutputStream(File) when file has no parent in path [IO-112]
+ - readFileToString(File) is not static [IO-113]
+</source>
+</p>
+</section>
+
+</body>
+</document>
Propchange: commons/proper/io/trunk/xdocs/upgradeto1_3_2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/proper/io/trunk/xdocs/upgradeto1_4.xml
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/xdocs/upgradeto1_4.xml?rev=651569&r1=651568&r2=651569&view=diff
==============================================================================
--- commons/proper/io/trunk/xdocs/upgradeto1_4.xml (original)
+++ commons/proper/io/trunk/xdocs/upgradeto1_4.xml Fri Apr 25 03:42:55 2008
@@ -1,142 +1,142 @@
-<?xml version="1.0"?>
-<!--
-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.
--->
-<document>
- <properties>
- <title>Upgrade from 1.3.2 to 1.4</title>
- <author email="dev@commons.apache.org">Commons Documentation Team</author>
- </properties>
-<body>
-
-<section name="Upgrade">
-<p>
-These are the release notes and advice for upgrading Commons-IO from
-version 1.3.2 to version 1.4.
-<source>
-Commons IO is a package of Java utility classes for java.io's hierarchy.
-Classes in this package are considered to be so standard and of such high
-reuse as to justify existence in java.io.
-
-Commons IO contains utility classes, stream implementations, file filters,
-file comparators and endian transformation classes.
-
-
-Compatibility with 1.3.2
-------------------------
-Binary compatible - Yes
-
-Source compatible - Yes
-
-Semantic compatible - Yes
- Check the bug fixes section for semantic bug fixes
-
-Commons IO 1.4 introduces four new implementations which depend on JDK 1.4 features
-(CharSequenceReader, FileWriterWithEncoding, IOExceptionWithCause and RegexFileFilter).
-It has been built with the JDK source and target options set to JDK 1.3 and, except for
-those implementations, can be used with JDK 1.3 (see IO IO-127).
-
-
-Deprecations from 1.3.2
------------------------
-- FileCleaner deprecated in favour of FileCleaningTracker [see IO-116]
-
-
-Bug fixes from 1.3.2
---------------------
-- FileUtils
- - forceDelete of orphaned Softlinks does not work [IO-147]
- - Infinite loop on FileUtils.copyDirectory when the destination directory is within
- the source directory [IO-141]
-
-- HexDump
- - HexDump's use of static StringBuffers isn't thread-safe [IO-136]
-
-
-Enhancements from 1.3.2
------------------------
-- FileUtils
- - Add a deleteQuietly method [IO-135]
- - Add a copyDirectory() method that makes use of FileFilter [IO-105]
- - Add moveDirectory() and moveFile() methods [IO-77]
-
-- FilenameUtils
- - Add file name extension separator constants[IO-149]
-
-- IOExceptionWithCause [IO-148]
- - Add a new IOException implementation with constructors which take a cause
-
-- TeeInputStream [IO-129]
- - Add new Tee input stream implementation
-
-- FileWriterWithEncoding [IO-153]
- - Add new File Writer implementation that accepts an encoding
-
-- CharSequenceReader [IO-138]
- - Add new Reader implementation that handles any CharSequence (String,
- StringBuffer, StringBuilder or CharBuffer)
-
-- ThesholdingOuputStream [IO-121]
- - Add a reset() method which sets the count of the bytes written back to zero.
-
-- DeferredFileOutputStream [IO-130]
- - Add support for temporary files
-
-- ByteArrayOutputStream
- - Add a new write(InputStream) method [IO-152]
-
-- New Closed Input/Output stream implementations [IO-122]
- - AutoCloseInputStream - automatically closes and discards the underlying input stream
- - ClosedInputStream - returns -1 for any read attempts
- - ClosedOutputStream - throws an IOException for any write attempts
- - CloseShieldInputStream - prevents the underlying input stream from being closed.
- - CloseShieldOutputStream - prevents the underlying output stream from being closed.
-
-- Add Singleton Constants to several stream classes [IO-143]
-
-- PrefixFileFilter [IO-126]
- - Add faciltiy to specify case sensitivity on prefix matching
-
-- SuffixFileFilter [IO-126]
- - Add faciltiy to specify case sensitivity on suffix matching
-
-- RegexFileFilter [IO-74]
- - Add new regular expression file filter implementation
-
-- Make IOFileFilter implementations Serializable [IO-131]
-
-- Improve IOFileFilter toString() methods [IO-120]
-
-- Make fields final so classes are immutable/threadsafe [IO-133]
- - changes to Age, Delegate, Name, Not, Prefix, Regex, Size, Suffix and Wildcard IOFileFilter
- implementations.
-
-- IOCase
- - Add a compare method to IOCase [IO-144]
-
-- Add a package of java.util.Comparator implementations for files [IO-145]
- - DefaultFileComparator - compare files using the default File.compareTo(File) method.
- - ExtensionFileComparator - compares files using file name extensions.
- - LastModifiedFileComparator - compares files using the last modified date/time.
- - NameFileComparator - compares files using file names.
- - PathFileComparator - compares files using file paths.
- - SizeFileComparator - compares files using file sizes.
-</source>
-</p>
-</section>
-
-</body>
-</document>
+<?xml version="1.0"?>
+<!--
+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.
+-->
+<document>
+ <properties>
+ <title>Upgrade from 1.3.2 to 1.4</title>
+ <author email="dev@commons.apache.org">Commons Documentation Team</author>
+ </properties>
+<body>
+
+<section name="Upgrade">
+<p>
+These are the release notes and advice for upgrading Commons-IO from
+version 1.3.2 to version 1.4.
+<source>
+Commons IO is a package of Java utility classes for java.io's hierarchy.
+Classes in this package are considered to be so standard and of such high
+reuse as to justify existence in java.io.
+
+Commons IO contains utility classes, stream implementations, file filters,
+file comparators and endian transformation classes.
+
+
+Compatibility with 1.3.2
+------------------------
+Binary compatible - Yes
+
+Source compatible - Yes
+
+Semantic compatible - Yes
+ Check the bug fixes section for semantic bug fixes
+
+Commons IO 1.4 introduces four new implementations which depend on JDK 1.4 features
+(CharSequenceReader, FileWriterWithEncoding, IOExceptionWithCause and RegexFileFilter).
+It has been built with the JDK source and target options set to JDK 1.3 and, except for
+those implementations, can be used with JDK 1.3 (see IO IO-127).
+
+
+Deprecations from 1.3.2
+-----------------------
+- FileCleaner deprecated in favour of FileCleaningTracker [see IO-116]
+
+
+Bug fixes from 1.3.2
+--------------------
+- FileUtils
+ - forceDelete of orphaned Softlinks does not work [IO-147]
+ - Infinite loop on FileUtils.copyDirectory when the destination directory is within
+ the source directory [IO-141]
+
+- HexDump
+ - HexDump's use of static StringBuffers isn't thread-safe [IO-136]
+
+
+Enhancements from 1.3.2
+-----------------------
+- FileUtils
+ - Add a deleteQuietly method [IO-135]
+ - Add a copyDirectory() method that makes use of FileFilter [IO-105]
+ - Add moveDirectory() and moveFile() methods [IO-77]
+
+- FilenameUtils
+ - Add file name extension separator constants[IO-149]
+
+- IOExceptionWithCause [IO-148]
+ - Add a new IOException implementation with constructors which take a cause
+
+- TeeInputStream [IO-129]
+ - Add new Tee input stream implementation
+
+- FileWriterWithEncoding [IO-153]
+ - Add new File Writer implementation that accepts an encoding
+
+- CharSequenceReader [IO-138]
+ - Add new Reader implementation that handles any CharSequence (String,
+ StringBuffer, StringBuilder or CharBuffer)
+
+- ThesholdingOuputStream [IO-121]
+ - Add a reset() method which sets the count of the bytes written back to zero.
+
+- DeferredFileOutputStream [IO-130]
+ - Add support for temporary files
+
+- ByteArrayOutputStream
+ - Add a new write(InputStream) method [IO-152]
+
+- New Closed Input/Output stream implementations [IO-122]
+ - AutoCloseInputStream - automatically closes and discards the underlying input stream
+ - ClosedInputStream - returns -1 for any read attempts
+ - ClosedOutputStream - throws an IOException for any write attempts
+ - CloseShieldInputStream - prevents the underlying input stream from being closed.
+ - CloseShieldOutputStream - prevents the underlying output stream from being closed.
+
+- Add Singleton Constants to several stream classes [IO-143]
+
+- PrefixFileFilter [IO-126]
+ - Add faciltiy to specify case sensitivity on prefix matching
+
+- SuffixFileFilter [IO-126]
+ - Add faciltiy to specify case sensitivity on suffix matching
+
+- RegexFileFilter [IO-74]
+ - Add new regular expression file filter implementation
+
+- Make IOFileFilter implementations Serializable [IO-131]
+
+- Improve IOFileFilter toString() methods [IO-120]
+
+- Make fields final so classes are immutable/threadsafe [IO-133]
+ - changes to Age, Delegate, Name, Not, Prefix, Regex, Size, Suffix and Wildcard IOFileFilter
+ implementations.
+
+- IOCase
+ - Add a compare method to IOCase [IO-144]
+
+- Add a package of java.util.Comparator implementations for files [IO-145]
+ - DefaultFileComparator - compare files using the default File.compareTo(File) method.
+ - ExtensionFileComparator - compares files using file name extensions.
+ - LastModifiedFileComparator - compares files using the last modified date/time.
+ - NameFileComparator - compares files using file names.
+ - PathFileComparator - compares files using file paths.
+ - SizeFileComparator - compares files using file sizes.
+</source>
+</p>
+</section>
+
+</body>
+</document>
Propchange: commons/proper/io/trunk/xdocs/upgradeto1_4.xml
------------------------------------------------------------------------------
svn:eol-style = native