blob: 47c7119219fab58c9c204a38365ed3d210aee2ce [file] [log] [blame]
import org.apache.tools.ant.filters.ReplaceTokens
import static virgobuild.VirgoToolsPlugin.DOWNLOAD_VIRGO_BUILD_TOOLS_TASK_NAME
import static virgobuild.VirgoToolsPlugin.installProduct
import static virgobuild.VirgoToolsPlugin.publishProduct
import virgobuild.Config
apply plugin: 'distribution'
distributions {
main {
baseName = 'virgo-kernel'
contents {
from ( 'src/main/filtered' ) {
include ( '**/*.properties' )
include ( '**/.version' )
filter(ReplaceTokens, tokens: tokenMap) // tokens are used in e.g. oev.kernel.userregion.properties
}
from ( 'src/main/filtered' ) {
include ( 'bin/*.sh' )
fileMode 0755
}
from ( 'src/main/filtered' ) {
include ( '**/*.plan' )
filter(ReplaceTokens, tokens: tokenMap)
}
from ( "${buildDir}/VK/kernel/" ) { exclude ( 'Eclipse.app' ) }
from ( "${buildDir}/common_resources/" )
}
}
}
task ('assembleKernel', dependsOn: [
'installProductKernel',
'packageResourcesAndProducts'
]) {
installDist.dependsOn(['assembleKernel'])
distZip.dependsOn(['assembleKernel'])
}
task ('packageResourcesAndProducts', dependsOn: [
':kernel:org.eclipse.virgo.kernel.equinox.extensions:jar',
':kernel:org.eclipse.virgo.management.console:war',
':nano:org.eclipse.virgo.nano.authentication:jar',
':nano:org.eclipse.virgo.nano.shutdown:jar',
':util:org.eclipse.virgo.util.env:jar',
]) {
doLast {
packageConfiguration('lib', configurations.nanoLib, file("${buildDir}/common_resources/lib/"))
packageConfiguration('libPersistence', configurations.nanoLibPersistence, file("${buildDir}/common_resources/lib/persistence/"))
packageConfiguration('libEndorsed', configurations.nanoLibEndorsed, file("${buildDir}/common_resources/lib/endorsed/"))
packageConfiguration('pluginsExtras', configurations.kernelPluginsExtras, file("${buildDir}/common_resources/plugins"))
packageConfiguration('repositoryExt', configurations.repositoryExt, file("${buildDir}/common_resources/repository/ext"))
packageConfiguration('pickup', configurations.nanoPickup, file("${buildDir}/common_resources/pickup/"))
}
}
task ('publishKernel', dependsOn: [
':org.eclipse.virgo.site:publishBase',
':org.eclipse.virgo.site:publishKernelBase',
]) {
description = "Publishes a product to a p2 repository. The publishing uses ANY environment configurations."
def product = 'kernel'
def productFileLocation = file("${projectDir}/publish_resources/products/${product}/${product}.product")
def javaProfileLocation = file("${projectDir}/src/main/dist/configuration/java-server.profile")
doLast() { publishProduct(project, productFileLocation, javaProfileLocation) }
}
task ('installProductKernel', dependsOn: ['publishKernel',]) {
description = "Installs a Virgo product to a desired destination. Default profile(roaming) is VIRGOProfile, the environment cofigurations are ANY."
def product = 'kernel'
def shortProduct = 'VK'
def destinationDir = file("${buildDir}/${shortProduct}/${product}")
def productIu = "${product}.product"
doLast() { installProduct(project, productIu, destinationDir) }
}