ANT & WLST Part 3 – Déployer des adaptateurs de ressources sur Weblogic Server

Troisième article de la série, si vous n’avez pas lu le premier, je vous recommande fortement de le faire !
Plus court que les autres, nous allons voir ici comment déployer des adaptateurs de ressources comme les DB Adapter, JMS Adapter, AQ, Adapter …etc, à l’aide de scripts.
Comme pour l’article précédent, nous allons ajouter des fichiers :

  • adapter.properties qui contient les propriétés relatives aux adapters
  • 1 scripts WLST qui va déployer nos adapters
  • createResourceAdapters.py
  • les plans de déploiements de vos adapters dans un dossier « plan ». Ces plans sont générés à chaque fois que vous mettez à jour un adapter, ils sont situés par défaut dans le répertoire FMW_INTALL_HOME/ORACLE_SOA_HOME/soa/connectors/plan.

Fichiers de propriétés

adapter.properties

[sourcecode language= »java »]
# Liste des adapters a creer
adapters.to.create = aq, db, jms, bamosb
# AqAdapter
aq.adapter.plan.name = Plan_AQ.xml
aq.adapter.mbean.type = AqAdapter
# SOA OracleBamAdapter
bamsoa.adapter.plan.name = Plan_BAM_RMI.xml
bamsoa.adapter.mbean.type = OracleBamAdapter
# OSB OracleBamAdapter
bamosb.adapter.plan.name = Plan_BAM_RMI_OSB.xml
bamosb.adapter.mbean.type = OracleBamAdapter
# DbAdapter
db.adapter.plan.name = Plan_DB.xml
db.adapter.mbean.type = DbAdapter
# JmsAdapter
jms.adapter.plan.name = Plan_JMS.xml
jms.adapter.mbean.type = JmsAdapter
[/sourcecode]

Fichier ANT

Le fichier ANT est le même que dans l’article précédent, il suffit d’ajouter les blocs suivants dans les bonnes parties.
Partie de déclaration des scripts WLST à utiliser :
[sourcecode language= »xml »]
<property name="adapter.ressource.creation.script" value="wlst/createResourceAdapters.py"/>
<pre>[/sourcecode]
Partie de déclaration des taches ANT invocables :
[sourcecode language= »xml »]
<pre><!– Configuration des plans de deploiements des adaptateurs de ressource –>
<!– AQ, JMS, DB, BAM –>
<target name="configureAdapterDeploymentPlans" depends="createJDBCRessource">
<echo message="Configuring deployment plans"/>
<replace dir="plan">
<include name="**/*.xml"/>
<replacefilter token="@FMW.SOA.HOME@" value="${fmw.soa.home}"/>
</replace>
</target>
<!– Deploiement des adaptateurs de ressource –>
<!– AQ, JMS, DB, BAM –>
<target name="createResourceAdapter" depends="configureAdapterDeploymentPlans">
<echo message="importscript: ${adapter.ressource.creation.script}"/>
<copy todir="${fmw.soa.home}/soa/connectors/plan/">
<fileset dir="plan"/>
</copy>
<java classname="weblogic.WLST" fork="true">
<arg line="${adapter.ressource.creation.script} ${wls.server}
${wls.username} ${wls.password} ${wls.instance} ${fmw.soa.home}"/>
<classpath refid="class.path"/>
</java>
</target>
[/sourcecode]
Nous avons ici une dépendance entre la tache « configureAdapterDeploymentPlans » et celle que nous avons créé dans le premier article « createJDBCRessource ».
En effet, je m’assure que les connexions aux bases de données sont bien créées avant de créer les DB adapters. L’autre particularité de ces tâches ANT est la substitution du token @FMW.SOA.HOME@ par la valeur de la propriété fmw.soa.home.
Cette substitution est nécessaire car les environnements sur lesquels vous allez déployer vos adapters n’ont pas forcément la même structure.
C’est pourquoi j’ai remplacé les valeurs dans mes plans de déploiements par des tokens entourés de « @ » (vous pouvez construire vos tokens comme bon vous semble) qui sont ensuite remplacé par les valeurs relatives à l’environnement par les

Fichier WLST

createResourceAdapters – Création des adaptateurs de ressources

Ce fichier WLST utilise les fonctions communes vues dans l’article précédent :
[sourcecode language= »xml »]
#=======================================================================================
# @@ 3eme partie : Création des adaptateurs de ressources
#=======================================================================================
def createResourceAdapter(prefix):
try:
servermb=getMBean("/Servers/"+serverInstance)
if servermb is None:
print ‘@@@ No server MBean found’
else:
## AQAdapter
print ‘n@@@ Deploying ‘+prefix+’, plan : ‘+FMWSOAHome+’/soa/connectors/plan/’+properties[prefix+’.adapter.plan.name’]
cd(‘/AppDeployments/’+properties[prefix+’.adapter.mbean.type’]+’/Targets’);
redeploy(properties[prefix+’.adapter.mbean.type’], FMWSOAHome+’/soa/connectors/plan/’+properties[prefix+’.adapter.plan.name’],targets=cmo.getTargets())
save()
except:
print "@@@ Unexpected error:", sys.exc_info()[0]
raise
#=======================================================================================
# @@ 2eme Partie : Main, fonction principale du script
#=======================================================================================
def main():
try:
# Creation des data sources
createSession()
adaptersToCreate = properties[‘adapters.to.create’]
print "@@@ Resource adapters to create " + adaptersToCreate
createSession()
for adapterPrefix in adaptersToCreate.split(‘,’):
createResourceAdapter(adapterPrefix)
saveAndCloseSession()
except:
print "Unexpected error: ", sys.exc_info()[0]
dumpStack()
raise
#=======================================================================================
# @@ 1ere Partie : exécutée lors de l’appel du script WLST
#=======================================================================================
print "@@@ Execution de la procedure de creation des adaptateurs de ressources @@@"
try :
# Recuperation des proprietes transmises par ANT
serverURL = sys.argv[1]
user = sys.argv[2]
password = sys.argv[3]
serverInstance = sys.argv[4]
FMWSOAHome = sys.argv[5]
# Chargement du fichier de proprietes
properties = loadProperties("config/adapters.properties")
# Execution
main()
print "@@@ Fin de l’exécution @@@"
except:
print "Unexpected error: ", sys.exc_info()[0]
dumpStack()
raise
[/sourcecode]
Fichier SH
[sourcecode language= »shell »]
### Creation des adaptateurs
elif [ "$1" = "adapters" ]
then
${ANT_HOME}/bin/ant -f build.xml createResourceAdapter
[/sourcecode]

3 réflexions sur “ANT & WLST Part 3 – Déployer des adaptateurs de ressources sur Weblogic Server”

  1. Ping : Développement de scripts WLST via Oracle Enterprise Pack for Eclipse : OEPE « EASYTEAM LE BLOG

  2. Il va peut-être falloir que tu passes à mvn (et Oracle Glassfish), non ?

    1. Dans 1 ou 2 articles je parlerai de Hudson, c’est dans la continuité ^^

Les commentaires sont fermés.