Enhace constants pool handling.
[hs-java.git] / Java / JAR / Archive.hs
index 0963a156eb61250a0cdfdd19c91fb7f45ec7bcc3..a4dd02669e9a09693223f3b169312c20eccca7c3 100644 (file)
@@ -3,6 +3,7 @@ module Java.JAR.Archive where
 
 import qualified Codec.Archive.LibZip as Zip
 import Data.Binary
+import Data.List
 import qualified Data.ByteString.Lazy as B
 
 import Java.ClassPath.Types
@@ -18,8 +19,10 @@ readJAREntry jarfile path = do
 -- | Read all entires from JAR file
 readAllJAR :: FilePath -> IO [Tree CPEntry]
 readAllJAR jarfile = do
-  files <- Zip.withArchive [] jarfile $ Zip.fileNames []
-  return $ mapF (NotLoadedJAR jarfile) (buildTree files)
+    files <- Zip.withArchive [] jarfile $ Zip.fileNames []
+    return $ mapF (NotLoadedJAR jarfile) (buildTree $ filter good files)
+  where
+    good file = ".class" `isSuffixOf` file
 
 -- | Read one class from JAR file
 readFromJAR :: FilePath -> FilePath -> IO (Class Direct)