neal ec5ca53161 adding coop puppet scripts 5 лет назад
..
lib ec5ca53161 adding coop puppet scripts 5 лет назад
manifests ec5ca53161 adding coop puppet scripts 5 лет назад
templates ec5ca53161 adding coop puppet scripts 5 лет назад
License ec5ca53161 adding coop puppet scripts 5 лет назад
Modulefile ec5ca53161 adding coop puppet scripts 5 лет назад
README.md ec5ca53161 adding coop puppet scripts 5 лет назад
em.png ec5ca53161 adding coop puppet scripts 5 лет назад
example_conf_1_server_with_wls12.1.2_ora_db12c.txt ec5ca53161 adding coop puppet scripts 5 лет назад
example_conf_2_multi_node_domain_with_cluster.txt ec5ca53161 adding coop puppet scripts 5 лет назад
example_conf_3_wls12.1.2_standard.txt ec5ca53161 adding coop puppet scripts 5 лет назад
example_conf_4_weblogic_10.3.6_osb_soa_ps6.txt ec5ca53161 adding coop puppet scripts 5 лет назад
example_conf_5_weblogic_10.3.6_webcenter_portal_content_ps6.txt ec5ca53161 adding coop puppet scripts 5 лет назад
example_conf_6_wls12_windows_standard.txt ec5ca53161 adding coop puppet scripts 5 лет назад
facts.png ec5ca53161 adding coop puppet scripts 5 лет назад
metadata.json ec5ca53161 adding coop puppet scripts 5 лет назад
modulefiles.png ec5ca53161 adding coop puppet scripts 5 лет назад
wlsconsole.png ec5ca53161 adding coop puppet scripts 5 лет назад

README.md

Oracle WebLogic / Fusion Middleware puppet module

created by Edwin Biemond email biemond at gmail dot com
biemond.blogspot.com
Github homepage
Oracle OpenWorld presentation, how to roll out a complete FMW environment in less than 10 minutes

Should work for Solaris x86 64, Windows, RedHat, CentOS, Ubuntu, Debian, Suse SLES or OracleLinux

Version updates

  • 1.2.8 BSU / nodemanager fixes.
  • 1.2.7 Windows fixes.
  • 1.2.6 Webtier installation and associate domain with the Oracle HTTP server.
  • 1.2.5 WebLogic domains also supports Prod mode, set Nodemanager security.
  • 1.2.4 JMS Quota creation, Datasource now supports extra JDBC properties, fixed ruby warning with not escaped chars + arrays in erb files
  • 1.2.3 Wlscontrol support starting of managed servers
  • 1.2.2 Small bug fixes for ADF 12.1.2 install + weblogic configuration examples
  • 1.2.1 Timout fixes + OPatch fix, fix for standard domain and wls 12.1.2, WebLogic 12.1.2 now uses these jars wls_121200.jar, fmw_infra_121200.jar instead of the zip files
  • 1.2.0 Multi node domain support with copydomain class, create Machine, Managed Server & Cluster, less notify output
  • 1.1.1 updated license to Apache 2.0, new wlscontrol class to start or stop a wls server, minimal output in repeating runs, less notify output and a logOutput parameters to control the output
  • 1.1.0 Low on entropy fix with new urandomfix class, add rngd or rng-tools service which adds urandom, removed java.security.egd parameter
  • 1.0.10 createUser param in installwls,installadf(12.1.2) and installjdev when you want to create the OS user and group yourself
  • 1.0.9 replaced sleep with waitforcompletion parameter
  • 1.0.8 added Suse SLES as Operating System, 12.1.2 support for Coherence CLuster, see class wls12c_adf_domain, Added Server, Distributed Queue/Topics to Facts
  • 1.0.7 12.1.2 Fully support for Dynamic Cluster and Elastic JMS, Scripts for creating server templates and dynamic clusters , see class wls12c_adf_domain
  • 1.0.6 Added 12.1.2 Domain features to the 'adf' domain like coherence, jax-ws advanced + soap over jms
  • 1.0.5 JDeveloper 12.1.2 with soa plugin install for Linux + small bug fixes
  • 1.0.4 Weblogic 12.1.2 adf domain creation with RCU ( plus EM,JRF, OWSM )
  • 1.0.3 Weblogic 12.1.2 standard domain creation and start nodemanager of weblogic 12.1.2 domain
  • 1.0.2 Weblogic 12.1.2 support plus ADF 11g / 12c install manifest, refactoring for weblogic 12.1.2
  • 1.0.1 Webcenter, BPM and Webcenter Content domain creation, set Domain and Nodemanager passwords in the domain templates + Crossdomain
  • 1.0.0 Webcenter and Webcenter Content installer support

Vagrant, Puppet and VirtualBox

Look at this great blog how to make your own WebLogic 12.1.2 server in just 10 minutes http://vbatik.wordpress.com/2013/10/11/weblogic-12-1-2-00-with-vagrant/

Linux low on entropy or urandom fix

can cause certain operations to be very slow. Encryption operations need entropy to ensure randomness. Entropy is generated by the OS when you use the keyboard, the mouse or the disk.

If an encryption operation is missing entropy it will wait until enough is generated.

three options
use rngd service (use this wls::urandomfix class)
set java.security in JDK ( jre/lib/security in my jdk7 module )
set -Djava.security.egd=file:/dev/./urandom param

Repository Creation Utility

For FMW 11g (RCU) For the RCU configuration of the Soa Suite or WebCenter you can use my oradb puppet module
RCU configuration of the FMW 12.1.2 is supported by this module and its done by the domain creation

Windows Puppet agents

For windows puppet agents it is necessary to install unxutils tools and extract this on the c drive C:\unxutils
For windows and JDK, you need copy the jdk to c:\oracle\ ( unpossible with the space in c:\program files folder).
For bsu patches facts you need to have the java bin folder in your path var of your system.
Also for registry support install this on the master, read this registry blogpost and install this forge module on the puppet master
puppet module install puppetlabs/registry

Oracle Big files and alternate download location

Some manifests like installwls.pp, opatch.pp, bsupatch.pp, installjdev, installosb, installsoa supports an alternative mountpoint for the big oracle setup/install files.
When not provided it uses the files location of the wls puppet module
else you can use $puppetDownloadMntPoint => "/mnt" or "puppet:///modules/wls/" (default) or "puppet:///middleware/"

Oracle WebLogic Domain on multi machines

When having a Domain on multiple servers you can use the copydomain class, this uses the sshpass and scp utilities to copy the domain to a local folder
for sshpass you need to install epel yum repository, do this by installing "puppet module install stahnma/epel"
for a complete multinode cluster example see example_conf_2_multi_node_domain_with_cluster.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls

Everything on 1 machine WebLogic 12.1.2 (ADF + Coherence)& Database 12c

When you want a FMW WebLogic Domain and a Database with a RCU on 1 machine you can look at the following example see example_conf_1_server_with_wls12.1.2_ora_db12c.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls

Standard WebLogic 10.3.6 cluster on 2 nodes

see example_conf_2_multi_node_domain_with_cluster.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls

Standard WebLogic 12.1.2 server with a domain ( no ADF or FMW )

see example_conf_3_server_wls12.1.2_standard.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls

Standard WebLogic 10.3.6 server + BSU Patch with 11g PS6 of OSB /SOA Suite / BAM & BPM domain

see example_conf_4_weblogic_10.3.6_osb_soa_ps6.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls
also creates JDBC datasources, Resource adapters, A Cluster with Managed Server, JMS server with a JMS module plus Queues & Topics

Standard WebLogic 10.3.6 server + BSU Patch with 11g PS6 of Webcenter portal & content domain ( also BPM portal)

see example_conf_5_weblogic_10.3.6_webcenter_portal_content_ps6.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls

Standard WebLogic 12.1.2 windows server with a domain ( no ADF or FMW )

see example_conf_6_server_wls12.1.2_windows_standard.txt located in your wls module home at the puppet master or look at the my github repos https://github.com/biemond/puppet/tree/master/modules/wls

WLS WebLogic Features

  • installs WebLogic 10g,11g,12c ( 12.1.1 & 12.1.2 )
  • apply BSU patch ( WebLogic Patch )
  • installs Oracle ADF 11g & 12c ( 12.1.2)
  • installs Oracle Service Bus 11g OSB with or without OEPE ( Oracle Eclipse )
  • installs Oracle Soa Suite 11g
  • installs Oracle Webcenter 11g
  • installs Oracle Webcenter Content 11g
  • installs Oracle Webtier and associate domain
  • apply Oracle patch ( OPatch for Oracle products )
  • installs Oracle JDeveloper 11g / 12.1.2 + SOA Suite plugin
  • configures and starts nodemanager
  • Start or stop a WebLogic server
  • storeUserConfig for storing WebLogic Credentials and using in WLST
  • set the log folder of the WebLogic Domain, Managed servers and FMW
  • add JCA resource adapter plan + Entries
  • create Machines, Managed Servers, Clusters, Server templates, Dynamic Clusters, Coherence clusters ( all 12.1.2 )
  • create File or JDBC Persistence Store
  • create JMS Server, Module, SubDeployment, Quota, Connection Factory, JMS (distributed) Queue or Topic,Foreign Servers + entries
  • create SAF agents, SAF Remote Destinations, SAF Imported Destinations, SAF objects
  • basically can run every WLST script with the flexible WLST define manifest

Other options

  • low on entropy fix ( urandom ) by RNGD or RNG-Tools service
  • Multi machine support for a WebLogic domain, can be used for cluster or spreading managed servers

