=== added directory 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/comparator'
=== added file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/comparator/FileLastModifiedComprator.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/comparator/FileLastModifiedComprator.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/comparator/FileLastModifiedComprator.java	2009-09-14 13:48:27 +0000
@@ -0,0 +1,44 @@
+package org.hisp.dhis.system.comparator;
+
+/*
+ * Copyright (c) 2004-2007, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.io.File;
+import java.util.Comparator;
+
+/**
+ * @author Tran Thanh Tri
+ * @version $Id: Feature.java 28-04-2008 16:06:00 $
+ */
+public class FileLastModifiedComprator
+    implements Comparator<File>
+{
+    public int compare( File o1, File o2 )
+    {                
+        return (int) (o1.lastModified() - o2.lastModified());
+    }
+}

=== modified file 'dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/StreamUtils.java'
--- dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/StreamUtils.java	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-support/dhis-support-system/src/main/java/org/hisp/dhis/system/util/StreamUtils.java	2009-09-14 13:48:27 +0000
@@ -27,6 +27,8 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -39,12 +41,18 @@
 import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
+import org.hisp.dhis.system.comparator.FileLastModifiedComprator;
+
 /**
  * @author Lars Helge Overland
  * @version $Id$
@@ -68,6 +76,65 @@
     }
 
     /**
+     * Writes the content of the first File to the second File.
+     * 
+     * @param inFile the input File.
+     * @param outFile the output File.
+     */
+    public static void write( File inFile, File outFile )
+    {
+        BufferedInputStream in = null;
+        BufferedOutputStream out = null;
+        
+        int b = 0;
+        
+        try
+        {
+            in = new BufferedInputStream( new FileInputStream( inFile ) );
+            out = new BufferedOutputStream( new FileOutputStream( outFile ) );
+            
+            while ( ( b = in.read() ) != -1 )
+            {
+                out.write( b );
+            }
+        }
+        catch ( IOException ex )
+        {
+            throw new RuntimeException( ex );
+        }
+        finally
+        {
+            closeInputStream( in );
+            closeOutputStream( out );
+
+        }
+    }
+
+    /**
+     * Returns all Files in the given directory.
+     * 
+     * @param directory a File representing the relevant directory.
+     * @param sort indicates whether to sort chronologically on the lastModified property.
+     * @return a List of Files.
+     */
+    public static List<File> getFileList( File directory, boolean sort )
+    {
+        List<File> files = new ArrayList<File>();
+
+        if ( directory != null )
+        {
+            files = Arrays.asList( directory.listFiles() );
+        }
+        
+        if ( sort )
+        {
+            Collections.sort( files, new FileLastModifiedComprator() );
+        }
+        
+        return files;
+    }
+
+    /**
      * Writes the content of the StringBuffer to the file.
      * 
      * @param file the file to write to.

