blob: 326929ce5bb8211a168d4dcdffbc02383da12c20 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
def iterateOverActiveComponents(applyFunction) {
// Start is not a real component, therefore loading it manually
applyFunction file("${rootDir}/framework/start")
def rootComponents = new XmlParser().parse("${rootDir}/framework/base/config/component-load.xml")
rootComponents.children().each { rootComponent ->
File componentLoadFile = file "${rootDir}/"+ rootComponent.@"parent-directory" + "/component-load.xml"
if(componentLoadFile.exists()) {
// iterate through the components defined in component-load.xml
def parsedComponents = new XmlParser().parse(componentLoadFile.toString())
parsedComponents.children().each { component ->
def componentLocation = file "${rootDir}/"+ rootComponent.@"parent-directory" + '/' + component.@"component-location"
applyIfEnabled(componentLocation, applyFunction)
}
} else {
// iterate through all components (subdirectories of the root component)
file(rootComponent.@"parent-directory").eachDir { componentLocation ->
applyIfEnabled(componentLocation, applyFunction)
}
}
}
}
def applyIfEnabled(componentDir, applyFunction) {
File componentFile = file componentDir.toString() + '/ofbiz-component.xml'
if(componentFile.exists()) {
def parsedComponent = new XmlParser().parse(componentFile.toString())
if(parsedComponent.@enabled == null || parsedComponent.@enabled == "true") {
applyFunction componentDir
}
}
}
ext{
iterateOverActiveComponents = this.&iterateOverActiveComponents
}