Dans un précédent billet, nous avons vu comment utiliser Maven et le plugin Oracle SOA Suite 12c pour automatiser la compilation, le packaging et le déploiement des composites SOA :
http://arkzoyd.wpengine.com/2015/01/11/oracle-soa-12c-integration-continue/
L’objectif étant de mettre en place une intégration continue pour nos projets SOA, il convient que celle-ci puisse couvrir tous les types de développements possibles au sein d’Oracle SOA Suite 12c.
C’est dans ce sens que ce nouveau billet présente comment étendre le mécanisme à vos développements Service Bus.
Pour ceci nous réalisons les actions suivantes :
- Lancement JDeveloper 12.1.3 (composite editor plugin)
- Création d’une application de type Service Bus nommée SBApplication
- Création d’un projet de type Service Bus nommé SBProject
L’arborescence visible dans JDeveloper est la suivante :
De manière analogue à la partie SOA, on remarque immédiatement :
- Un fichier pom.xml a automatiquement été créé au niveau de l’application (cf. « Application Resources »)
- Un fichier pom.xml a automatiquement été créé au niveau des ressources système (idem)
- Un fichier pom.xml a automatiquement été créé au niveau du projet
POM au niveau application :
Même remarque que pour la partie SOA : ce fichier a pour vocation de faire de l’application Service Bus un module Maven parent regroupant autant de modules enfants que de projets Service Bus. Il permet ainsi de compiler, packager et déployer une application Service Bus en une seule opération.
POM au niveau ressources système :
Ce POM représente un module Service Bus contenant les ressources systèmes de l’application (proxy server, etc.).
POM au niveau projet :
Comme pour la partie SOA, ce fichier paramètre le build Maven d’un projet Service Bus :
- Indique l’utilisation du plugin Maven pour Service Bus fourni par Oracle (oracle-servicebus-plugin) au travers du POM parent (sbar-project-common)
- Précise la configuration du plugin Maven pour Service Bus
Nous allons désormais voir comment utiliser ces fichiers avec Maven. A noter que celui-ci et le plugin Oracle ont été installés lors de la partie SOA (cf. billet précédent).
Check Maven:
mvn -v
Check plugin Oracle pour Service Bus (différent du plugin pour les composites SOA):
mvn help:describe -Dplugin=com.oracle.servicebus.plugin:oracle-servicebus-plugin -Ddetail
Modification des POM dans JDeveloper:
Pour simplifier les opérations suivantes, nous modifions la version dans les POM d’application et de projets (1.0-SNAPSHOT => 1.0):
POM application:
POM ressources système :
POM projet :
Nous sommes désormais prêts à packager puis déployer notre application Service Bus.
Package (pas de step compile pour service bus) :
mvn package -DoracleHome=D:\oracle\fmw12c
L’archive Service Bus du projet SBProject résultante se trouve alors à l’emplacement suivant :
SBApplication\SBProject\.data\maven\sbconfig.sbar
L’archive Service Bus contenant les ressources système (au niveau application dans JDeveloper) se trouve à l’emplacement suivant :
SBApplication\System\.data\maven\sbconfig.sbar
Deploy :
mvn pre-integration-test -DoracleHome=D:\oracle\fmw12c -DoracleServerUrl=http://devsrvsoa001.nexity.net:7001 -DoracleUsername=weblogic -DoraclePassword=WebLogic12
Pour les déploiements Service Bus, le serveur d’administration doit-être utilisé (contrairement à la partie SOA visant un serveur managé).
Utilisation du POM parent pour centraliser les propriétés utilisées:
Les POM de projet dépendent d’un POM parent présent à l’emplacement suivant:
%M2_REPO%\com\oracle\servicebus\sbar-project-common\12.1.3-0-0\sbar-project-common-12.1.3-0-0.pom (pour les projets)
Les POM de ressources système dépendent d’un POM parent présent à l’emplacement suivant:
%M2_REPO%\com\oracle\servicebus\sbar-system-common\12.1.3-0-0\sbar-system-common-12.1.3-0-0.pom (pour les projets)
Dans les 2 cas, vous pouvez renseigner la configuration suivante (de manière analogue à la partie SOA, cf. billet précédent) :
Les lignes de commande à passer devenant:
mvn package
mvn pre-integration-test
Conclusion:
L’automatisation du packaging et du déploiement des projets Service Bus repose sur les mêmes mécanismes que pour les composites SOA. L’utilisation de Maven permet de simplifier et de standardiser ces opérations.
Plus d’info :
https://docs.oracle.com/middleware/1213/core/MAVEN/osb_maven_project.htm
Nous verrons dans un prochain billet comment lier la partie Service Bus et la partie SOA au sein d’un même build Maven.