blob: dbfe421c76efd32a9ea71ed378f9c0918465b571 [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<section id="detecting.java">
<title>Java Detection Criteria</title>
<para>
Bundlor scans any Java class it can find in the artifact created by the underlying build system. This means
that if a build process has custom behavior (i.e. weaving with AspectJ or <literal>jarjar</literal>ing),
Bundlor will be able to see and analyze the changes made by that process as long as the changes are in the
artifact created by the build system.
</para>
<para>
There are a number of places in a Java class that another Java type can be referenced from. Bundlor detects
these references and adds manifest requirements for them.
</para>
<section>
<title>Export Package</title>
<para>
Bundlor exports any package that contains a class.
</para>
</section>
<section>
<title>Import Package</title>
<para>
The following is a list of the places that Bundlor will search for type names
<itemizedlist>
<listitem>Declared Type Superclass Types</listitem>
<listitem>Declared Type Implemented Interfaces Types</listitem>
<listitem>Declared Type Annotation Types</listitem>
<listitem>Declared Field Types</listitem>
<listitem>Declared Field Values Types</listitem>
<listitem>Declared Method Argument Types</listitem>
<listitem>Declared Method Return Types</listitem>
<listitem>Declared Method Exception Types</listitem>
<listitem>Declared Method Annotation Types</listitem>
<listitem>Reference To Field Owner Type</listitem>
<listitem>Reference To Field Type</listitem>
<listitem>Declared Local Variable Type</listitem>
<listitem>Reference to Method Declaring Type</listitem>
<listitem>Reference to Method Return Type</listitem>
<listitem>Reference to Method Argument Types</listitem>
<listitem>Allocation of Array Type</listitem>
<listitem>Declared Parameter Annotation Types</listitem>
<listitem>Caught Exception Type</listitem>
<listitem>Instantiated Type</listitem>
<listitem>Cast Target Type</listitem>
<listitem>Instanceof Type</listitem>
<listitem>Declared Constant Type</listitem>
</itemizedlist>
</para>
</section>
</section>