Domain creation options (Dev or Prod mode)

all templates creates a WebLogic domain, logs the domain creation output and do a domain pack in the defined download folder

  • domain 'standard' -> a default WebLogic
  • domain 'adf' -> JRF + EM + Coherence (12.1.2) + OWSM (12.1.2) + JAX-WS Advanced + Soap over JMS (12.1.2)
  • domain 'osb' -> OSB + JRF + EM + OWSM
  • domain 'osb_soa' -> OSB + SOA Suite + BAM + JRF + EM + OWSM
  • domain 'osb_soa_bpm' -> OSB + SOA Suite + BAM + BPM + JRF + EM + OWSM
  • domain 'wc_wcc_bpm' -> WC (webcenter) + WCC ( Content ) + BPM + JRF + EM + OWSM
  • domain 'wc' -> WC (webcenter) + JRF + EM + OWSM

Oracle WebLogic Console

Oracle Enterprise Manager Console

WLS WebLogic Facter

Contains WebLogic Facter which displays the following: Middleware homes, Oracle Software, BSU & OPatch patches, Domain configuration ( everything of a domain like deployments, datasource, JMS, SAF)

Oracle Puppet Facts

My WLS module Files folder, you need to download it yourself and agree to the Oracle (Developer) License

WebLogic 11g + patches: wls1036_generic.jar, p13573621_1036_Generic.zip, p14736139_1036_Generic.zip
WebLogic 12.1.2: wls_121200.jar, fmw_infra_121200.jar
IDE: jdevstudio11117install.jar, soa-jdev-extension_11117.zip, oepe-indigo-all-in-one-11.1.1.8.0.201110211138-linux-gtk-x86_64.zip
OSB + SOA software: ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip, ofm_soa_generic_11.1.1.7.0_disk1_1of2.zip, ofm_soa_generic_11.1.1.7.0_disk1_2of2.zip
Webcenter software: ofm_wc_generic_11.1.1.7.0_disk1_1of1.zip, ofm_wcc_generic_11.1.1.7.0_disk1_1of2.zip, ofm_wcc_generic_11.1.1.7.0_disk1_2of2.zip

Oracle Puppet Facts

WebLogic settings for ulimits and kernel parameters

install the following module to set the database kernel parameters
puppet module install fiddyspence-sysctl

install the following module to set the database user limits parameters
puppet module install erwbgy-limits

 sysctl { 'kernel.msgmnb': ensure => 'present', permanent => 'yes', value => '65536',}
 sysctl { 'kernel.msgmax': ensure => 'present', permanent => 'yes', value => '65536',}
 sysctl { 'kernel.shmmax': ensure => 'present', permanent => 'yes', value => '2147483648',}
 sysctl { 'kernel.shmall': ensure => 'present', permanent => 'yes', value => '2097152',}
 sysctl { 'fs.file-max': ensure => 'present', permanent => 'yes', value => '344030',}
 sysctl { 'net.ipv4.tcp_keepalive_time': ensure => 'present', permanent => 'yes', value => '1800',}
 sysctl { 'net.ipv4.tcp_keepalive_intvl': ensure => 'present', permanent => 'yes', value => '30',}
 sysctl { 'net.ipv4.tcp_keepalive_probes': ensure => 'present', permanent => 'yes', value => '5',}
 sysctl { 'net.ipv4.tcp_fin_timeout': ensure => 'present', permanent => 'yes', value => '30',}

 class { 'limits':
   config => {'*'       => { 'nofile'  => { soft => '2048'   , hard => '8192',   },},
              'oracle'  => {  'nofile'  => { soft => '65535'  , hard => '65535',  },
                              'nproc'   => { soft => '2048'   , hard => '2048',   },
                              'memlock' => { soft => '1048576', hard => '1048576',},},},
   use_hiera => false,}

WebLogic configuration examples

class application_wls12 {
   include wls12_adf, wls12c_adf_domain
   Class['wls12_adf'] -> Class['wls12c_adf_domain']
}
class application_osb_soa {
   include wls1036osb_soa, wls_osb_soa_domain, wls_OSB_application_JDBC, wls_OSB_application_JMS
   Class['wls1036osb_soa'] -> Class['wls_osb_soa_domain'] -> Class['wls_OSB_application_JDBC'] -> Class['wls_OSB_application_JMS']
}
class application_wc {

 include wls1036_wc, wls_wc_wcc_bpm_domain
 Class['wls1036_wc'] -> Class['wls_wc_wcc_bpm_domain']
}
class application_osb {
   include wls1036osb, wls_osb_domain, wls_OSB_application_JDBC
   Class['wls1036osb'] -> Class['wls_osb_domain'] -> Class['wls_OSB_application_JDBC']
}
class application_wc {
 include wls1036_wc
}    

templates.pp

include wls

class wls12_adf{

class { 'wls::urandomfix' :}

if $jdkWls12cJDK == undef {
  $jdkWls12cJDK = 'jdk1.7.0_25'
}
if $wls12cVersion == undef {
  $wls12cVersion = "1212"
}
case $operatingsystem {
   CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
     $osOracleHome = "/opt/oracle/wls"
     $osMdwHome    = "/opt/oracle/wls/Middleware12cADF"
     $osWlHome     = "/opt/oracle/wls/Middleware12cADF/wlserver"
     $user         = "oracle"
     $group        = "dba"
     $downloadDir  = "/data/install"
   }
   windows: { 
     $osOracleHome = "c:/oracle"
     $osMdwHome    = "c:/oracle/Middleware12cADF"
     $osWlHome     = "c:/oracle/Middleware12cADF/wlserver"
     $user         = "Administrator"
     $group        = "Administrators"
     $serviceName  = "C_oracle_middleware12cadf_wlserver"
     $downloadDir  = "c:/temp"
   }
}

$puppetDownloadMntPoint = "puppet:///middleware/"
#  $puppetDownloadMntPoint = "puppet:///modules/wls/"                       

# set the adf defaults
Wls::Installadf {
  mdwHome                => $osMdwHome,
  wlHome                 => $osWlHome,
  oracleHome             => $osOracleHome,
  fullJDKName            => $jdkWls11gJDK, 
  user                   => $user,
  group                  => $group,   
  downloadDir            => $downloadDir,
  puppetDownloadMntPoint => $puppetDownloadMntPoint, 
}

wls::installadf{'adf12c':
   adfFile      => 'fmw_infra_121200.jar',
   createUser   => true,
} 
} 

class wls1036osb_soa{

  class { 'wls::urandomfix' :}

  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_25'
  }
  if $wls11gVersion == undef {
    $wls11gVersion = "1036"
  }
  #$puppetDownloadMntPoint = "puppet:///middleware/"   
  $puppetDownloadMntPoint = "puppet:///modules/wls/" 
  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
       $osOracleHome = "/opt/wls"
       $osMdwHome    = "/opt/wls/Middleware11gR1"
       $osWlHome     = "/opt/wls/Middleware11gR1/wlserver_10.3"
       $user         = "oracle"
       $group        = "dba"
       $downloadDir  = "/data/install/"
       $logDir      = "/data/logs"   
     }
     windows: { 
       $osOracleHome = "c:/oracle"
       $osMdwHome    = "c:/oracle/wls11g"
       $osWlHome     = "c:/oracle/wls11g/wlserver_10.3"
       $user         = "Administrator"
       $group        = "Administrators"
       $serviceName  = "C_oracle_wls11g_wlserver_10.3"
       $downloadDir  = "c:/temp"
       $logDir      = "c:/oracle/logs" 
     }
  }

  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, SLES, Debian: { 
        $mtimeParam = "1"
     }
     Solaris: { 
        $mtimeParam = "+1"
     }
  }

  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
  cron { 'cleanwlstmp' :
    command => "find /tmp -name '*.tmp' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/tmp_purge.log 2>&1",
    user    => oracle,
    hour    => 06,
    minute  => 25,
  }

  cron { 'mdwlogs' :
    command => "find ${osMdwHome}/logs -name 'wlst_*.*' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/wlst_purge.log 2>&1",
    user    => oracle,
    hour    => 06,
    minute  => 30,
  }

  cron { 'oracle_soa1_lsinv' :
    command => "find ${osMdwHome}/Oracle_SOA1/cfgtoollogs/opatch/lsinv -name 'lsinventory*.txt'  -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_lsinv_soa1_purge.log 2>&1",
    user    => oracle,
    hour    => 06,
    minute  => 33,
  }

  cron { 'oracle_soa1_opatch' :
    command => "find ${osMdwHome}/Oracle_SOA1/cfgtoollogs/opatch -name 'opatch*.log' -mtime ${mtimeParam} -exec rm {} \\; >> /tmp/opatch_soa_purge.log 2>&1",
    user    => oracle,
    hour    => 06,
    minute  => 35,
  }
     }
  }

  # set the defaults
  Wls::Installwls {
    version      => $wls11gVersion,
    fullJDKName  => $jdkWls11gJDK,
    oracleHome   => $osOracleHome,
    mdwHome      => $osMdwHome,
    user         => $user,
    group        => $group,    
    downloadDir  => $downloadDir,
    puppetDownloadMntPoint => $puppetDownloadMntPoint, 
  }

  Wls::Installosb {
    mdwHome      => $osMdwHome,
    wlHome       => $osWlHome,
    oracleHome   => $osOracleHome,
    fullJDKName  => $jdkWls11gJDK,  
    user         => $user,
    group        => $group,    
    downloadDir  => $downloadDir,
    puppetDownloadMntPoint => $puppetDownloadMntPoint, 
  }

  Wls::Installsoa {
    mdwHome      => $osMdwHome,
    wlHome       => $osWlHome,
    oracleHome   => $osOracleHome,
    fullJDKName  => $jdkWls11gJDK,  
    user         => $user,
    group        => $group,    
    downloadDir  => $downloadDir,
    puppetDownloadMntPoint => $puppetDownloadMntPoint, 
  }

  Wls::Nodemanager {
    wlHome       => $osWlHome,
    fullJDKName  => $jdkWls11gJDK,  
    user         => $user,
    group        => $group,
    serviceName  => $serviceName,  
    downloadDir  => $downloadDir, 
  }

  Wls::Bsupatch {
    mdwHome      => $osMdwHome ,
    wlHome       => $osWlHome,
    fullJDKName  => $jdkWls11gJDK,
    user         => $user,
    group        => $group,
    downloadDir  => $downloadDir,
    puppetDownloadMntPoint => $puppetDownloadMntPoint, 
  }

  # install
  wls::installwls{'11gPS5':
    createUser   => true,
  }

  # weblogic patch
  wls::bsupatch{'p14736139':
     patchId      => 'HYKC',    
     patchFile    => 'p14736139_1036_Generic.zip',  
     require      => Wls::Installwls['11gPS5'],
   }

   wls::installosb{'osbPS6':
     osbFile      => 'ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip',
     require      => Wls::Bsupatch['p14736139'],
   }

   wls::installsoa{'soaPS6':
     soaFile1      => 'ofm_soa_generic_11.1.1.7.0_disk1_1of2.zip',
     soaFile2      => 'ofm_soa_generic_11.1.1.7.0_disk1_2of2.zip',
     require       =>  Wls::Installosb['osbPS6'],
   }

   #nodemanager configuration and starting
   wls::nodemanager{'nodemanager11g':
     listenPort  => '5556',
     logDir      => $logDir,
     require     =>  Wls::Installsoa['soaPS6'],
   }

}

