-
Notifications
You must be signed in to change notification settings - Fork 0
/
common.gradle
58 lines (52 loc) · 2.43 KB
/
common.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
* 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.
*/
mkdir "${rootDir}/plugins"
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
}