4

We're trying to define a SDLC for BusinessWorks 6.x applications. We are mostly a Java shop, so our classical SDLC involves Jenkins, Maven and Artifactory.

We have started recently to build adapters for a SOA project based on BW6 and we would like to integrate the related projects in our SDLC. In a perfect world, we would like to:

  • Be able to version, build and release shared modules autonomously
  • When building an application, resolve and integrate shared modules as dependencies (à la Maven, fetching versioned artifacts from a repository)
  • Perform validation (maybe automated tests?) before release

We have had a look at the Maven BW6 plugin, but it's a bit too simplistic - e.g it does not provide a way to build and release shared modules as autonomous entities, and it cannot resolve resources from shared modules declared as dependencies in the POM. Furthermore, the approach of having a root POM for a workspace looks a bit brittle, and POM updates tend to break things.

We are currently looking at leveraging the bwdesign utility, with processes as described below.

For shared modules:

  • Clone/checkout the source code for the shared module
  • Launch bwdesign using an empty directory as workspace
    • system:import the checked out module into the empty workspace
    • system:validate, breaking on error
    • system:export as a ZIP file
  • Deploy the ZIP file to Artifactory, using an appropriate naming convention to be able to resolve it afterwards

For applications:

  • Clone/checkout the source code for the application and application module
  • Resolve dependencies using the app module's manifest
  • Fetch all ZIP files for the referenced shared modules
  • Launch bwdesign using an empty directory as a workspace
    • system:import shared module ZIPs in a dependency-satisfying order
    • system:import the app module and application directories
    • system:validate, breaking on error
    • system:export as an EAR file
  • Deploy the EAR file to Artifactory, again using an appropriate naming convention

It seems really cumbersome, especially when you're used to mvn clean package :)

Has anyone ever attempted something as described above?

Mithfindel
  • 4,553
  • 1
  • 23
  • 32

0 Answers0