class wls1036_wc{

class { 'wls::urandomfix' :}

if $jdkWls11gJDK == undef {
  $jdkWls11gJDK = 'jdk1.7.0_25'
}
if $wls11gVersion == undef {
  $wls11gVersion = "1036"
}
$puppetDownloadMntPoint = "puppet:///middleware/"
#  $puppetDownloadMntPoint = "puppet:///modules/wls/"                       

case $operatingsystem {
   CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
     $osOracleHome = "/opt/oracle/wls"
     $osMdwHome    = "/opt/oracle/wls/Middleware11gR1"
     $osWlHome     = "/opt/oracle/wls/Middleware11gR1/wlserver_10.3"
     $user         = "oracle"
     $group        = "dba"
     $downloadDir  = "/data/install"
     $logDir       = "/data/logs"       
   }
   windows: { 
     $osOracleHome = "c:/oracle/middleware"
     $osMdwHome    = "c:/oracle/middleware/wls11g"
     $osWlHome     = "c:/oracle/middleware/wls11g/wlserver_10.3"
     $user         = "Administrator"
     $group        = "Administrators"
     $serviceName  = "C_oracle_middleware_wls11g_wlserver_10.3"
     $downloadDir  = "c:/temp"
     $logDir       = "c:/oracle/logs" 
   }
}

# set the defaults
Wls::Installwls {
  version                => $wls11gVersion,
  fullJDKName            => $jdkWls11gJDK,
  oracleHome             => $osOracleHome,
  mdwHome                => $osMdwHome,
  user                   => $user,
  group                  => $group,    
  downloadDir            => $downloadDir,
  puppetDownloadMntPoint => $puppetDownloadMntPoint,
}

Wls::Nodemanager {
  wlHome       => $osWlHome,
  fullJDKName  => $jdkWls11gJDK,  
  user         => $user,
  group        => $group,
  serviceName  => $serviceName,  
  downloadDir  => $downloadDir, 
}

Wls::Bsupatch {
  mdwHome                => $osMdwHome,
  wlHome                 => $osWlHome,
  fullJDKName            => $jdkWls11gJDK,
  user                   => $user,
  group                  => $group,
  downloadDir            => $downloadDir, 
  puppetDownloadMntPoint => $puppetDownloadMntPoint, 
}

Wls::Installwc {
  mdwHome                => $osMdwHome,
  wlHome                 => $osWlHome,
  oracleHome             => $osOracleHome,
  fullJDKName            => $jdkWls11gJDK,  
  user                   => $user,
  group                  => $group,    
  downloadDir            => $downloadDir,
  puppetDownloadMntPoint => $puppetDownloadMntPoint, 
}

Wls::Installwcc {
  mdwHome                => $osMdwHome,
  wlHome                 => $osWlHome,
  oracleHome             => $osOracleHome,
  fullJDKName            => $jdkWls11gJDK,  
  user                   => $user,
  group                  => $group,    
  downloadDir            => $downloadDir,
  puppetDownloadMntPoint => $puppetDownloadMntPoint, 
}

Wls::Installsoa {
  mdwHome                => $osMdwHome,
  wlHome                 => $osWlHome,
  oracleHome             => $osOracleHome,
  fullJDKName            => $jdkWls11gJDK,  
  user                   => $user,
  group                  => $group,    
  downloadDir            => $downloadDir,
  puppetDownloadMntPoint => $puppetDownloadMntPoint, 
}

# install
wls::installwls{'11gPS5':}

# weblogic patch
wls::bsupatch{'p14736139':
   patchId      => 'HYKC',    
   patchFile    => 'p14736139_1036_Generic.zip',  
   require      => Wls::Installwls['11gPS5'],
}

# webcenter  
wls::installwc{'wcPS6':
   wcFile      => 'ofm_wc_generic_11.1.1.7.0_disk1_1of1.zip',
   require     => Wls::Bsupatch['p14736139'],
}

# webcenter content
wls::installwcc{'wccPS6':
  wccFile1    => 'ofm_wcc_generic_11.1.1.7.0_disk1_1of2.zip',
  wccFile2    => 'ofm_wcc_generic_11.1.1.7.0_disk1_2of2.zip',
  require     => Wls::Installwc['wcPS6'],
}

wls::installsoa{'soaPS6':
   soaFile1      => 'ofm_soa_generic_11.1.1.7.0_disk1_1of2.zip',
   soaFile2      => 'ofm_soa_generic_11.1.1.7.0_disk1_2of2.zip',
   require       =>  Wls::Installwcc['wccPS6'],
}

#nodemanager configuration and starting
wls::nodemanager{'nodemanager11g':
  listenPort  => '5556',
  logDir      => $logDir,
  require     => Wls::Installsoa['soaPS6'],
}
}

class wls1036osb{
  class { 'wls::urandomfix' :}

  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_25'
  }
  if $wls11gVersion == undef {
    $wls11gVersion = "1036"
  }
  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
       $osOracleHome = "/opt/wls"
       $osMdwHome    = "/opt/wls/Middleware11gR1"
       $osWlHome     = "/opt/wls/Middleware11gR1/wlserver_10.3"
       $user         = "oracle"
       $group        = "dba"
       $downloadDir  = "/data/install/"
     }
     windows: { 
       $osOracleHome = "c:/oracle"
       $osMdwHome    = "c:/oracle/wls11g"
       $osWlHome     = "c:/oracle/wls11g/wlserver_10.3"
       $user         = "Administrator"
       $group        = "Administrators"
       $serviceName  = "C_oracle_wls11g_wlserver_10.3"
       $downloadDir  = "c:\\temp\\"
     }
  }

  # set the defaults
  Wls::Installwls {
    version      => $wls11gVersion,
    fullJDKName  => $jdkWls11gJDK,
    oracleHome   => $osOracleHome,
    mdwHome      => $osMdwHome,
    user         => $user,
    group        => $group,    
    downloadDir  => $downloadDir, 
  }

  Wls::Installosb {
    mdwHome      => $osMdwHome,
    wlHome       => $osWlHome,
    oracleHome   => $osOracleHome,
    fullJDKName  => $jdkWls11gJDK,  
    user         => $user,
    group        => $group,    
    downloadDir  => $downloadDir, 
  }

  Wls::Nodemanager {
    wlHome       => $osWlHome,
    fullJDKName  => $jdkWls11gJDK,  
    user         => $user,
    group        => $group,
    serviceName  => $serviceName,  
    downloadDir  => $downloadDir, 
  }

  Wls::Bsupatch {
    mdwHome      => $osMdwHome ,
    wlHome       => $osWlHome,
    fullJDKName  => $jdkWls11gJDK,
    user         => $user,
    group        => $group,
    downloadDir  => $downloadDir, 
  }

  # install
  wls::installwls{'11gPS5':}

  # weblogic patch
  wls::bsupatch{'p14736139':
     patchId      => 'HYKC',    
     patchFile    => 'p14736139_1036_Generic.zip',  
     require      => Wls::Installwls['11gPS5'],
   }

   wls::installosb{'osbPS6':
     osbFile      => 'ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip',
     require      => Wls::Bsupatch['p14736139'],
   }

   #nodemanager configuration and starting
   wls::nodemanager{'nodemanager11g':
     listenPort  => '5556',
     logDir      => '/data/logs',
     require     => Wls::Installosb['osbPS5'],
   }
}

