Examples of Dependency Validation
The following examples describe cases, in which dependency validation is useful:
Publishing a Bundle with Missing Dependency. Assume that you have the following bundles in the Bundle Publisher view:
MyProject-A and
MyProject-B. Neither of the bundles has been published to the server.
MyProject-B has a dependency on
MyProject-A and
MyProject-A has a dependency on a package (
com.softwareag.demo.c). The package is not exported by the project, nor by any bundle on the server. This represents a missing dependency. Attempts to publish
MyProject-A will fail with an error message, because the package import is required.
The following table shows the imports package and the exports package for each bundle.
| Imports Package | Exports Package |
MyProject A | com.softwareag.demo.c | com.softwareag.demo.a |
MyProject B | com.softwareag.demo.a | com.softwareag.demo.b |
Removing a Bundle that Provides a Dependency. Assume that you have the following bundles in the Bundle Publisher view:
MyProject-A and
MyProject-B.
MyProject-B has a dependency on
MyProject-A and both bundles are published to the server.
The following table shows the imports package and the exports package for each bundle.
| Imports Package | Exports Package |
MyProject A | | com.softwareag.demo.a |
MyProject B | com.softwareag.demo.a | com.softwareag.demo.b |
If you clear MyProject-A for unpublishing from the server and perform validation, you will see a warning message. The warning states that the bundle you are attempting to remove has a dependency on MyProject-B.
Circular Dependencies. Assume that you have the following bundles in the Bundle Publisher view:
MyProject-A,
MyProject-B, and
MyProject-C. None of the bundles has been published to the server.
MyProject-A has a dependency on
MyProject-B and
MyProject-B has a dependency on
MyProject-C.
MyProject-C has a dependency on
MyProject-A. This represents a circular dependency. Attempts to publish these bundles will fail. If you select the bundles and perform validation, you will see a warning message, describing the following circular dependency:
MyProject-C has a dependency on
MyProject-B, which depends on
MyProject-A, and
MyProject-A depends on
MyProject-B.
The following table shows the imports package and the exports package for each bundle.
| Imports Package | Exports Package |
MyProject A | com.softwareag.demo.b | com.softwareag.demo.a |
MyProject B | com.softwareag.demo.c | com.softwareag.demo.b |
MyProject C | com.softwareag.demo.a | com.softwareag.demo.c |