in src/com/intellij/idea/plugin/hybris/project/configurators/AntConfigurator.kt [139:203]
fun configureAfterImport(
project: Project,
hybrisProjectDescriptor: HybrisProjectDescriptor,
allModules: List<ModuleDescriptor>
): List<() -> Unit> {
val platformDescriptor = hybrisProjectDescriptor.platformHybrisModuleDescriptor
val extHybrisModuleDescriptors = mutableListOf<ModuleDescriptor>()
val customHybrisModuleDescriptors = mutableListOf<ModuleDescriptor>()
for (descriptor in allModules) {
when (descriptor) {
is YPlatformExtModuleDescriptor -> extHybrisModuleDescriptors.add(descriptor)
is YCustomRegularModuleDescriptor -> customHybrisModuleDescriptors.add(descriptor)
}
}
val antInstallation = createAntInstallation(platformDescriptor)
?: return emptyList()
val classPaths = createAntClassPath(platformDescriptor, extHybrisModuleDescriptors)
val antConfiguration = AntConfigurationBase.getInstance(project).apply {
isFilterTargets = true
}
return listOf {
val antBuildFiles = mutableListOf<Pair<AntBuildFileBase, List<String>>>()
findBuildFile(antConfiguration, platformDescriptor)
?.apply {
metaTargets
.map { ExecuteCompositeTargetEvent(it) }
.filter { antConfiguration.getTargetForEvent(it) == null }
.forEach { antConfiguration.setTargetForEvent(this, it.metaTargetName, it) }
}
?.let { it to desirablePlatformTargets }
?.let { antBuildFiles.add(it) }
if (hybrisProjectDescriptor.isImportCustomAntBuildFiles) {
customHybrisModuleDescriptors
.mapNotNull { findBuildFile(antConfiguration, it) }
.map { it to desirableCustomTargets }
.forEach { antBuildFiles.add(it) }
}
antBuildFiles.forEach { (antBuildFile, desirabTargets) ->
registerAntInstallation(hybrisProjectDescriptor, antInstallation, classPaths, antBuildFile)
ReadAction
.nonBlocking<EditPropertyContainer> {
val allOptions = antBuildFile.allOptions
EditPropertyContainer(allOptions).apply {
TARGET_FILTERS[this] = getFilteredTargets(antConfiguration, antBuildFile, desirabTargets)
}
}
.finishOnUiThread(ModalityState.defaultModalityState()) {
it.apply()
}
.submit(AppExecutorUtil.getAppExecutorService())
}
saveAntInstallation(antInstallation)
removeMake(project)
}
}