class jdeveloper11g_1212_soa {

if $jdkWls11gJDK == undef {
  $jdkWls11gJDK = 'jdk1.7.0_25'
}
$user         = "oracle"
$group        = "dba"
$downloadDir  = "/data/install"

wls::installjdev {'jdev_suite_121200':
  version                => "1212",
  jdevFile               => "jdev_suite_121200.jar",
  fullJDKName            => $jdkWls11gJDK,
  mdwHome                => "/opt/oracle/jdeveloper12c",
  oracleHome             => "/opt/oracle",
  soaAddon               => true,
  soaAddonFile           => "soa-jdev-extension_11117.zip",
  user                   => $user,
  group                  => $group,
  downloadDir            => $downloadDir,
  puppetDownloadMntPoint => "puppet:///middleware/",
}
}

class jdeveloper11g_soa {

if $jdkWls11gJDK == undef {
  $jdkWls11gJDK = 'jdk1.7.0_25'
}
$user         = "oracle"
$group        = "dba"
$downloadDir  = "/data/install"

wls::installjdev {'jdevstudio11117':
  version      => "1111",
  jdevFile     => "jdevstudio11117install.jar",
  fullJDKName  => $jdkWls11gJDK,
  mdwHome      => "/opt/oracle/jdeveloper11gR1PS6",
  oracleHome   => "/opt/oracle",
  soaAddon     => true,
  soaAddonFile => "soa-jdev-extension_11117.zip",
  user         => $user,
  group        => $group,
  downloadDir  => $downloadDir,
}
}

class osb_oepe{

  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_25'
  }
  if $wls11gVersion == undef {
    $wls11gVersion = "1036"
  }
  $osOracleHome = "/opt/wls"
  $osMdwHome    = "/opt/wls/Middleware11gR1"
  $osWlHome     = "/opt/wls/Middleware11gR1/wlserver_10.3"
  $user         = "oracle"
  $group        = "dba"
  $downloadDir  = "/install/"

  $oepeFile     = "oepe-indigo-all-in-one-11.1.1.8.0.201110211138-linux-gtk-x86_64.zip"

  # set the defaults
  Wls::Installwls {
    version      => $wls11gVersion,
    fullJDKName  => $jdkWls11gJDK,
    oracleHome   => $osOracleHome,
    mdwHome      => $osMdwHome,
    user         => $user,
    group        => $group,
    downloadDir  => $downloadDir,        
  }

  Wls::Installosb {
    mdwHome      => $osMdwHome,
    wlHome       => $osWlHome,
    oracleHome   => $osOracleHome,
    fullJDKName  => $jdkWls11gJDK,  
    user         => $user,
    group        => $group,    
    downloadDir  => $downloadDir, 
  }

  # install
  wls::installwls{'11gPS5_hudson':}

  # download oepe to hudson server
  if ! defined(File["/install/${oepeFile}"]) {
    file { "/install/${oepeFile}":
       source  => "puppet:///modules/wls/${oepeFile}",
       require => Wls::Installwls['11gPS5_hudson'],
       ensure  => present,
       mode    => 0775,
    }
  }

  # extract oepe in middleware home
  if ! defined(Exec["extract ${oepeFile}"]) {
     exec { "extract ${oepeFile}":
          command   => "unzip -n /install/${oepeFile} -d ${osMdwHome}/oepe11.1.1.8",
          require   => File["/install/${oepeFile}"],
          creates   => "${osMdwHome}/oepe11.1.1.8",
          path      => "/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:",
          user      => $user,
          group     => $group,
          logoutput => true,
         }
  }

  #install OSB with OEPE
  wls::installosb{'osbPS6_oepe':
    osbFile      => 'ofm_osb_generic_11.1.1.7.0_disk1_1of1.zip',
    oepeHome     => 'oepe11.1.1.8',
    require      => Exec["extract ${oepeFile}"],
  }
}

templates_app.pp

include wls

class wls12c_adf_domain{

if $jdkWls12gJDK == undef {
  $jdkWls12gJDK = 'jdk1.7.0_25'
}

$wlsDomainName   = "adf"
$osTemplate      = "adf"
$adminListenPort = "7001"
$nodemanagerPort = "5556"
$address         = "localhost"

case $operatingsystem {
   CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
     $osOracleHome = "/opt/oracle/wls"
     $osMdwHome    = "/opt/oracle/wls/Middleware12cADF"
     $osWlHome     = "/opt/oracle/wls/Middleware12cADF/wlserver"
     $user         = "oracle"
     $group        = "dba"
     $downloadDir  = "/data/install"
     $logDir       = "/data/logs" 
   }
   windows: { 
     $osOracleHome = "c:/oracle"
     $osMdwHome    = "c:/oracle/Middleware12cADF"
     $osWlHome     = "c:/oracle/Middleware12cADF/wlserver"
     $user         = "Administrator"
     $group        = "Administrators"
     $serviceName  = "C_oracle_middleware12cadf_wlserver"
     $downloadDir  = "c:/temp"
     $logDir      = "c:/oracle/logs"
   }
}

case $operatingsystem {
   CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES: { 
     $userConfigDir = '/home/oracle'
   }
   Solaris: { 
     $userConfigDir = '/export/home/oracle'
   }
   windows: { 
     $userConfigDir = "c:/oracle"
   }
 }
 # rcu wc wcc bpm repository
 $reposUrl        = "jdbc:oracle:thin:@dbagent2.alfa.local:1521/test.oracle.com"
 $rcuDbUrl        = "dbagent2.alfa.local:1521:test"
 $reposPrefix     = "DEV3"
 # rcu wc repository schema password
 $reposPassword   = hiera('database_test_rcu_dev_password')
 $sysPassword     = hiera('database_test_sys_password')

#   wls::utils::rcu{ "RCU_12c dev3 delete":
#                   product                => 'adf',
#                   oracleHome             => "${osMdwHome}/oracle_common",
#                   fullJDKName            => $jdkWls12gJDK,
#                   user                   => $user,
#                   group                  => $group,
#                   downloadDir            => $downloadDir,
#                   action                 => 'delete',
#                   dbUrl                  => $rcuDbUrl,  
#                   sysPassword            => $sysPassword,
#                   schemaPrefix           => $reposPrefix,
#                   reposPassword          => $reposPassword,
#  }
#

# install domain and in 12.1.2 it also creates a RCU schema plus a nodemanager
wls::wlsdomain{
 'adfDomain12c':
  version         => "1212",
  wlHome          => $osWlHome,
  mdwHome         => $osMdwHome,
  fullJDKName     => $jdkWls12gJDK,  
  user            => $user,
  group           => $group,    
  downloadDir     => $downloadDir, 
  wlsTemplate     => $osTemplate,
  domain          => $wlsDomainName,
  adminListenPort => $adminListenPort,
  nodemanagerPort => $nodemanagerPort,
  wlsUser         => "weblogic",
  password        => hiera('weblogic_password_default'),
  logDir          => $logDir,
  reposDbUrl      => $reposUrl,
  reposPrefix     => $reposPrefix,
  reposPassword   => $reposPassword,
  dbUrl           => $rcuDbUrl,
  sysPassword     => $sysPassword,
 #    require         => Wls::Utils::Rcu["RCU_12c dev3 delete"],
}

Wls::Nodemanager {
  wlHome       => $osWlHome,
  fullJDKName  => $jdkWls12gJDK,  
  user         => $user,
  group        => $group,
  serviceName  => $serviceName,  
}

 #nodemanager starting 
 # in 12c start it after domain creation
 wls::nodemanager{'nodemanager12c':
   version    => "1212",
   listenPort => $nodemanagerPort,
   domain     => $wlsDomainName,     
   require    => Wls::Wlsdomain['adfDomain12c'],
 }  

# default parameters for the wlst scripts
Wls::Wlstexec {
  version      => "1212", 
  wlsDomain    => $wlsDomainName,
  wlHome       => $osWlHome,
  fullJDKName  => $jdkWls12gJDK,  
  user         => $user,
  group        => $group,
  address      => $address,
  downloadDir  => $downloadDir, 
  wlsUser      => "weblogic",
  password     => hiera('weblogic_password_default'),
}

# start AdminServers for configuration
wls::wlscontrol{'startWLSAdminServer12c':
  wlsDomain     => $wlsDomainName,
  wlsDomainPath => "${osMdwHome}/user_projects/domains/${wlsDomainName}",
  wlsServer     => "AdminServer",
  action        => 'start',
  wlHome        => $osWlHome,
  fullJDKName   => $jdkWls12gJDK,  
  wlsUser       => "weblogic",
  password      => hiera('weblogic_password_default'),
  address       => $address,
  port          => $nodemanagerPort,
  user          => $user,
  group         => $group,
  downloadDir   => $downloadDir,
  logOutput     => true, 
  require       => Wls::Nodemanager['nodemanager12c'],
}


# create Server template for Dynamic Clusters 
wls::wlstexec { 
  'createServerTemplate1':
   wlstype       => "server_templates",
   wlsObjectName => "serverTemplate1",
   script        => 'createServerTemplateCluster.py',
   params        =>  ["server_template_name          = 'serverTemplate1'",
                      "server_template_listen_port   = 7100",
                      "dynamic_server_name_arguments ='-XX:PermSize=128m -XX:MaxPermSize=256m -Xms512m -Xmx1024m'"],
   require       => Wls::Wlscontrol['startWLSAdminServer12c'];
}

