You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/12/15 03:33:58 UTC

svn commit: r487432 - in /directory/branches/trunks/schema/apacheds/bootstrap-partition/src: main/java/org/apache/directory/server/core/schema/bootstrap/partition/ test/java/org/apache/directory/server/core/schema/bootstrap/partition/

Author: akarasulu
Date: Thu Dec 14 18:33:57 2006
New Revision: 487432

URL: http://svn.apache.org/viewvc?view=rev&rev=487432
Log:
adding some formal error handling

Modified:
    directory/branches/trunks/schema/apacheds/bootstrap-partition/src/main/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractor.java
    directory/branches/trunks/schema/apacheds/bootstrap-partition/src/test/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractorTest.java

Modified: directory/branches/trunks/schema/apacheds/bootstrap-partition/src/main/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractor.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/bootstrap-partition/src/main/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractor.java?view=diff&rev=487432&r1=487431&r2=487432
==============================================================================
--- directory/branches/trunks/schema/apacheds/bootstrap-partition/src/main/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractor.java (original)
+++ directory/branches/trunks/schema/apacheds/bootstrap-partition/src/main/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractor.java Thu Dec 14 18:33:57 2006
@@ -32,7 +32,7 @@
 
 
 /**
- * Document me!
+ * Dumps a schema partition onto disk from a jar.
  *
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
@@ -41,7 +41,17 @@
 {
     private static final String[] EMPTY = new String[0];
 
-    
+
+    /**
+     * Extracts the contents of a partition jar file into a destination 
+     * directory.
+     * 
+     * @param jarFile the jar file to extract the schema partition from
+     * @param destDir the destination directory to extract into: the destination 
+     *  directory will contain the schema directory
+     * @return the list of db files extracted 
+     * @throws IOException
+     */
     public static String[] extract( File jarFile, File destDir ) throws IOException
     {
         byte[] buf = new byte[512];
@@ -60,22 +70,40 @@
             System.out.println( "entry name = " + entry.getName() );
             if ( entry.getName().startsWith( "schema" ) )
             {
-                if ( entry.isDirectory() )
+                // we're only interested in db files
+                if ( entry.isDirectory() || ! entry.getName().endsWith( ".db" ) )
                 {
                     continue;
                 }
                 
                 File outFile = new File( destDir, entry.getName() );
-                FileOutputStream out = new FileOutputStream( outFile );
-                InputStream in = jar.getInputStream( entry );
-                while ( in.available() > 0 )
+                FileOutputStream out = null;
+                InputStream in = null;
+
+                try
+                {
+                    out = new FileOutputStream( outFile );
+                    in = jar.getInputStream( entry );
+                    while ( in.available() > 0 )
+                    {
+                        int readCount = in.read( buf );
+                        out.write( buf, 0, readCount );
+                    }
+                    out.flush();
+                    files.add( outFile.getAbsolutePath() );
+                }
+                finally
                 {
-                    int readCount = in.read( buf );
-                    out.write( buf, 0, readCount );
+                    if ( out != null )
+                    {
+                        out.close();
+                    }
+                    
+                    if ( in != null )
+                    {
+                        in.close();
+                    }
                 }
-                out.flush();
-                out.close();
-                in.close();
             }
         }
         

Modified: directory/branches/trunks/schema/apacheds/bootstrap-partition/src/test/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractorTest.java
URL: http://svn.apache.org/viewvc/directory/branches/trunks/schema/apacheds/bootstrap-partition/src/test/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractorTest.java?view=diff&rev=487432&r1=487431&r2=487432
==============================================================================
--- directory/branches/trunks/schema/apacheds/bootstrap-partition/src/test/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractorTest.java (original)
+++ directory/branches/trunks/schema/apacheds/bootstrap-partition/src/test/java/org/apache/directory/server/core/schema/bootstrap/partition/SchemaPartitionExtractorTest.java Thu Dec 14 18:33:57 2006
@@ -37,6 +37,14 @@
     {
         String jarFilePath = System.getProperty( "jarFilePath" );
         String destDirPath = System.getProperty( "destDirPath" );
+        
         SchemaPartitionExtractor.extract( new File( jarFilePath ), new File( destDirPath ) );
+        
+//        String[] files = SchemaPartitionExtractor.extract( new File( jarFilePath ), new File( destDirPath ) );
+//        
+//        for ( String file: files )
+//        {
+//            System.out.println( file );
+//        }
     }
 }