Oracle B2B provides a nice console to configure document definitions, trading partners, and trading partner agreements. That said, all of this configuration can be quite complex. Maintaining control over the configuration and ensuring an adequate baseline is not easy. This plugin aids Continuous Deployment by adding a 'development workflow' for B2B artifacts.
Rather than supplant the B2B Console, the plugin embraces the existing B2B Console as the "IDE" where B2B artifacts are created or edited. The change is in how those projects are migrated from one environment to the next.
Practically speaking, the plugin serves as an "intelligent wrapper" around the existing Oracle B2B ANT tasks. It calls the core import/export tasks (which produce/consume document definitions, trading partners, and trading agreements in XML files), adapts them to the Maven lifecycle, and applies some tweaks to ease the development experience when storing these in source control. See github.com/avioconsulting/b2b-maven-plugin for more information about how that works.
The plugin is currently available only via source. Visit github.com/avioconsulting/b2b-maven-plugin and follow the instructions on how to build/install and other requirements.
Create a project
There are two types of projects that need to be defined:
These projects will contain document definitions (e.g. EDI_X12 variants) that specific trading partners/agreements, which can be specified in other projects, will then depend on. You're expected to ensure this project is run/deployed before the trading partner projects.
These projects contain specific trading partners and agreements that reference the document definitions. The main practical difference from the plugin's point of view as compared to document definition projects has to do with ID/XML reformatting and additional deployment steps. The plugin is designed to eventually allow separate Maven projects for each trading partner to allow granular deployments. Read about the Maven goals on the Github site for more information.
Note the different properties based on each project style below:
<?xml version="1.0" encoding="UTF-8"?>
<description>Super POM for tradingpartner1</description>
<!-- OR -->
<!-- These should match up with the trading partner names from the B2B console that you wish to include in this project. This will be used by the export goal to filter. Due to the ID issue in the wish list, include all names here -->
<!-- These should match up with the trading partner agreement names from the B2B console that you wish to include in this project. This will be used by the export goal to filter. Due to the ID issue in the wish list, include all names here -->
<!-- Applicable to both -->
<!-- If you're using settings.xml for these, need to repeat them here, overriden values from settings.xml do not make it into the plugin for some reason -->
Exporting to source control
As mentioned above, B2B artifacts are first created/edited in the B2B Console. When you are ready to take a baseline (this should happen often, not far off from how often regular code is committed), run the following:
mvn -Db2b.export=true generate-resources
As part of the export process, trading partner IDs/filenames are altered to be more consistent along with consistent XML node order. This aids in useful source control diffs. After running this, ensure you check in all changed files.
When it's time to promote B2B artifacts to another environment, it's another simple Maven command:
This command will package up the B2B artifacts from source control and import it into the B2B metadata repository on the server.
For more details about the Maven goals/lifecycle the plugin implements and for the source code, visit github.com/avioconsulting/b2b-maven-plugin.