# create Dynamic Cluster 
wls::wlstexec { 
  'createDynamicCluster':
   wlstype       => "cluster",
   wlsObjectName => "dynamicCluster",
   script        => 'createDynamicCluster.py',
   params        =>  ["server_template_name       = 'serverTemplate1'",
                      "dynamic_cluster_name       = 'dynamicCluster'",
                      "dynamic_nodemanager_match  = 'LocalMachine'",
                      "dynamic_server_name_prefix = 'dynamic_server_'"],
   require       => Wls::Wlstexec['createServerTemplate1'];
}

# create file persistence store 1 for dynamic cluster 
wls::wlstexec { 
  'createFilePersistenceStoreDynamicCluster':
   wlstype       => "filestore",
   wlsObjectName => "jmsModuleFilePersistence1",
   script        => 'createFilePersistenceStore2.py',
   params        =>  ["fileStoreName = 'jmsModuleFilePersistence1'",
                    "target          = 'dynamicCluster'",
                    "targetType      = 'Cluster'"],
   require       => Wls::Wlstexec['createDynamicCluster'];
}

# create jms server 1 for dynamic cluster 
wls::wlstexec { 
  'createJmsServerDynamicCluster':
   wlstype       => "jmsserver",
   wlsObjectName => "jmsServer1",
   script      => 'createJmsServer2.py',
   params      =>  ["storeName      = 'jmsModuleFilePersistence1'",
                    "target         = 'dynamicCluster'",
                    "targetType     = 'Cluster'",
                    "jmsServerName  = 'jmsServer1'",
                    "storeType      = 'file'",
                    ],
   require     => Wls::Wlstexec['createFilePersistenceStoreDynamicCluster'];
}

# create jms module for dynamic cluster 
wls::wlstexec { 
  'createJmsModuleCluster':
   wlstype       => "jmsmodule",
   wlsObjectName => "jmsClusterModule",
   script        => 'createJmsModule.py',
   params        =>  ["target         = 'dynamicCluster'",
                      "jmsModuleName  = 'jmsClusterModule'",
                      "targetType     = 'Cluster'",
                     ],
   require       => Wls::Wlstexec['createJmsServerDynamicCluster'];
}

# create jms subdeployment for dynamic cluster 
wls::wlstexec { 
  'createJmsSubDeploymentForCluster':
   wlstype       => "jmssubdeployment",
   wlsObjectName => "jmsClusterModule/dynamicCluster",
   script        => 'createJmsSubDeployment.py',
   params        => ["target         = 'dynamicCluster'",
                     "jmsModuleName  = 'jmsClusterModule'",
                     "subName        = 'dynamicCluster'",
                     "targetType     = 'Cluster'"
                    ],
   require       => Wls::Wlstexec['createJmsModuleCluster'];
}

# create jms connection factory for jms module 
wls::wlstexec { 

  'createJmsConnectionFactoryforCluster':
   wlstype       => "jmsobject",
   wlsObjectName => "cf",
   script        => 'createJmsConnectionFactory.py',
   params        =>["subDeploymentName = 'dynamicCluster'",
                    "jmsModuleName     = 'jmsClusterModule'",
                    "cfName            = 'cf'",
                    "cfJNDIName        = 'jms/cf'",
                    "transacted        = 'false'",
                    "timeout           = 'xxxx'"
                    ],
   require       => Wls::Wlstexec['createJmsSubDeploymentForCluster'];
}

# create jms error Queue for jms module 
wls::wlstexec { 

  'createJmsErrorQueueforJmsModule':
   wlstype       => "jmsobject",
   wlsObjectName => "ErrorQueue2",
   script        => 'createJmsQueueOrTopic.py',
   params        =>["subDeploymentName = 'dynamicCluster'",
                    "jmsModuleName     = 'jmsClusterModule'",
                    "jmsName           = 'ErrorQueue2'",
                    "jmsJNDIName       = 'jms/ErrorQueue2'",
                    "jmsType           = 'queue'",
                    "distributed       = 'true'",
                    "balancingPolicy   = 'Round-Robin'",
                    "useRedirect       = 'false'",
                    "limit             = 'xxxxx'",
                    "policy            = 'xxxxx'",
                    "errorObject       = 'xxxxx'"
                    ],
   require       => Wls::Wlstexec['createJmsConnectionFactoryforCluster'];
}

# create jms Queue for jms module 
wls::wlstexec { 
  'createJmsQueueforJmsModule':
   wlstype       => "jmsobject",
   wlsObjectName => "Queue1",
   script        => 'createJmsQueueOrTopic.py',
   params        => ["subDeploymentName  = 'dynamicCluster'",
                    "jmsModuleName       = 'jmsClusterModule'",
                    "jmsName             = 'Queue1'",
                    "jmsJNDIName         = 'jms/Queue1'",
                    "jmsType             = 'queue'",
                    "distributed         = 'true'",
                    "balancingPolicy     = 'Round-Robin'",
                    "useRedirect         = 'true'",
                    "limit               = '3'",
                    "policy              = 'Redirect'",
                    "errorObject         = 'ErrorQueue2'"
                    ],
   require     => Wls::Wlstexec['createJmsErrorQueueforJmsModule'];
}

# create Server template for Dynamic Coherence Clusters 
wls::wlstexec { 
  'createServerTemplateCoherence':
   wlstype       => "server_templates",
   wlsObjectName => "serverTemplateCoherence",
   script        => 'createServerTemplateCluster.py',
   params        =>  ["server_template_name          = 'serverTemplateCoherence'",
                      "server_template_listen_port   = 7200",
                      "dynamic_server_name_arguments ='-XX:PermSize=128m -XX:MaxPermSize=256m -Xms512m -Xmx1024m'"],
   require       => Wls::Wlstexec['createJmsQueueforJmsModule'];
}

# create Dynamic Coherence Cluster 
wls::wlstexec { 
  'createDynamicClusterCoherence':
   wlstype       => "cluster",
   wlsObjectName => "dynamicClusterCoherence",
   script        => 'createDynamicCluster.py',
   params        =>  ["server_template_name       = 'serverTemplateCoherence'",
                      "dynamic_cluster_name       = 'dynamicClusterCoherence'",
                      "dynamic_nodemanager_match  = 'LocalMachine'",
                      "dynamic_server_name_prefix = 'dynamic_coherence_server_'"],
   require       => Wls::Wlstexec['createServerTemplateCoherence'];
}

# create Coherence Cluster 
wls::wlstexec { 
  'createClusterCoherence':
   wlstype       => "coherence",
   wlsObjectName => "clusterCoherence",
   script        => 'createCoherenceCluster.py',
   params        =>  ["coherence_cluster_name = 'clusterCoherence'",
                      "target                 = 'dynamicClusterCoherence'",
                      "targetType             = 'Cluster'",
                      "storage_enabled        = true",
                      "unicast_address        = 'localhost'",
                      "unicast_port           = 8088",
                      "multicast_address      = '231.1.1.1'",
                      "multicast_port         = 33387",
                      "machines               = ['localhost']"],
   require       => Wls::Wlstexec['createDynamicClusterCoherence'];
}
}

class wls_osb_soa_domain{

  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_25'
  }
  $wlsDomainName   = "osbSoaDomain"
  $osTemplate      = "osb_soa"
  $adminListenPort = "7001"
  $nodemanagerPort = "5556"
  $address         = "localhost"

  # rcu soa repository
  $reposUrl        = "jdbc:oracle:thin:@dbagent1.alfa.local:1521/test.oracle.com"
  $reposPrefix     = "DEV"
  # rcu soa repository schema password
  $reposPassword   = "Welcome02"

  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
       $osOracleHome  = "/opt/wls"
       $osMdwHome     = "/opt/wls/Middleware11gR1"
       $osWlHome      = "/opt/wls/Middleware11gR1/wlserver_10.3"
       $user          = "oracle"
       $group         = "dba"
       $downloadDir   = "/data/install"
       $userConfigDir = '/home/oracle'
       $logDir        = "/data/logs"
     }
     windows: { 
       $osOracleHome  = "c:/oracle"
       $osMdwHome     = "c:/oracle/wls11g"
       $osWlHome      = "c:/oracle/wls11g/wlserver_10.3"
       $user          = "Administrator"
       $group         = "Administrators"
       $serviceName   = "C_oracle_wls11g_wlserver_10.3"
       $downloadDir   = "c:/temp"
       $userConfigDir = "c:/oracle"
       $logDir        = "c:/oracle/logs"       
     }
  }

  # install SOA OSB domain
  wls::wlsdomain{'osbSoaDomain':
    wlHome          => $osWlHome,
    mdwHome         => $osMdwHome,
    fullJDKName     => $jdkWls11gJDK, 
    wlsTemplate     => $osTemplate,
    domain          => $wlsDomainName,
    adminServerName => "AdminServer",
    adminListenAdr  => "localhost",
    adminListenPort => $adminListenPort,
    nodemanagerPort => $nodemanagerPort,
    wlsUser         => "weblogic",
    password        => "weblogic1",
    user            => $user,
    group           => $group,    
    logDir          => $logDir,
    downloadDir     => $downloadDir, 
    reposDbUrl      => $reposUrl,
    reposPrefix     => $reposPrefix,
    reposPassword   => $reposPassword,
  }

  # start AdminServers for configuration
  wls::wlscontrol{'startOSBSOAAdminServer':
   wlsDomain     => $wlsDomainName,
   wlsDomainPath => "${osMdwHome}/user_projects/domains/${wlsDomainName}",
   wlsServer     => "AdminServer",
   action        => 'start',
   wlHome        => $osWlHome,
   fullJDKName   => $jdkWls11gJDK,  
   wlsUser       => "weblogic",
   password      => hiera('weblogic_password_default'),
   address       => $address,
   port          => $nodemanagerPort,
   user          => $user,
   group         => $group,
   downloadDir   => $downloadDir,
   logOutput     => true, 
   require       =>  Wls::Wlsdomain['osbSoaDomain'],
  }

  # create keystores for automatic WLST login
  wls::storeuserconfig{
   'osbSoaDomain_keys':
    wlHome        => $osWlHome,
    fullJDKName   => $jdkWls11gJDK,
    domain        => $wlsDomainName, 
    address       => $address,
    wlsUser       => "weblogic",
    password      => "weblogic1",
    port          => $adminListenPort,
    user          => $user,
    group         => $group,
    userConfigDir => $userConfigDir, 
    downloadDir   => $downloadDir, 
    require       => Wls::Wlscontrol['startOSBSOAAdminServer'],
  }

  # set the defaults
  Wls::Changefmwlogdir {
    mdwHome        => $osMdwHome,
    user           => $user,
    group          => $group,
    address        => $address,
    port           => $adminListenPort,
  #    wlsUser        => "weblogic",
  #    password       => "weblogic1",
    userConfigFile => "${userConfigDir}/${user}-osbSoaDomain-WebLogicConfig.properties
    userKeyFile    => "${userConfigDir}/${user}-osbSoaDomain-WebLogicKey.properties", 
    downloadDir    => $downloadDir, 
  }

  # change the FMW logfiles
  wls::changefmwlogdir{
   'AdminServer':
    wlsServer    => "AdminServer",
    logDir       => $logDir,
    require      => Wls::Storeuserconfig['osbSoaDomain_keys'],
  }
 }

