| 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 static virgobuild.VirgoToolsPlugin.mirrorP2UpdateSite |
| |
| import virgobuild.Config |
| |
| apply plugin: 'distribution' |
| |
| distributions { |
| main { |
| baseName = 'virgo-jetty-server' |
| contents { |
| exclude ( '**/placeholder' ) |
| 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 ( "${buildDir}/VJS/jetty-server/" ) { exclude ( 'Eclipse.app' ) } |
| from ( "${buildDir}/common_resources/" ) |
| } |
| } |
| } |
| |
| task ('assembleJettyServer', dependsOn: [ |
| 'installProductJettyServer', |
| 'packageResourcesAndProducts' |
| ]) { |
| installDist.dependsOn(['assembleJettyServer']) |
| distZip.dependsOn(['assembleJettyServer']) |
| } |
| |
| task ('packageResourcesAndProducts') { |
| 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 ('publishJettyServer', 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 = 'jetty-server' |
| def productFileLocation = file("${projectDir}/publish_resources/products/${product}/${product}.product") |
| def javaProfileLocation = file("${projectDir}/src/main/dist/configuration/java7-server.profile") |
| |
| doLast() { publishProduct(project, productFileLocation, javaProfileLocation) } |
| } |
| |
| task ('mirrorJettyResources', dependsOn: ['publishJettyServer',]) { |
| |
| description = "Mirrors a P2 repository." |
| |
| def source = "http://download.eclipse.org/jetty/updates/jetty-bundles-8.x/${jettyVersion}" |
| // def source = "http://download.eclipse.org/jetty/updates/jetty-bundles-8.x/8.1.4.v20120524/" - ok |
| // def source = "http://download.eclipse.org/jetty/updates/jetty-bundles-8.x/8.1.5.v20120716/" - ok |
| // def source = "http://download.eclipse.org/jetty/updates/jetty-bundles-8.x/8.1.6.v20120903/" - failed |
| // def source = "http://download.eclipse.org/jetty/updates/jetty-bundles-8.x/8.1.14.v20131031/" - failed (subset used by Virgo RAP Server) |
| File destinationDir = file("${buildDir}/jetty-mirror") |
| |
| doLast() { |
| mirrorP2UpdateSite(project, source, destinationDir) |
| } |
| } |
| |
| task ('copyJettyResources', dependsOn: ['mirrorJettyResources',]) { |
| |
| description = "Copies Jetty resources from a P2 repository into repository/ext." |
| |
| File jettyMirrorDir = file("${buildDir}/jetty-mirror") |
| |
| doLast() { |
| // copy jetty bundles to repository/ext (this directory is *not* handled by p2) |
| project.copy { |
| from "${buildDir}/jetty-mirror/plugins" |
| into "${buildDir}/common_resources/repository/ext" |
| include '*.jar' |
| exclude { details -> |
| (details.file.name.contains('.source_') |
| || details.file.name.contains('javax.security.auth.message') |
| || details.file.name.contains('org.eclipse.jetty.jaspi') |
| || details.file.name.contains('org.eclipse.jetty.monitor') |
| || details.file.name.contains('org.eclipse.jetty.nested') |
| || details.file.name.contains('org.eclipse.jetty.nosql') |
| || details.file.name.contains('org.eclipse.jetty.osgi.boot.warurl') |
| || details.file.name.contains('org.eclipse.jetty.osgi.httpservice')) |
| } |
| } |
| } |
| } |
| |
| task ('installProductJettyServer', dependsOn: [ |
| 'publishJettyServer', |
| 'copyJettyResources' |
| ]) { |
| |
| description = "Installs a Virgo product to a desired destination. Default profile(roaming) is VIRGOProfile, the environment cofigurations are ANY." |
| |
| def product = 'jetty-server' |
| def shortProduct = 'VJS' |
| def destinationDir = file("${buildDir}/${shortProduct}/${product}") |
| def productIu = "${product}.product" |
| |
| doLast() { installProduct(project, productIu, destinationDir) } |
| } |