Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Today, the apis and the source jar contain all packages that make up the api region. However, if all public packages of a publically available artifact are used, there should be an option to exclude this artifact from both and rather provide a separate output with that dependency.
Proposal:
A new configuration for opting into this mechanism is provided. If enabled and all public packages of a bundle are used in an api region, then the packages from this artifact are not added to the apis jar or the sources jar. Instead a feature refs file is created with these artifact as a dependency.
An additional, optional configuration can take a list of repository urls, to test whether an artifact is publically available from one of these repositories. If not specified, the artifact is assumed to be publically available.
For such artifacts, the scm properties must not be set. An error should be created in this case.
The bundle might have an additional property "api-ids" which contains a list of Artifact IDs to api jars - these are used as a dependency instead of the original artifact.
If "source-ids" is specified, "api-ids" defaults to the artifacts listed there without a classifier. If source-ids does not specify a classifier -> failure