class wls_cluster2 {

    if $jdkWls11gJDK == undef {
      $jdkWls11gJDK = 'jdk1.7.0_25'
    }

    $wlsDomainName   = "WlsDomain"


    $adminListenPort = "7001"
    $nodemanagerPort = "5556"
    $address         = "devagent40.alfa.local"

    case $operatingsystem {
       CentOS, RedHat, OracleLinux, Ubuntu, Debian: { 
         $userConfigDir = '/home/oracle'
       }
       Solaris: { 
         $userConfigDir = '/export/home/oracle'
       }
       windows: { 
         $userConfigDir = "c:/oracle"
       }
    }

    case $operatingsystem {
       CentOS, RedHat, OracleLinux, Ubuntu, Debian, Solaris: { 
         $osOracleHome  = "/opt/oracle"
         $osMdwHome     = "/opt/oracle/wls/Middleware11gR1"
         $osWlHome      = "/opt/oracle/wls/Middleware11gR1/wlserver_10.3"
         $user          = "oracle"
         $group         = "dba"
         $downloadDir   = "/data/install"
         $logDir        = "/data/logs"
       }
       windows: { 
         $osOracleHome  = "c:/oracle"
         $osMdwHome     = "c:/oracle/middleware/wls11g"
         $osWlHome      = "c:/oracle/middleware/wls11g/wlserver_10.3"
         $user          = "Administrator"
         $group         = "Administrators"
         $serviceName   = "C_oracle_middleware_wls11g_wlserver_10.3"
         $downloadDir   = "c:/temp"
         $logDir        = "c:/oracle/logs" 
       }
    }

    $userConfigFile = "${userConfigDir}/${user}-${wlsDomainName}-WebLogicConfig.properties"
    $userKeyFile    = "${userConfigDir}/${user}-${wlsDomainName}-WebLogicKey.properties"

    # default parameters for the wlst scripts
    Wls::Wlstexec {
      wlsDomain      => $wlsDomainName,
      wlHome         => $osWlHome,
      fullJDKName    => $jdkWls11gJDK,  
      user           => $user,
      group          => $group,
      address        => "localhost",
      userConfigFile => $userConfigFile,
      userKeyFile    => $userKeyFile,
      port           => "7001",
      downloadDir    => $downloadDir,
      logOutput      => false, 
    }


    # create machine
    wls::wlstexec { 
      'createRemoteMachine':
       wlstype       => "machine",
       wlsObjectName => "RemoteMachine",
       script        => 'createMachine.py',
       params        => ["machineName      = 'RemoteMachine'",
                         "machineDnsName   = 'devagent41.alfa.local'",
                        ],
    }


    # create managed server 1
    wls::wlstexec { 
      'createManagerServerWlsServer1':
       wlstype       => "server",
       wlsObjectName => "wlsServer1",
       script        => 'createServer.py',
       params        => ["javaArguments    = '-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m -Dweblogic.Stdout=/data/logs/wlsServer1.out -Dweblogic.Stderr=/data/logs/wlsServer1_err.out'",
                         "wlsServerName    = 'wlsServer1'",
                         "machineName      = 'LocalMachine'",
                         "listenAddress    = 9201",
                         "nodeMgrLogDir    = '/data/logs'",
                        ],
      require        => Wls::Wlstexec['createRemoteMachine'],
    }

    # create managed server 2
    wls::wlstexec { 
      'createManagerServerWlsServer2':
       wlstype       => "server",
       wlsObjectName => "wlsServer2",
       script        => 'createServer.py',
       params        => ["javaArguments    = '-XX:PermSize=256m -XX:MaxPermSize=512m -Xms1024m -Xmx1024m -Dweblogic.Stdout=/data/logs/wlsServer2.out -Dweblogic.Stderr=/data/logs/wlsServer2_err.out'",
                         "wlsServerName    = 'wlsServer2'",
                         "machineName      = 'RemoteMachine'",
                         "listenAddress    = 9202",
                         "nodeMgrLogDir    = '/data/logs'",
                        ],
      require        => Wls::Wlstexec['createManagerServerWlsServer1'],
    }

    # create cluster
    wls::wlstexec { 
      'createClusterWeb':
       wlstype       => "cluster",
       wlsObjectName => "WebCluster",
       script        => 'createCluster.py',
       params        => ["clusterName      = 'WebCluster'",
                         "clusterNodes     = 'wlsServer1,wlsServer2'",
                        ],
      require        => Wls::Wlstexec['createManagerServerWlsServer2'],
    }
}


class wls_copydomain2 {

    if $jdkWls11gJDK == undef {
      $jdkWls11gJDK = 'jdk1.7.0_25'
    }

    $wlsDomainName   = "WlsDomain"


    $adminListenPort = "7001"
    $nodemanagerPort = "5556"
    $address         = "devagent40.alfa.local"

    case $operatingsystem {
       CentOS, RedHat, OracleLinux, Ubuntu, Debian: { 
         $userConfigDir = '/home/oracle'
       }
       Solaris: { 
         $userConfigDir = '/export/home/oracle'
       }
       windows: { 
         $userConfigDir = "c:/oracle"
       }
    }

    case $operatingsystem {
       CentOS, RedHat, OracleLinux, Ubuntu, Debian, Solaris: { 
         $osOracleHome  = "/opt/oracle"
         $osMdwHome     = "/opt/oracle/wls/Middleware11gR1"
         $osWlHome      = "/opt/oracle/wls/Middleware11gR1/wlserver_10.3"
         $user          = "oracle"
         $group         = "dba"
         $downloadDir   = "/data/install"
         $logDir        = "/data/logs"
       }
       windows: { 
         $osOracleHome  = "c:/oracle"
         $osMdwHome     = "c:/oracle/middleware/wls11g"
         $osWlHome      = "c:/oracle/middleware/wls11g/wlserver_10.3"
         $user          = "Administrator"
         $group         = "Administrators"
         $serviceName   = "C_oracle_middleware_wls11g_wlserver_10.3"
         $downloadDir   = "c:/temp"
         $logDir        = "c:/oracle/logs" 
       }
    }

    # install SOA OSB domain
    wls::copydomain{'copyWlsDomain':
     version         => '1111',
     wlHome          => $osWlHome,
     mdwHome         => $osMdwHome,
     fullJDKName     => $jdkWls11gJDK, 
     domain          => $wlsDomainName,
     adminListenAdr  => $address,
     adminListenPort => $adminListenPort,
     wlsUser         => "weblogic",
     password        => hiera('weblogic_password_default'),
     user            => $user,
     userPassword    => 'oracle',
     group           => $group,    
     downloadDir     => $downloadDir, 
    }

}   

class wls_wc_wcc_bpm_domain{

if $jdkWls11gJDK == undef {
  $jdkWls11gJDK = 'jdk1.7.0_25'
}

$wlsDomainName   = "wcWccBpmDomain"

#$osTemplate      = "standard"
#$osTemplate      = "osb"
#$osTemplate      = "osb_soa"
#$osTemplate      = "osb_soa_bpm"
#$osTemplate      = "wc"
$osTemplate      = "wc_wcc_bpm"

$adminListenPort = "7001"
$nodemanagerPort = "5556"
$address         = "localhost"

case $operatingsystem {
   CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES: { 
     $userConfigDir = '/home/oracle'
   }
   Solaris: { 
     $userConfigDir = '/export/home/oracle'
   }
   windows: { 
     $userConfigDir = "c:/oracle"
   }
}

# rcu wc wcc bpm repository
$reposUrl        = "jdbc:oracle:thin:@dbagent2.alfa.local:1521/test.oracle.com"

$reposPrefix     = "DEV2"
# rcu wc repository schema password
$reposPassword   = hiera('database_test_rcu_dev_password')

case $operatingsystem {
   CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
     $osOracleHome  = "/opt/oracle/wls"
     $osMdwHome     = "/opt/oracle/wls/Middleware11gR1"
     $osWlHome      = "/opt/oracle/wls/Middleware11gR1/wlserver_10.3"
     $user          = "oracle"
     $group         = "dba"
     $downloadDir   = "/data/install"
     $logDir        = "/data/logs"
   }
   windows: { 
     $osOracleHome  = "c:/oracle/middleware"
     $osMdwHome     = "c:/oracle/middleware/wls11g"
     $osWlHome      = "c:/oracle/middleware/wls11g/wlserver_10.3"
     $user          = "Administrator"
     $group         = "Administrators"
     $serviceName   = "C_oracle_middleware_wls11g_wlserver_10.3"
     $downloadDir   = "c:/temp"
     $logDir        = "c:/oracle/logs" 
   }
}

