org.apache.maven.shared.jar
Class JarAnalyzer

java.lang.Object
  extended by org.apache.maven.shared.jar.JarAnalyzer

public class JarAnalyzer
extends Object

Open a JAR file to be analyzed. Note that once created, the closeQuietly() method should be called to release the associated file handle.

Typical usage:

  JarAnalyzer jar = new JarAnalyzer( jarFile );
 

try { // do some analysis, such as: jarClasses = jarClassAnalyzer.analyze( jar ); } finally { jar.closeQuietly(); }

// use jar.getJarData() in some way, or the data returned by the JAR analyzer. jar itself can no longer be used.

Note: that the actual data is separated from this class by design to minimise the chance of forgetting to close the JAR file. The JarData class exposed, as well as any data returned by actual analyzers that use this class, can be used safely once this class is out of scope.

See Also:
JarIdentificationAnalysis.analyze(JarAnalyzer), JarClassesAnalysis.analyze(JarAnalyzer)

Constructor Summary
JarAnalyzer(File file)
          Constructor.
 
Method Summary
 void closeQuietly()
          Close the associated JAR file, ignoring any errors that may occur.
 List filterEntries(Pattern pattern)
          Filter a list of JAR entries against the pattern.
 List getClassEntries()
          Get all the classes in the JAR.
 List getEntries()
          Get all the contained files in the JAR.
 InputStream getEntryInputStream(JarEntry entry)
          Get the data for an individual entry in the JAR.
 File getFile()
          Get the file that was opened by this analyzer.
 JarData getJarData()
           
 List getMavenPomEntries()
          Get all the Maven POM entries in the JAR.
 List getVersionEntries()
          Get all the version text files in the JAR.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JarAnalyzer

public JarAnalyzer(File file)
            throws IOException
Constructor. Opens the JAR file, so should be matched by a call to closeQuietly().

Parameters:
file - the JAR file to open
Throws:
IOException - if there is a problem opening the JAR file, or reading the manifest. The JAR file will be closed if this occurs.
Method Detail

getEntryInputStream

public InputStream getEntryInputStream(JarEntry entry)
                                throws IOException
Get the data for an individual entry in the JAR. The caller should closeQuietly the input stream, and should not retain the stream as the JAR file may be closed elsewhere.

Parameters:
entry - the JAR entry to read from
Returns:
the input stream of the individual JAR entry.
Throws:
IOException - if there is a problem opening the individual entry

closeQuietly

public void closeQuietly()
Close the associated JAR file, ignoring any errors that may occur.


filterEntries

public List filterEntries(Pattern pattern)
Filter a list of JAR entries against the pattern.

Parameters:
pattern - the pattern to filter against
Returns:
the list of files found, in JarEntry elements

getClassEntries

public List getClassEntries()
Get all the classes in the JAR.

Returns:
the list of files found, in JarEntry elements

getMavenPomEntries

public List getMavenPomEntries()
Get all the Maven POM entries in the JAR.

Returns:
the list of files found, in JarEntry elements

getVersionEntries

public List getVersionEntries()
Get all the version text files in the JAR.

Returns:
the list of files found, in JarEntry elements

getEntries

public List getEntries()
Get all the contained files in the JAR.

Returns:
the list of files found, in JarEntry elements

getFile

public File getFile()
Get the file that was opened by this analyzer.

Returns:
the JAR file reference

getJarData

public JarData getJarData()


Copyright © 2002-2010 The Apache Software Foundation. All Rights Reserved.