Module to compile SOA composites

#!/usr/bin/python
#miguel.ortiz

import os, sys, time
import subprocess
compositeRealPath = 'C:/Users/m.ortiz/.babun/cygwin/home/m.ortiz/repo/SOA/SomeService'
scAntpath = 'C:/Oracle/Middleware/jdeveloper/jdeveloper/bin/'
antBin = 'ant-sca-package.xml'
compositeName = '/composite.xml'

def compilarSOA ( compositeRealPath, revisionNumber) :

mystdout = open(compositeRealPath + '/deploy/' + 'log_' + time.strftime("%Y%m%d-%H%M%S") + '.log', 'w')
subprocess.call(['ant', '-f', 'C:/Oracle/Middleware/jdeveloper/jdeveloper/bin/ant-sca-package.xml', '-DcompositeDir=' + compositeRealPath, '-DcompositeName=composite.xml', '-Drevision=' + revisionNumber ], stdout=mystdout)

compilarSOA( compositeRealPath, revisionNumber)

Module to obtain each composite version

#!/usr/bin/python
#miguel.ortiz

import fnmatch, os

compositeName = '/composite.xml'

def getComposites( baseRepoDir, aCompilarProject ):
        compositesList = [] # listado de composites
        for root, dirnames, filenames in os.walk(baseRepoDir + aCompilarProject):
                for filename in fnmatch.filter(filenames, 'composite.xml'):
                        compositesList.append(os.path.join(root, filename)) # agregar composites encontrados a la lista

        for composite in compositesList :
                return composite

def getRealCompositesPaths ( pathComposite ) :
        realCompositesPaths = [] # listado de composites
        realCompositePath = os.path.dirname( pathComposite )
        realCompositesPaths.append(realCompositePath) # agregar composites encontrados a la lista

        for dirComposite in realCompositesPaths :
                return dirComposite

If you use MDS you may need to comment out this in ant-sca-package.xml:

https://support.oracle.com/knowledge/Middleware/1143723_1.html

<target name=»scac-validate» depends=»init»>
<echo message=»Running scac-validate in ${scac.input}»/>
<!–<antcall target=»scac» inheritall=»true»/>–> <!– https://stackoverflow.com/questions/14576534/building-soa-composite-application-using-ant FIX –>
</target>