# install WC WCC BPM domain
wls::wlsdomain{'wcWccBpmDomain':
  wlHome          => $osWlHome,
  mdwHome         => $osMdwHome,
  fullJDKName     => $jdkWls11gJDK, 
  wlsTemplate     => $osTemplate,
  domain          => $wlsDomainName,
  adminServerName => "AdminServer",
  adminListenAdr  => "localhost",
  adminListenPort => $adminListenPort,
  nodemanagerPort => $nodemanagerPort,
  wlsUser         => "weblogic",
  password        => hiera('weblogic_password_default'),
  user            => $user,
  group           => $group,    
  logDir          => $logDir,
  downloadDir     => $downloadDir, 
  reposDbUrl      => $reposUrl,
  reposPrefix     => $reposPrefix,
  reposPassword   => $reposPassword,
}

# start AdminServers for configuration
wls::wlscontrol{'startWCAdminServer':
  wlsDomain     => $wlsDomainName,
  wlsDomainPath => "${osMdwHome}/user_projects/domains/${wlsDomainName}",
  wlsServer     => "AdminServer",
  action        => 'start',
  wlHome        => $osWlHome,
  fullJDKName   => $jdkWls11gJDK,  
  wlsUser       => "weblogic",
  password      => hiera('weblogic_password_default'),
  address       => $address,
  port          => $nodemanagerPort,
  user          => $user,
  group         => $group,
  downloadDir   => $downloadDir,
  logOutput     => true, 
  require       =>  Wls::Wlsdomain['wcWccBpmDomain'],
}

# create keystores for automatic WLST login
wls::storeuserconfig{
 'wcDomain_keys':
  wlHome        => $osWlHome,
  fullJDKName   => $jdkWls11gJDK,
  domain        => $wlsDomainName, 
  address       => $address,
  wlsUser       => "weblogic",
  password      => hiera('weblogic_password_default'),
  port          => $adminListenPort,
  user          => $user,
  group         => $group,
  userConfigDir => $userConfigDir, 
  downloadDir   => $downloadDir, 
  require       => Wls::Wlscontrol['startWCAdminServer'],
}
}

class wls_osb_domain{

  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_25'
  }
  $wlsDomainName   = "osbDomain"
  $osTemplate      = "osb"
  $adminListenPort = "7001"
  $nodemanagerPort = "5556"
  $address         = "localhost"

  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
       $osOracleHome = "/opt/wls"
       $osMdwHome    = "/opt/wls/Middleware11gR1"
       $osWlHome     = "/opt/wls/Middleware11gR1/wlserver_10.3"
       $user         = "oracle"
       $group        = "dba"
       $downloadDir  = "/data/install"
       $userConfigDir = '/home/oracle'
       $logDir        = "/data/logs"
     }
     windows: { 
       $osOracleHome = "c:/oracle"
       $osMdwHome    = "c:/oracle/wls11g"
       $osWlHome     = "c:/oracle/wls11g/wlserver_10.3"
       $user         = "Administrator"
       $group        = "Administrators"
       $serviceName  = "C_oracle_wls11g_wlserver_10.3"
       $downloadDir  = "c:\\temp"
       $userConfigDir = "c:/oracle"
       $logDir        = "c:/oracle/logs"  
     }
  }

  # install OSB domain
  wls::wlsdomain{'osbDomain':
    wlHome          => $osWlHome,
    mdwHome         => $osMdwHome,
    fullJDKName     => $jdkWls11gJDK, 
    wlsTemplate     => $osTemplate,
    domain          => $wlsDomainName,
    adminServerName => "AdminServer",
    adminListenAdr  => "localhost",
    adminListenPort => $adminListenPort,
    nodemanagerPort => $nodemanagerPort,
    wlsUser         => "weblogic",
    password        => "weblogic1",
    user            => $user,
    group           => $group,    
    logDir          => $logDir,
    downloadDir     => $downloadDir, 
  }

  # start AdminServers for configuration
  wls::wlscontrol{'startOSBAdminServer':
   wlsDomain     => $wlsDomainName,
   wlsDomainPath => "${osMdwHome}/user_projects/domains/${wlsDomainName}",
   wlsServer     => "AdminServer",
   action        => 'start',
   wlHome        => $osWlHome,
   fullJDKName   => $jdkWls11gJDK,  
   wlsUser       => "weblogic",
   password      => hiera('weblogic_password_default'),
   address       => $address,
   port          => $nodemanagerPort,
   user          => $user,
   group         => $group,
   downloadDir   => $downloadDir,
   logOutput     => true, 
   require       =>  Wls::Wlsdomain['osbDomain'],
  }

  Wls::Changefmwlogdir {
    mdwHome        => $osMdwHome,
    user           => $user,
    group          => $group,
    address        => $address,
    port           => $adminListenPort,
    wlsUser        => "weblogic",
    password       => "weblogic1",
    downloadDir    => $downloadDir, 
  }

  wls::changefmwlogdir{
   'AdminServer':
    wlsServer    => "AdminServer",
    logDir       => $logDir,
    require      => Wls::Wlscontrol['startOSBAdminServer'],
  }
 }

class wls_OSB_application_JDBC{

  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_09'
  }

  $userConfigFile  = '/home/oracle/oracle-osbSoaDomain-WebLogicConfig.properties'
  $userKeyFile     = '/home/oracle/oracle-osbSoaDomain-WebLogicKey.properties'

  $wlsDomainName   = 'osbSoaDomain'

  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
       $osMdwHome    = "/opt/wls/Middleware11gR1"
       $osWlHome     = "/opt/wls/Middleware11gR1/wlserver_10.3"
       $user         = "oracle"
       $group        = "dba"
       $downloadDir  = "/data/install"
     }
     windows: { 
       $osMdwHome    = "c:/oracle/wls11g"
       $osWlHome     = "c:/oracle/wls11g/wlserver_10.3"
       $user         = "Administrator"
       $group        = "Administrators"
       $serviceName  = "C_oracle_wls11g_wlserver_10.3"
       $downloadDir  = "c:\\temp"
     }
  }

  # default parameters for the wlst scripts
  Wls::Wlstexec {
    wlsDomain      => $wlsDomainName,
    wlHome         => $osWlHome,
    fullJDKName    => $jdkWls11gJDK,  
    user           => $user,
    group          => $group,
    address        => "localhost",
  #    wlsUser        => "weblogic",
  #    password       => "weblogic1",
    userConfigFile => $userConfigFile,
    userKeyFile    => $userKeyFile,
    port           => "7001",
    downloadDir    => $downloadDir, 
  }

  # create jdbc datasource for osb_server1 
  wls::wlstexec { 

    'createJdbcDatasourceHr':
     wlstype       => "jdbc",
     wlsObjectName => "hrDS",
     script        => 'createJdbcDatasource.py',
     params        => ["dsName                      = 'hrDS'",
                      "jdbcDatasourceTargets       = 'AdminServer,osb_server1'",
                      "dsJNDIName                  = 'jdbc/hrDS'",
                      "dsDriverName                = 'oracle.jdbc.xa.client.OracleXADataSource'",
                      "dsURL                       = 'jdbc:oracle:thin:@dbagent1.alfa.local:1521/test.oracle.com'",
                      "dsUserName                  = 'hr'",
                      "dsPassword                  = 'hr'",
                      "datasourceTargetType        = 'Server'",
                      "globalTransactionsProtocol  = 'xxxx'"
                      "extraProperties             = 'oracle.net.CONNECT_TIMEOUT,SendStreamAsBlob'",
                      "extraPropertiesValues       = '10000,true'",
                      ],
  }

  wls::resourceadapter{
   'DbAdapter_hr':
    wlHome         => $osWlHome,
    fullJDKName    => $jdkWls11gJDK,
    domain         => $wlsDomainName, 
    adapterName          => 'DbAdapter' ,
    adapterPath          => '/opt/wls/Middleware11gR1/Oracle_SOA1/soa/connectors/DbAdapter.rar',
    adapterPlanDir       => '/opt/wls/Middleware11gR1/Oracle_SOA1/soa/connectors' ,
    adapterPlan          => 'Plan_DB.xml' ,
    adapterEntry         => 'eis/DB/hr',
    adapterEntryProperty => 'xADataSourceName',
    adapterEntryValue    => 'jdbc/hrDS',
    address        => "localhost",
    port           => "7001",
  #    wlsUser       => "weblogic",
  #    password      => "weblogic1",
    userConfigFile => $userConfigFile,
    userKeyFile    => $userKeyFile,
    user           => $user,
    group          => $group,
    downloadDir    => $downloadDir,
    require        => Wls::Wlstexec['createJdbcDatasourceHr'];
  }

  wls::resourceadapter{
   'AqAdapter_hr':
    wlHome         => $osWlHome,
    fullJDKName    => $jdkWls11gJDK,
    domain         => $wlsDomainName, 
    adapterName          => 'AqAdapter' ,
    adapterPath          => '/opt/wls/Middleware11gR1/Oracle_SOA1/soa/connectors/AqAdapter.rar',
    adapterPlanDir       => '/opt/wls/Middleware11gR1/Oracle_SOA1/soa/connectors' ,
    adapterPlan          => 'Plan_AQ.xml' ,
    adapterEntry         => 'eis/AQ/hr',
    adapterEntryProperty => 'xADataSourceName',
    adapterEntryValue    => 'jdbc/hrDS',
    address        => "localhost",
    port           => "7001",
    wlsUser        => "weblogic",
    password       => "weblogic1",
#    userConfigFile => $userConfigFile,
#    userKeyFile    => $userKeyFile,
    user           => $user,
    group          => $group,
    downloadDir    => $downloadDir,
    require        => Wls::Resourceadapter['DbAdapter_hr'];
  }
}  

