This documentation supports the 20.08 version of BMC Helix Platform. 
To view an earlier version, select 20.02 from the Product version menu.

Using components from another developer's Digital Service application or library

Before you begin make sure that you create a project and a deployment package for Digital Service application (or smart library) development. 

If your smart bundle has dependency on the other available smart bundles, you should specify the dependency in the pom.xml file located in the bundle project. For example, your bundle may have  a dependency on the Approval library.

Notes

  • You cannot configure smart bundles with circular dependencies on each other. A circular dependency is a relation between two or more bundles which either directly or indirectly depend on each other to function properly.
  • You must deploy a bundle’s dependencies before you deploy a bundle to BMC Helix Platform.  

To add the dependency in the pom.xml file

  1. Open the pom.xml file located in bundle project. For example, projects\work-order-lib\bundle\pom.xml .
  2. Add the dependency in the maven-bundle-plugin configuration, using the following syntax:

    ,<groupId>.<artifactId>;<version>,

    Note: The dependencies are delimited by commas and the version information is separated using a semicolon.  
    For example, if you want to add the dependency on the Standard library and Approval library, use the following syntax:

    <RxBundle-Dependencies>standardlib;9.5.00-SNAPSHOT,com.bmc.arsys.rx.approval;9.5.00-SNAPSHOT</RxBundle-Dependencies>

The following is the sample of maven-bundle-plugin configuration in the bundle pom.xml file :

<plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <version>${maven-bundle-plugin.version}</version>
      <extensions>true</extensions>
      <configuration>
            <instructions>
                  <Bundle-Name>${rx-sdk.bundleName}</Bundle-Name>
                  <Bundle-SymbolicName>${rx-sdk.bundleId}</Bundle-SymbolicName>
                  <Bundle-Activator>com.example.app1.bundle.App1Application</Bundle-Activator>
                  <Import-Package>*;resolution:=optional</Import-Package>
                  <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
                  <Bundle-Description>${rx-sdk.bundleDescription}</Bundle-Description>
                  <Bundle-Vendor>${rx-sdk.bundleDeveloperId}</Bundle-Vendor>
                  <RxBundle-DeveloperName>${rx-sdk.bundleDeveloperName}</RxBundle-DeveloperName>
                  <RxBundle-FriendlyName>${rx-sdk.bundleFriendlyName}</RxBundle-FriendlyName>
                  <RxBundle-IsApplication>${rx-sdk.bundleIsApplication}</RxBundle-IsApplication>
                  <RxBundle-Dependencies>standardlib;9.5.00-SNAPSHOT,com.example.somelibrary;1.0.00-SNAPSHOT</RxBundle-Dependencies>
            </instructions>
      </configuration>
</plugin>

Where to go from here

Using code from open source

Was this page helpful? Yes No Submitting... Thank you

Comments