Author: davidb
Date: Tue Mar 31 15:23:39 2015
New Revision: 1670365

URL: http://svn.apache.org/r1670365
Log:
FELIX-4764 Add support to GZIP based compact index files

Committed on behalf of Cristiano GaviĆ£o with many thanks!

Added:
    felix/trunk/bundlerepository/src/test/resources/spec_repository.gz   (with 
props)
Modified:
    
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
    
felix/trunk/bundlerepository/src/test/java/org/apache/felix/bundlerepository/impl/DataModelHelperTest.java

Modified: 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java?rev=1670365&r1=1670364&r2=1670365&view=diff
==============================================================================
--- 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
 (original)
+++ 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/DataModelHelperImpl.java
 Tue Mar 31 15:23:39 2015
@@ -34,6 +34,7 @@ import java.util.Set;
 import java.util.jar.Attributes;
 import java.util.jar.JarFile;
 import java.util.jar.Manifest;
+import java.util.zip.GZIPInputStream;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
@@ -108,6 +109,10 @@ public class DataModelHelperImpl impleme
                     entry = zin.getNextEntry();
                 }
             }
+            else if (url.getPath().endsWith(".gz"))
+            {
+                is = new GZIPInputStream(FileUtil.openURL(url));               
     
+            }
             else
             {
                 is = FileUtil.openURL(url);

Modified: 
felix/trunk/bundlerepository/src/test/java/org/apache/felix/bundlerepository/impl/DataModelHelperTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/test/java/org/apache/felix/bundlerepository/impl/DataModelHelperTest.java?rev=1670365&r1=1670364&r2=1670365&view=diff
==============================================================================
--- 
felix/trunk/bundlerepository/src/test/java/org/apache/felix/bundlerepository/impl/DataModelHelperTest.java
 (original)
+++ 
felix/trunk/bundlerepository/src/test/java/org/apache/felix/bundlerepository/impl/DataModelHelperTest.java
 Tue Mar 31 15:23:39 2015
@@ -18,11 +18,14 @@
  */
 package org.apache.felix.bundlerepository.impl;
 
+import java.net.URL;
 import java.util.jar.Attributes;
 
 import junit.framework.TestCase;
 import org.apache.felix.bundlerepository.DataModelHelper;
+import org.apache.felix.bundlerepository.Repository;
 import org.apache.felix.bundlerepository.Resource;
+import static org.junit.Assert.*;
 
 public class DataModelHelperTest extends TestCase
 {
@@ -62,4 +65,16 @@ public class DataModelHelperTest extends
         
r.setFilter("(&(package=javax.transaction)(partial=true)(mandatory:<*partial))");
         
assertEquals("(&(package=javax.transaction)(partial=true)(mandatory:<*partial))",
 r.getFilter());
     }
+    
+    public void testGzipResource() throws Exception {
+        URL urlArchive = getClass().getResource("/spec_repository.gz");
+        assertNotNull("GZ archive was not found", urlArchive);
+        Repository repository1 = dmh.repository(urlArchive);
+
+        URL urlRepo = getClass().getResource("/spec_repository.xml");
+        assertNotNull("Repository file was not found", urlRepo);
+        Repository repository2 = dmh.repository(urlRepo);
+        assertEquals(repository1.getName(), repository2.getName());
+        assertEquals(repository1.getResources().length, 
repository2.getResources().length);
+    }
 }

Added: felix/trunk/bundlerepository/src/test/resources/spec_repository.gz
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/test/resources/spec_repository.gz?rev=1670365&view=auto
==============================================================================
Binary file - no diff available.

Propchange: felix/trunk/bundlerepository/src/test/resources/spec_repository.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream


Reply via email to