class wls_OSB_application_JMS{
  if $jdkWls11gJDK == undef {
    $jdkWls11gJDK = 'jdk1.7.0_25'
  }
  $userConfigFile  = '/home/oracle/oracle-osbSoaDomain-WebLogicConfig.properties'
  $userKeyFile     = '/home/oracle/oracle-osbSoaDomain-WebLogicKey.properties'

  $wlsDomainName   = 'osbSoaDomain'

  case $operatingsystem {
     CentOS, RedHat, OracleLinux, Ubuntu, Debian, SLES, Solaris: { 
       $osMdwHome    = "/opt/wls/Middleware11gR1"
       $osWlHome     = "/opt/wls/Middleware11gR1/wlserver_10.3"
       $user         = "oracle"
       $group        = "dba"
       $downloadDir  = "/data/install"
     }
     windows: { 
       $osMdwHome    = "c:/oracle/wls11g"
       $osWlHome     = "c:/oracle/wls11g/wlserver_10.3"
       $user         = "Administrator"
       $group        = "Administrators"
       $serviceName  = "C_oracle_wls11g_wlserver_10.3"
       $downloadDir  = "c:\\temp"
     }
  }

  # default parameters for the wlst scripts
  Wls::Wlstexec {
    wlsDomain      => $wlsDomainName,
    wlHome         => $osWlHome,
    fullJDKName    => $jdkWls11gJDK,  
    user           => $user,
    group          => $group,
    address        => "localhost",
  #    wlsUser      => "weblogic",
  #    password     => "weblogic1",
    userConfigFile => $userConfigFile,
    userKeyFile    => $userKeyFile,
    port           => "7001",
    downloadDir    => $downloadDir, 
  }

  # create file persistence store for osb_server1 
  wls::wlstexec { 
    'createFilePersistenceStoreOSBServer':
     wlstype       => "filestore",
     wlsObjectName => "jmsModuleFilePersistence",
     script        => 'createFilePersistenceStore.py',
     port          => $adminServerPort,
     params        =>  ["fileStoreName = 'jmsModuleFilePersistence'",
                      "serverTarget  = 'osb_server1'"],
  }

  # create jms server for osb_server1 
  wls::wlstexec { 
    'createJmsServerOSBServer':
     wlstype       => "jmsserver",
     wlsObjectName => "jmsServer",
     script      => 'createJmsServer.py',
     params      =>  ["storeName      = 'jmsModuleFilePersistence'",
                      "serverTarget   = 'osb_server1'",
                      "jmsServerName  = 'jmsServer'",
                      "storeType      = 'file'",
                      ],
     require     => Wls::Wlstexec['createFilePersistenceStoreOSBServer'];
  }

  # create jms module for osb_server1 
  wls::wlstexec { 
    'createJmsModuleOSBServer':
     wlstype       => "jmsmodule",
     wlsObjectName => "jmsModule",
     script        => 'createJmsModule.py',
     params        =>  ["target         = 'osb_server1'",
                        "jmsModuleName  = 'jmsModule'",
                        "targetType     = 'Server'",
                       ],
     require       => Wls::Wlstexec['createJmsServerOSBServer'];
  }

  # create jms Quota for osb_server1 jms module
  wls::wlstexec { 
    'createJmsModuleQuotaHigh':
     wlstype       => "jmsquota",
     wlsObjectName => "jmsModule/QuotaHigh",
     script        => 'createJmsQuota.py',
     params        =>  ["jmsQuotaName    = 'QuotaHigh'",
                        "jmsModuleName   = 'jmsModule'",
                        "policy          = 'FIFO'",
                        "bytesMaximum    = 9223372036854775807",
                        "messagesMaximum = 9223372036854775807",
                        "shared          = false",
                       ],
     require       => Wls::Wlstexec['createJmsModuleOSBServer'];
  }

  # create jms Quota for osb_server1 jms module
  wls::wlstexec { 
    'createJmsModuleQuotaLow':
     wlstype       => "jmsquota",
     wlsObjectName => "jmsModule/QuotaLow",
     script        => 'createJmsQuota.py',
     params        =>  ["jmsQuotaName    = 'QuotaLow'",
                        "jmsModuleName   = 'jmsModule'",
                        "policy          = 'PREEMPTIVE'",
                        "bytesMaximum    = 1000000000000",
                        "messagesMaximum = 1000000000000",
                        "shared          = true",
                       ],
     require       => Wls::Wlstexec['createJmsModuleQuotaHigh'];
  }

  # create jms subdeployment for jms module 
  wls::wlstexec { 
    'createJmsSubDeploymentWLSforJmsModule':
     wlstype       => "jmssubdeployment",
     wlsObjectName => "jmsModule/wlsServer",
     script        => 'createJmsSubDeployment.py',
     params        => ["target         = 'osb_server1'",
                       "jmsModuleName  = 'jmsModule'",
                       "subName        = 'wlsServer'",
                       "targetType     = 'Server'",
                      ],
     require       => Wls::Wlstexec['createJmsModuleQuotaLow'];
  }

  # create jms subdeployment for jms module 
  wls::wlstexec { 
    'createJmsSubDeploymentWLSforJmsModule2':
     wlstype       => "jmssubdeployment",
     wlsObjectName => "jmsModule/JmsServer",
     script        => 'createJmsSubDeployment.py',
     params        => ["target         = 'jmsServer'",
                       "jmsModuleName  = 'jmsModule'",
                       "subName        = 'JmsServer'",
                       "targetType     = 'JMSServer'",
                      ],
     require     => Wls::Wlstexec['createJmsSubDeploymentWLSforJmsModule'];
  }

  # create jms connection factory for jms module 
  wls::wlstexec { 

    'createJmsConnectionFactoryforJmsModule':
     wlstype       => "jmsobject",
     wlsObjectName => "cf",
     script        => 'createJmsConnectionFactory.py',
     params        => ["subDeploymentName = 'wlsServer'",
                      "jmsModuleName     = 'jmsModule'",
                      "cfName            = 'cf'",
                      "cfJNDIName        = 'jms/cf'",
                      "transacted        = 'false'",
                      "timeout           = 'xxxx'",
                      ],
     require     => Wls::Wlstexec['createJmsSubDeploymentWLSforJmsModule2'];
  }

  wls::resourceadapter{
   'JmsAdapter_hr':
    wlHome         => $osWlHome,
    fullJDKName    => $jdkWls11gJDK,
    domain         => $wlsDomainName, 
    adapterName          => 'JmsAdapter' ,
    adapterPath          => '/opt/wls/Middleware11gR1/Oracle_SOA1/soa/connectors/JmsAdapter.rar',
    adapterPlanDir       => '/opt/wls/Middleware11gR1/Oracle_SOA1/soa/connectors' ,
    adapterPlan          => 'Plan_JMS.xml' ,
    adapterEntry         => 'eis/JMS/cf',
    adapterEntryProperty => 'ConnectionFactoryLocation',
    adapterEntryValue    => 'jms/cf',
    address        => "localhost",
    port           => "7001",
 #    wlsUser       => "weblogic",
 #    password      => "weblogic1",
    userConfigFile => $userConfigFile,
    userKeyFile    => $userKeyFile,
    user           => $user,
    group          => $group,
    downloadDir    => $downloadDir,
    require        => Wls::Wlstexec['createJmsConnectionFactoryforJmsModule'];
  }

  # create jms error Queue for jms module 
  wls::wlstexec { 

    'createJmsErrorQueueforJmsModule':
     wlstype       => "jmsobject",
     wlsObjectName => "ErrorQueue",
     script        => 'createJmsQueueOrTopic.py',
     params        => ["subDeploymentName = 'JmsServer'",
                      "jmsModuleName     = 'jmsModule'",
                      "jmsName           = 'ErrorQueue'",
                      "jmsJNDIName       = 'jms/ErrorQueue'",
                      "jmsType           = 'queue'",
                      "distributed       = 'false'",
                      "balancingPolicy   = 'xxxxx'",
                      "useRedirect       = 'false'",
                      "limit             = 'xxxxx'",
                      "policy            = 'xxxxx'",
                      "errorObject       = 'xxxxx'",
                      "jmsQuota          = 'QuotaLow'",
                      ],
     require     => Wls::Resourceadapter['JmsAdapter_hr'];
  }
 }