Entry Points
Entry Points — Methods and Fields
Fields and methods are used to indicate entry points into the application. DashO's analysis begins at these locations and is used to traverse the call graph of the application. This allows DashO to remove unused classes and members. Methods and fields that are used as entry points are non-renameable by default. The class and/or member can be made renameable by selecting the item, pressing the Edit... button, and checking the Rename checkbox in the editor dialog.
See the Graphical Rules Editor section to compose rules that define method and field based entry points.
Conditional Including
It is sometimes necessary to manually include class files into the project. If the Class.forName()
construct is used anywhere in the project, DashO will be unable to determine all possible classes that might be needed. In this case, any classes that will be referenced in the forName()
construct must be manually included as entry points. These classes should not be renameable. See Dynamic Class Loading for more details on forname
detection.
Note:
If no entry points are defined DashO will see if it can find entry points in the Manifests of input jars. If none are found, it defaults to library mode where all public and protected classes and members are used as entry points.
Entry Points — Libraries
Jars or directories of classes can be used as a library entry point. DashO uses all public members of the classes as non-renameable entry points. Optionally, protected members can be added as non-renameable entry points.
Libraries may be added by selecting them from the file system using the Add button. You can also create a library entry by using the New button and editing its name. The names of library entries can contain Property References.
See the section <library> Entry Point for details concerning library entry points.
Note:
Jars or folders added as libraries do not need to be added to the input list. Libraries are combined with the input list to determine the classes to be processed. When adding or removing library entries you can use the refresh option from the toolbar or menu to update the list of input classes.
Entry Points — Special Classes
A special class entry point allows the specification of a class that contains the implementation of interfaces or extensions of a class that define an entry point into an application. These entry points are typically defined by frameworks for such things as Spring, J2ME, or Applets. The names of these classes can be specified as an exact match, a pattern, or a regular expression.
By default, special classes are non-renameable. The class, and in most cases its members, can be made renameable by right-clicking on the item to edit its properties and check the Rename Class or Rename Members checkbox.
Applets
For DashO, an applet is a class that directly or indirectly extends java.applet.Applet
. The applet's class can be made renameable, but the methods defined by java.applet.Applet
are not renameable. See the <applet> section for details.
Servlets
For DashO a servlet is a class that directly or indirectly implements javax.servlet.Servlet
. The servlet's class can be made renameable, but the methods defined by java.applet.Servlet
are not renameable. See the <servlet> section for details.
Enterprise JavaBeans — EJBs
Enterprise JavaBeans are server-side components written in Java that can be used to write distributed object-oriented enterprise applications. For DashO's purposes, an EJB is any class that extends the interfaces defined in the javax.ejb
package including the bean's home and key classes. See the <ejb> section for details.
Midlet and iAppli
A Midlet is a Java class that runs on embedded devices using Java ME, CLDC, or MIDP. The Midlet class should extend javax.microedition.midlet.Midlet
directly or indirectly. iAppli classes are similar but use NTT DoCoMo's iAppli framework and extend com.nttdocomo.ui.IApplication
either directly or indirectly. The midlet's and iAppli's classes can be made renameable, but the methods defined by javax.microedition.midlet.Midlet
or com.nttdocomo.ui.IApplication
are not renameable. See the <midlet> and <iappli> section for details.
Android
Android is used to identify classes from an Android project. These classes will extend android.app.Application
, android.app.Activity
, android.app.Service
, android.content.BroadcastReceiver
, or android.content.ContentProvider
. These are each specified in the AndroidManifest.xml as an application, activity, service, receiver, or provider. See the <android> section for details.
SpringBean
SpringBean is used to identify classes used as Spring beans (these classes would be referenced in your spring xml configuration files). There is an Additional Entry Points setting for non-property methods such as init-method
and destroy-method
. Unlike other special classes, renaming members is split into different categories:
Rename Property Methods – Controls the renaming of property methods and fields.
Rename Entry Points – Controls the renaming of the Additional Entry Points specified.
Rename Other Members – Controls the renaming of all other methods and fields.
See the <springbean> and Spring Framework sections for additional details.
Class public fields/methods
DashO uses all public fields and methods in the classes as entry points. The class and its public members will not be renamed. See the <publics> section for details.
Class all fields/methods
DashO uses all fields and methods in the classes as entry points. The class and all its members will not be renamed. Specifying classes in this manner performs an unconditional include of the class. See the <unconditional> Entry Point section for details.