[Skip to content]

2.7. Repository

For certain features, Jalopy needs to know about the referenced types. When used inside an IDE, Jalopy uses the provided infrastructure to access this information. But when run standalone, such information in maintained in a simple database, called the type repository. The repository page provides the means to maintain the database. But as an end user you usually don’t have to deal with the repository directly and the provided functionality is purely for forensic purposes.

Figure 2.32. Repository settings page

Repository settings page

The type repository is only necessary for the Ant, Console and Maven plug-ins and used for features that require type resolution like the import optimization. Unlike all other functionality which works purely on the source code level, type information is extracted by analyzing the binary files of a project. It is therefore a necessity that the class path is correctly configured in order to be able to process all needed files.

Since 1.0.2

2.7.1. Searching the repository

To query the type repository for a specific type or package name, enter the information in the text field and press the Search button. This is mostly useful only during developing of the application and might never be used by end users. You can either search for a single type name (e.g. “String”), a qualified type name (e.g. "java.lang.String") or a package name (e.g. "java.lang").

2.7.2. Displaying info about the repository

To display some statistics about the type repository, press the Info button.

2.7.3. Adding libraries to the repository

To manually add a class library or directory to the repository, click on the Add... button, select the library to add and click Add. This is most useful only during testing and debugging, and does not provide much pratical need for the casual end-user.

2.7.4. Removing the repository

To remove the type repository from disk, press the Remove button. The database will be closed if it is currently open and all stored information will be erased.

2.7.5. Initialization

During the initialization of the type repository all project class files are analyzed. Jalopy uses a byte code reader (ASM) and attempts to gather both the class name and all its referenced super class names for a given file. For 3rd party libraries, it can be possible that not all super classes can be loaded (i.e. are defined or even be part of the project). In most cases this should not be problematic, but it still potentially could hinder the successful execution of the services that rely on the type repository later on. Therefore, users can control the behavior of the repository here and specify how problems should be handled.

Log errors during loading

When enabled, Jalopy logs a warning when a class could not be fully analyzed. By default, this option is enabled as it is recommended that you manually verify that none of the mentioned files might pose problems later on. The type repository will be initialized despite the problems. All dependent features will be available.

Since 1.0.3

Fail on errors during loading

When enabled, the type repository will not be initialized when an error occurs. All dependent features will be disabled.

Since 1.0.3