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