Phased rollout

 

This version of the software is currently available only to early adopter SaaS customers as the first step in our phased rollout. Click here to view an earlier version.

Using components from another application or library


Before you begin make sure that you create a project and a deployment package for 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 Innovation Studio.  

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