Module Project Properties Dialog Box: API Versioning
See Also
You open the Module Project Properties dialog box by right-clicking
a module project and choosing Properties.
The API Versioning page contains the following:
- Code Name Base: Displays the name that uniquely identifies the module.
Sets OpenIDE-Module in the MANIFEST.MF file. This line in the MANIFEST.MF file
identifies the JAR file as a module, and provides its code name. If you expose APIs, the code name
is what other modules will use to refer to your module when they declare a dependency on it.
The standard convention is for the name to match the package structure of the module.
- Major Release Version. Specifies the major release version in MANIFEST.MF; may be blank or a non-negative integer.
For example, if your module is called org.myorg.module, the major release version will be
displayed as a forward slash with a number in the MANIFEST.MF file: org.myorg.module/1.
This is typically useful if your module exposes some APIs; modules can declare a dependency on a specific
specification version of the module, so that the depending module will not be loaded if it requires
version 2, but the version of your module that's installed is version 1. For modules with no API to
expose, or which are trivial and unlikely ever to change, the major release version is not required.
- Specification Version. Sets OpenIDE-Module-Specification-Version in the MANIFEST.MF file. Typically when
you add methods that are publicly available (part of the API of your module), you will increment this
number by 0.1, so versions increment 1.0, 1.1, 1.2 and so forth. Thus other modules that need to use
a method or class introducced in 1.1 can declare a dependency on 1.1, so they will not be loaded if that version is not present.
- Append Implementation Versions Automatically.
- Implementation Version. Sets OpenIDE-Module-Implementation-Version in the MANIFEST.MF file. Modules declare,
in their MANIFEST.MF file, what packages they make available to other modules, in the public-packages
section of the nbproject/project.xml file. If your module tries to use a class from another module which is public,
but that class is not actually in one of the packages the other module declares as its "public packages",
it will throw a NoClassDefFoundException at runtime.
- Module Type.
- Regular. A module that is loaded when the platform starts up.
- Autoload. A module that is loaded only when another module needs it. For example,
a library wrapper module is only loaded when a module that depends on it needs it.
- Eager. A module that is loaded if all its dependencies are satisfied. For example,
the module that provides coloring for NetBeans files depends on the module that provides the editor.
Therefore, when you disable the editor module, the IDE automatically disables the coloring module.
- Public Packages. Displays a list of all packages contained in the
source directory plus any class-path-extensions. If checked, the package is included among public-packages
section of the nbproject/project.xml file.
- Export Packages Only to Friends. Is checked if and only if there is at least one entry in
the list below it. The list may include code name bases of other modules and is sorted. If not
empty, packages are kept in friend-packages instead and the friends are listed in nbproject/project.xml.
- Provided Tokens. Sets OpenIDE-Module-Provides in the MANIFEST.MF file.
- See Also
- About NetBeans Platform and Module Development
- About the NetBeans Platform
Legal Notices