You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2016/12/17 10:28:24 UTC
[48/81] [abbrv] [partial] zest-java git commit: ZEST-195 ;
Replace all "zest" with "polygene"
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy
deleted file mode 100644
index c2f9bfe..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/ZestExtension.groovy
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle
-
-import groovy.transform.CompileStatic
-import org.gradle.api.Project
-import org.gradle.api.artifacts.Dependency
-
-@CompileStatic
-class PolygeneExtension
-{
- private final Project project
- final Core core
-
- PolygeneExtension( Project project )
- {
- this.project = project
- this.core = new Core()
- }
-
- boolean isDevelopmentVersion()
- {
- return project.version == '0' || project.version.toString().contains( 'SNAPSHOT' )
- }
-
- boolean isReleaseVersion()
- {
- return !isDevelopmentVersion()
- }
-
- class Core
- {
- Dependency api = core( 'api' )
- Dependency spi = core( 'spi' )
- Dependency runtime = core( 'runtime' )
- Dependency bootstrap = core( 'bootstrap' )
- Dependency testsupport = core( 'testsupport' )
- }
-
- private Dependency core( String name )
- {
- return dependency( 'org.apache.zest.core', "org.apache.zest.core.$name" )
- }
-
- Dependency library( String name )
- {
- return dependency( 'org.apache.zest.libraries', "org.apache.zest.library.$name" )
- }
-
- Dependency extension( String name )
- {
- return dependency( 'org.apache.zest.extensions', "org.apache.zest.extension.$name" )
- }
-
- Dependency tool( String name )
- {
- return dependency( 'org.apache.zest.tools', "org.apache.zest.tool.$name" )
- }
-
- private Dependency dependency( String group, String name )
- {
- project.dependencies.project( path: ":$group:$name" )
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationExtension.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationExtension.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationExtension.groovy
deleted file mode 100644
index 8a5570c..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationExtension.groovy
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.dependencies
-
-import groovy.transform.CompileStatic
-import org.gradle.api.artifacts.DependencySubstitution
-import org.gradle.api.artifacts.component.ModuleComponentSelector
-import org.gradle.internal.BiAction
-
-@CompileStatic
-class DependenciesDeclarationExtension
-{
- final Map<String, String> repositoriesUrls = [ : ]
- final Map<String, Object> libraries = [ : ]
- final Map<String, List<Object>> defaultDependencies = [ : ]
- BiAction<DependencySubstitution, ModuleComponentSelector> dependencySubstitutionSpec
- final Map<String, String> buildToolsVersions = [ : ]
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationPlugin.groovy
deleted file mode 100644
index c04ca55..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesDeclarationPlugin.groovy
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.dependencies
-
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-
-class DependenciesDeclarationPlugin implements Plugin<Project>
-{
- @Override
- void apply( Project project )
- {
- project.extensions.create( 'dependenciesDeclaration', DependenciesDeclarationExtension )
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesPlugin.groovy
deleted file mode 100644
index bd9efde..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/dependencies/DependenciesPlugin.groovy
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.dependencies
-
-import groovy.transform.CompileStatic
-import org.gradle.api.Action
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.artifacts.Configuration
-import org.gradle.api.artifacts.DependencySubstitution
-import org.gradle.api.artifacts.component.ModuleComponentSelector
-import org.gradle.api.artifacts.repositories.MavenArtifactRepository
-
-@CompileStatic
-class DependenciesPlugin implements Plugin<Project>
-{
- @Override
- void apply( final Project project )
- {
- def dependenciesDeclaration = project.rootProject.extensions.getByType( DependenciesDeclarationExtension )
- applyRepositories( project, dependenciesDeclaration )
- applyLibraries( project, dependenciesDeclaration )
- applyDependencyResolutionRules( project, dependenciesDeclaration )
- applyDefaultDependencies( project, dependenciesDeclaration )
- }
-
- private static void applyRepositories( Project project, DependenciesDeclarationExtension declaration )
- {
- declaration.repositoriesUrls.each { name, url ->
- project.repositories.maven { MavenArtifactRepository repo ->
- repo.name = name
- repo.url = url
- }
- }
- }
-
- private static void applyLibraries( Project project, DependenciesDeclarationExtension declaration )
- {
- project.extensions.extraProperties.set 'libraries', declaration.libraries
- }
-
- private static void applyDependencyResolutionRules( Project project, DependenciesDeclarationExtension declaration )
- {
- project.configurations.all(
- { Configuration configuration ->
- configuration.resolutionStrategy.dependencySubstitution.all(
- { DependencySubstitution dep ->
- if( dep.requested instanceof ModuleComponentSelector )
- {
- def selector = dep.requested as ModuleComponentSelector
- declaration.dependencySubstitutionSpec.execute dep, selector
- }
- } as Action<DependencySubstitution> )
- } as Action<Configuration> )
- }
-
- private static void applyDefaultDependencies( Project project, DependenciesDeclarationExtension declaration )
- {
- declaration.defaultDependencies.each { String configuration, List<Object> dependencies ->
- dependencies.each { dependency ->
- if( dependency instanceof Collection )
- {
- dependency.each { subdep ->
- project.dependencies.add( configuration, subdep )
- }
- }
- else
- {
- project.dependencies.add( configuration, dependency )
- }
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy
deleted file mode 100644
index 6d45427..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/DistributionPlugin.groovy
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.dist
-
-import groovy.transform.CompileStatic
-import groovy.transform.TypeCheckingMode
-import org.apache.rat.gradle.RatTask
-import org.apache.tools.ant.filters.ReplaceTokens
-import org.apache.zest.gradle.RootProjectPlugin
-import org.apache.zest.gradle.TaskGroups
-import org.apache.zest.gradle.dependencies.DependenciesDeclarationExtension
-import org.apache.zest.gradle.release.ReleaseSpecExtension
-import org.apache.zest.gradle.release.ReleaseSpecPlugin
-import org.gradle.api.Action
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.Task
-import org.gradle.api.file.CopySpec
-import org.gradle.api.file.FileCopyDetails
-import org.gradle.api.tasks.Copy
-import org.gradle.api.tasks.GradleBuild
-import org.gradle.api.tasks.bundling.Compression
-import org.gradle.api.tasks.bundling.Tar
-import org.gradle.api.tasks.bundling.Zip
-
-@CompileStatic
-class DistributionPlugin implements Plugin<Project>
-{
- static class TaskNames
- {
- static final String UNPACK_SOURCE_DIST = 'unpackSrcDist'
- static final String UNPACK_BINARY_DIST = 'unpackBinDist'
- static final String CHECK_SOURCE_DIST = 'checkSrcDist'
- static final String CHECK_BINARY_DIST = 'checkBinDist'
- static final String CHECK_BINARY_DIST_RAT = 'checkBinDist_rat'
- static final String GENERATE_MAVEN_OFFLINE_HELPERS = 'generateMavenGoOfflineHelpers'
- static final String GENERATE_GRADLE_OFFLINE_HELPERS = 'generateGradleGoOfflineHelpers'
- static final String CHECK_MAVEN_OFFLINE_HELPERS = 'checkMavenGoOfflineHelpers'
- static final String CHECK_GRADLE_OFFLINE_HELPERS = 'checkGradleGoOfflineHelpers'
- }
-
- @Override
- void apply( final Project project )
- {
- configureSourceDistribution( project )
- configureBinaryDistribution( project )
- configureDistributionChecksums( project )
- configureHelperTasks( project )
- }
-
- private static void configureSourceDistribution( Project project )
- {
- def releaseSpec = project.extensions.getByType( ReleaseSpecExtension )
- def srcDistFilesCopySpec = project.copySpec { CopySpec spec ->
- spec.from '.'
- spec.include '*.txt'
- spec.include 'doap.rdf'
- spec.include '*.gradle'
- spec.include 'gradlew*'
- spec.include 'gradle/**'
- spec.include 'etc/**'
- spec.include 'buildSrc/**'
- spec.include 'src/**'
- releaseSpec.approvedProjects.each { p ->
- def relPath = new File( project.projectDir.toURI().relativize( p.projectDir.toURI() ).toString() )
- spec.include "$relPath/**"
- }
- spec.include 'manual/**'
- spec.include 'samples/**'
- spec.include 'tests/**'
- spec.include 'tutorials/**'
- spec.include 'tools/shell/**'
- // Filtered, see below
- spec.exclude 'settings.gradle'
- spec.exclude 'gradle.properties'
- // Excludes
- spec.exclude '**/build/**' // Build output
- spec.exclude 'derby.log' // Derby test garbage
- spec.exclude '**/*.iml' // IDEA files
- spec.exclude '**/*.ipr' // IDEA files
- spec.exclude '**/*.iws' // IDEA files
- spec.exclude '**/.idea' // IDEA files
- spec.exclude '**/out/**' // IDEA build output
- spec.exclude '**/.classpath' // Eclipse files
- spec.exclude '**/.project' // Eclipse files
- spec.exclude '**/.settings' // Eclipse files
- spec.exclude '**/.nb-gradle/**' // Netbeans files
- spec.exclude '**/.nb-gradle*' // Netbeans files
- spec.exclude '**/.git/**' // Git directories
- spec.exclude '**/.git*' // Git files
- spec.exclude '**/.gradle/**' // Gradle management files
- spec.exclude '**/.gradletasknamecache' // Gradle cache
- spec.into '.'
- }
- def srcDistFilteredFilesTask = project.tasks.create( 'srcDistFilteredFiles' )
- srcDistFilteredFilesTask.description = 'Apply release specification to source distribution build scripts'
- // Generates various files for the source distribution
- // - settings.gradle
- // - gradle.properties to set version !
- def filteredDir = new File( "$project.buildDir/tmp/srcDistFilteredFiles" )
- srcDistFilteredFilesTask.outputs.file filteredDir
- srcDistFilteredFilesTask.doLast {
- // Settings
- def settingsFile = new File( filteredDir, 'settings.gradle' )
- settingsFile.parentFile.mkdirs()
- def filteredSettings = ''
- project.file( 'settings.gradle' ).readLines().each { line ->
- if( line.contains( '\'libraries:' ) || line.contains( '\'extensions:' ) || line.contains( '\'tools:' ) )
- {
- def accepted = false
- releaseSpec.approvedProjects.collect { it.projectDir }.each { acceptedProjectDir ->
- if( line.contains( "'${ acceptedProjectDir.parentFile.name }:${ acceptedProjectDir.name }'" ) )
- {
- accepted = true
- }
- }
- if( accepted )
- {
- filteredSettings += "$line\n"
- }
- }
- else
- {
- filteredSettings += "$line\n"
- }
- }
- settingsFile.text = filteredSettings
- // gradle.properties
- def gradlePropsFile = new File( filteredDir, 'gradle.properties' )
- gradlePropsFile.parentFile.mkdirs()
- gradlePropsFile.text = project.file( 'gradle.properties' ).text +
- "\nskipSigning=true\nskipAsciidocIfAbsent=true\n\nversion=$project.version\n"
- }
- def srcDistFilteredFilesCopySpec = project.copySpec { CopySpec spec ->
- spec.from srcDistFilteredFilesTask
- spec.into '.'
- }
- def srcDistCopySpec = project.copySpec { CopySpec spec ->
- spec.into "apache-zest-java-$project.version-src"
- spec.with srcDistFilesCopySpec
- spec.with srcDistFilteredFilesCopySpec
- }
-
- def zipSources = project.tasks.create( 'zipSources', Zip ) { Zip task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = 'Assemble .zip source distribution'
- task.baseName = 'apache-zest-java'
- task.with srcDistCopySpec
- task.classifier = 'src'
- }
- def tarSources = project.tasks.create( 'tarSources', Tar ) { Tar task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = 'Assemble .tar.gz source distribution'
- task.baseName = 'apache-zest-java'
- task.with srcDistCopySpec
- task.compression = Compression.GZIP
- task.classifier = 'src'
- }
- project.artifacts.add( 'archives', zipSources )
- project.artifacts.add( 'archives', tarSources )
-
- project.tasks.create( TaskNames.UNPACK_SOURCE_DIST, Copy ) { Copy task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = "Unpack source distribution"
- task.with srcDistCopySpec
- task.into 'build/unpacked-distributions/src'
- }
-
- def unpackedSrcDistDir = project.file( "build/unpacked-distributions/src/apache-zest-java-$project.version-src" )
- project.tasks.create( TaskNames.CHECK_SOURCE_DIST, GradleBuild.class, { GradleBuild task ->
- task.group = TaskGroups.DISTRIBUTION_VERIFICATION
- task.description = "Check the source distribution by running the 'check' and 'assemble' tasks inside"
- task.dependsOn TaskNames.UNPACK_SOURCE_DIST
- task.buildFile = "$unpackedSrcDistDir/build.gradle"
- task.tasks = [ 'check', 'assemble' ]
- } as Action<GradleBuild> )
- }
-
- private static void configureBinaryDistribution( Project project )
- {
- configureGoOfflineHelpers( project )
-
- def releaseSpec = project.extensions.getByType( ReleaseSpecExtension )
- def reportsDistCopySpec = project.copySpec { CopySpec spec ->
- spec.from "$project.buildDir/reports"
- spec.into 'docs/reports'
- }
- def docsCopySpec = project.copySpec { CopySpec spec ->
- spec.from 'build/docs'
- spec.from 'manual/build/docs/website'
- spec.into 'docs'
- }
- def runtimeDependenciesListCopySpec = project.copySpec { CopySpec spec ->
- releaseSpec.approvedProjects.collect { p ->
- spec.into( 'libs/' ) { CopySpec sub ->
- sub.from "$p.buildDir/reports/project/dependencies.txt"
- sub.rename 'dependencies.txt', "${ p.name }-${ p.version }-runtime-deps.txt"
- }
- }
- spec.into( '.' ) { CopySpec sub ->
- sub.from project.tasks.getByName( TaskNames.GENERATE_MAVEN_OFFLINE_HELPERS ).outputs
- sub.from project.tasks.getByName( TaskNames.GENERATE_GRADLE_OFFLINE_HELPERS ).outputs
- }
- }
- def libsCopySpec = project.copySpec { CopySpec spec ->
- releaseSpec.approvedProjects.collect { proj ->
- spec.into( 'libs/' ) { CopySpec sub ->
- sub.from proj.configurations.getByName( 'archives' ).artifacts.files
- sub.exclude '**-testsources.jar'
- sub.exclude '**/*.asc'
- }
- }
- }
- def extraDistTextCopySpec = project.copySpec { CopySpec spec ->
- releaseSpec.approvedProjects.collect { p ->
- spec.from project.fileTree( dir: "$p.projectDir/src/dist/", include: '**', exclude: "**/*.jar*" )
- spec.eachFile { FileCopyDetails fcd ->
- fcd.filter( ReplaceTokens, tokens: [ version: project.version ] )
- }
- }
- spec.into '.'
- }
- def extraDistBinCopySpec = project.copySpec { CopySpec spec ->
- releaseSpec.approvedProjects.collect { p ->
- spec.from "$p.projectDir/src/dist/"
- spec.include '**/*.jar'
- spec.include '**/*.jar_'
- }
- spec.into '.'
- }
- def binDistNoticesCopySpec = project.copySpec { CopySpec spec ->
- spec.from "$project.projectDir/LICENSE.txt"
- spec.from "$project.projectDir/src/bin-dist"
- spec.into '.'
- }
- def binDistImage = project.copySpec { CopySpec spec ->
- spec.into "apache-zest-java-$project.version-bin"
- spec.with binDistNoticesCopySpec
- spec.with docsCopySpec
- spec.with reportsDistCopySpec
- spec.with runtimeDependenciesListCopySpec
- spec.with extraDistTextCopySpec
- spec.with extraDistBinCopySpec
- spec.with libsCopySpec
- }
-
- def zipBinaries = project.tasks.create( 'zipBinaries', Zip ) { Zip task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = 'Assemble .zip binary distribution'
- task.dependsOn project.tasks.getByName( RootProjectPlugin.TaskNames.BUILD_ALL )
- task.baseName = 'apache-zest-java'
- task.classifier = 'bin'
- task.with binDistImage
- }
- def tarBinaries = project.tasks.create( 'tarBinaries', Tar ) { Tar task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = 'Assemble .tar.gz binary distribution'
- task.dependsOn project.tasks.getByName( RootProjectPlugin.TaskNames.BUILD_ALL )
- task.baseName = 'apache-zest-java'
- task.classifier = 'bin'
- task.compression = Compression.GZIP
- task.with binDistImage
- }
- project.artifacts.add( 'archives', zipBinaries )
- project.artifacts.add( 'archives', tarBinaries )
-
- project.tasks.create( TaskNames.UNPACK_BINARY_DIST, Copy ) { Copy task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = "Unpack binary distribution"
- task.with binDistImage
- task.into 'build/unpacked-distributions/bin'
- }
-
- configureBinaryDistributionCheck( project )
- }
-
- private static void configureGoOfflineHelpers( Project project )
- {
- def externalRepos = project.rootProject.extensions.getByType( DependenciesDeclarationExtension ).repositoriesUrls
- def approvedProjectsTask = project.tasks.getByName( ReleaseSpecPlugin.TaskNames.RELEASE_APPROVED_PROJECTS )
- def genOfflineMaven = project.tasks.create( TaskNames.GENERATE_MAVEN_OFFLINE_HELPERS,
- GoOfflineHelpersTasks.GenerateMaven )
- def genOfflineGradle = project.tasks.create( TaskNames.GENERATE_GRADLE_OFFLINE_HELPERS,
- GoOfflineHelpersTasks.GenerateGradle )
- genOfflineMaven.repositories = externalRepos
- genOfflineGradle.repositories = externalRepos
- [ genOfflineMaven, genOfflineGradle ].each { task ->
- task.group = TaskGroups.DISTRIBUTION
- task.dependsOn approvedProjectsTask
- }
- def checkOfflineMaven = project.tasks.create( TaskNames.CHECK_MAVEN_OFFLINE_HELPERS,
- GoOfflineHelpersTasks.CheckMaven )
- checkOfflineMaven.group = TaskGroups.DISTRIBUTION_VERIFICATION
- checkOfflineMaven.description = 'Check binary distribution Maven dependencies download helper'
- checkOfflineMaven.dependsOn genOfflineMaven
- def checkOfflineGradle = project.tasks.create( TaskNames.CHECK_GRADLE_OFFLINE_HELPERS,
- GoOfflineHelpersTasks.CheckGradle )
- checkOfflineGradle.group = TaskGroups.DISTRIBUTION_VERIFICATION
- checkOfflineGradle.description = 'Check binary distribution Gradle dependencies download helper'
- checkOfflineGradle.dependsOn genOfflineGradle
- [ checkOfflineMaven, checkOfflineGradle ].each { task ->
- task.group = TaskGroups.DISTRIBUTION_VERIFICATION
- task.dependsOn TaskNames.UNPACK_BINARY_DIST
- }
- }
-
- private static void configureBinaryDistributionCheck( Project project )
- {
- def unpackedBinDistDir = project.file( "build/unpacked-distributions/bin/apache-zest-java-$project.version-bin" )
- project.tasks.create( TaskNames.CHECK_BINARY_DIST_RAT, RatTask, { RatTask task ->
- task.group = TaskGroups.DISTRIBUTION_VERIFICATION
- task.description = "Checks binary distribution using Apache RAT"
- task.dependsOn TaskNames.UNPACK_BINARY_DIST
- task.inputDir = unpackedBinDistDir.absolutePath
- task.reportDir = project.file( 'build/reports/rat-bin-dist' )
- task.excludes = [
- '.gradle/**',
- 'docs/reports/**',
- 'docs/javadocs/**',
- 'etc/templates/**',
- 'libs/**'
- ]
- } as Action<RatTask> )
- project.tasks.getByName( TaskNames.CHECK_MAVEN_OFFLINE_HELPERS ) { GoOfflineHelpersTasks.CheckMaven task ->
- task.directory = unpackedBinDistDir
- }
- project.tasks.getByName( TaskNames.CHECK_GRADLE_OFFLINE_HELPERS ) { GoOfflineHelpersTasks.CheckGradle task ->
- task.directory = unpackedBinDistDir
- task.mustRunAfter TaskNames.CHECK_MAVEN_OFFLINE_HELPERS
- }
- project.tasks.create( TaskNames.CHECK_BINARY_DIST ) { Task task ->
- task.group = TaskGroups.DISTRIBUTION_VERIFICATION
- task.description = 'Checks binary distribution'
- task.dependsOn TaskNames.CHECK_BINARY_DIST_RAT
- task.dependsOn TaskNames.CHECK_MAVEN_OFFLINE_HELPERS
- task.dependsOn TaskNames.CHECK_GRADLE_OFFLINE_HELPERS
- }
- }
-
- @CompileStatic( TypeCheckingMode.SKIP )
- private static void configureDistributionChecksums( Project project )
- {
- project.tasks.withType( Zip ) { Zip task ->
- task.doLast {
- project.ant.checksum file: task.archivePath, algorithm: 'MD5'
- project.ant.checksum file: task.archivePath, algorithm: 'SHA-512'
- }
- }
- project.tasks.withType( Tar ) { Tar task ->
- task.doLast {
- project.ant.checksum file: task.archivePath, algorithm: 'MD5'
- project.ant.checksum file: task.archivePath, algorithm: 'SHA-512'
- }
- }
- }
-
- private static void configureHelperTasks( Project project )
- {
- project.tasks.create( 'dist', Copy ) { Copy task ->
- task.group = TaskGroups.DISTRIBUTION
- task.description = "Assembles source and binary distributions"
- task.dependsOn 'install'
- task.from project.tasks.getByName( 'unpackBinDist' )
- task.into "$project.buildDir/dist"
- }
- project.tasks.create( 'checkDists' ) { Task task ->
- task.group = TaskGroups.DISTRIBUTION_VERIFICATION
- task.description = "Checks source and binary distributions"
- task.dependsOn TaskNames.CHECK_SOURCE_DIST, TaskNames.CHECK_BINARY_DIST
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/GoOfflineHelpersTasks.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/GoOfflineHelpersTasks.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/GoOfflineHelpersTasks.groovy
deleted file mode 100644
index 8ff7540..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/dist/GoOfflineHelpersTasks.groovy
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.dist
-
-import groovy.transform.CompileStatic
-import org.apache.zest.gradle.release.ReleaseSpecExtension
-import org.apache.zest.gradle.tasks.ExecLogged
-import org.gradle.api.DefaultTask
-import org.gradle.api.GradleException
-import org.gradle.api.Project
-import org.gradle.api.artifacts.Dependency
-import org.gradle.api.artifacts.ProjectDependency
-import org.gradle.api.artifacts.result.ResolvedComponentResult
-import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.InputFile
-import org.gradle.api.tasks.Internal
-import org.gradle.api.tasks.OutputFile
-import org.gradle.api.tasks.TaskAction
-import org.gradle.process.ExecSpec
-
-/**
- * Tasks to generate and check go-offline maven and gradle helpers bundled with the binary distribution.
- */
-@CompileStatic
-interface GoOfflineHelpersTasks
-{
- class GenerateMaven extends DefaultTask
- {
- static final String POM_FILENAME = 'go-offline.pom'
-
- @Input
- Map<String, String> repositories = [ : ]
-
- @Internal
- File outputDir = new File( project.buildDir, 'go-offline-helpers' )
-
- @OutputFile
- File getMavenGoOfflineHelper()
- {
- return new File( outputDir, POM_FILENAME )
- }
-
- GenerateMaven()
- {
- super();
- outputs.upToDateWhen { false }
- }
-
- @TaskAction
- void generate()
- {
- outputDir.mkdirs()
- def components = Utils.resolveAllRuntimeComponents( project )
- def maven = generateMaven( components )
- mavenGoOfflineHelper.text = maven
- }
-
- private String generateMaven( Set<ResolvedComponentResult> components )
- {
- def pom = Utils.licenseHeader( project.file( 'etc/header.txt' ).text, 'xml' )
- pom += '<project>\n <modelVersion>4.0.0</modelVersion>\n'
- pom +=
- " <groupId>org.apache.zest</groupId>\n <artifactId>go-offline-helper</artifactId>\n <version>$project.version</version>\n"
- pom += ' <packaging>pom</packaging>\n'
- pom +=
- ' <!--\n This pom has the sole purpose of downloading all dependencies in a directory relative to this file named \'dependencies\'.\n'
- pom += " Use the following command:\n\n mvn -f $POM_FILENAME validate\n -->\n <repositories>\n"
- repositories.entrySet().each { repo ->
- pom += " <repository><id>go-offline-repo-$repo.key</id><url>${ repo.value }</url></repository>\n"
- }
- pom += ' </repositories>\n <dependencies>\n'
- components.each { comp ->
- pom += ' <dependency>\n'
- pom += " <groupId>$comp.moduleVersion.group</groupId>\n"
- pom += " <artifactId>$comp.moduleVersion.name</artifactId>\n"
- pom += " <version>$comp.moduleVersion.version</version>\n"
- pom += ' </dependency>\n'
- }
- pom += """ </dependencies>\n <build><plugins><plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.10</version>
- <executions>
- <execution>
- <id>go-offline-jars</id><phase>validate</phase>
- <goals><goal>copy-dependencies</goal></goals>
- <configuration>
- <outputDirectory>\${project.basedir}/dependencies</outputDirectory>
- <excludeTransitive>true</excludeTransitive>
- </configuration>
- </execution>
- <execution>
- <id>go-offline-sources</id><phase>validate</phase>
- <goals><goal>copy-dependencies</goal></goals>
- <configuration>
- <classifier>sources</classifier><failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
- <outputDirectory>\${project.basedir}/dependencies</outputDirectory>
- <excludeTransitive>true</excludeTransitive>
- </configuration>
- </execution>
- <execution>
- <id>go-offline-javadocs</id><phase>validate</phase>
- <goals><goal>copy-dependencies</goal></goals>
- <configuration>
- <classifier>javadoc</classifier><failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
- <outputDirectory>\${project.basedir}/dependencies</outputDirectory>
- <excludeTransitive>true</excludeTransitive>
- </configuration>
- </execution>
- </executions>
- </plugin></plugins></build>
-</project>
-"""
- return pom
- }
- }
-
- class GenerateGradle extends DefaultTask
- {
- static final String BUILD_SCRIPT_FILENAME = 'go-offline.gradle'
-
- @Input
- Map<String, String> repositories = [ : ]
-
- @Internal
- File outputDir = new File( project.buildDir, 'go-offline-helpers' )
-
- @OutputFile
- File getGradleGoOfflineHelper()
- {
- return new File( outputDir, BUILD_SCRIPT_FILENAME )
- }
-
- GenerateGradle()
- {
- super();
- outputs.upToDateWhen { false }
- }
-
- @TaskAction
- void generate()
- {
- outputDir.mkdirs()
- def components = Utils.resolveAllRuntimeComponents( project )
- def gradle = generateGradle( components )
- gradleGoOfflineHelper.text = gradle
- }
-
- private String generateGradle( Set<ResolvedComponentResult> components )
- {
- def build = Utils.licenseHeader( project.file( 'etc/header.txt' ).text, 'java' )
- build += '// This gradle build file has the sole purpose of downloading all dependencies in a directory\n'
- build += '// relative to this file named \'dependencies\'.\n'
- build += "// Use the following command: gradle -b $BUILD_SCRIPT_FILENAME download\n"
- build += 'apply plugin: \'java\'\nconfigurations { download }\nrepositories {\n'
- repositories.entrySet().each { repo ->
- build += " maven { url '${ repo.value }' }\n"
- }
- build += '}\ndependencies {\n'
- components.each { comp ->
- def depCoords = "${ comp.moduleVersion.group }:${ comp.moduleVersion.name }:${ comp.moduleVersion.version }"
- build += " download( '$depCoords' ) { transitive = false }\n"
- }
- build += """}
-task download( type: Copy ) {
- outputs.upToDateWhen { false }
- def sources = configurations.download.resolvedConfiguration.resolvedArtifacts.collect { artifact ->
- project.dependencies.create( [ group: artifact.moduleVersion.id.group, name: artifact.moduleVersion.id.name, version: artifact.moduleVersion.id.version, classifier: 'sources' ] )
- }
- def javadocs = configurations.download.resolvedConfiguration.resolvedArtifacts.collect { artifact ->
- project.dependencies.create( [ group: artifact.moduleVersion.id.group, name: artifact.moduleVersion.id.name, version: artifact.moduleVersion.id.version, classifier: 'javadoc' ] )
- }
- from configurations.download
- from configurations.detachedConfiguration( sources as Dependency[] ).resolvedConfiguration.lenientConfiguration.getFiles( Specs.SATISFIES_ALL )
- from configurations.detachedConfiguration( javadocs as Dependency[] ).resolvedConfiguration.lenientConfiguration.getFiles( Specs.SATISFIES_ALL )
- into file( 'dependencies/' )
-}
-"""
- return build
- }
- }
-
- class CheckMaven extends DefaultTask
- {
- @Internal
- File directory
-
- @InputFile
- File getMavenGoOfflineHelper()
- {
- return new File( directory, GenerateMaven.POM_FILENAME )
- }
-
- CheckMaven()
- {
- super();
- description = 'Check the binary distribution Maven go-offline helper'
- outputs.upToDateWhen { false }
- onlyIf { Utils.isMvnInstalled() }
- }
-
- @TaskAction
- void check()
- {
- def dependenciesDir = new File( directory, 'dependencies' )
- project.delete dependenciesDir
- def outLog = project.file( "$project.buildDir/tmp/$name/stdout.log" )
- def errLog = project.file( "$project.buildDir/tmp/$name/stderr.log" )
- def command = [ 'mvn', '-e', '-f', GenerateMaven.POM_FILENAME, 'validate' ] as Object[]
- ExecLogged.execLogged( project, outLog, errLog ) { ExecSpec spec ->
- spec.workingDir directory
- spec.commandLine command
- }
- Utils.checkAllJarsArePresent( project, dependenciesDir, GenerateMaven.POM_FILENAME )
- }
- }
-
- class CheckGradle extends DefaultTask
- {
- @Internal
- File directory
-
- @InputFile
- File getGradleGoOfflineHelper()
- {
- return new File( directory, GenerateGradle.BUILD_SCRIPT_FILENAME )
- }
-
- CheckGradle()
- {
- super();
- description = 'Check the binary distribution Gradle go-offline helper'
- outputs.upToDateWhen { false }
- }
-
- @TaskAction
- void check()
- {
- def buildScript = new File( directory, GenerateGradle.BUILD_SCRIPT_FILENAME )
- def dependenciesDir = new File( directory, 'dependencies' )
- project.delete dependenciesDir
- def outLog = project.file( "$project.buildDir/tmp/$name/stdout.log" )
- def errLog = project.file( "$project.buildDir/tmp/$name/stderr.log" )
- ExecLogged.execLogged( project, outLog, errLog ) { ExecSpec spec ->
- spec.workingDir project.projectDir
- spec.commandLine './gradlew', '-u', '-s', '-b', buildScript.absolutePath, 'download'
- }
- Utils.checkAllJarsArePresent( project, dependenciesDir, GenerateGradle.BUILD_SCRIPT_FILENAME )
- }
- }
-
- static class Utils
- {
- // Do the global dependency resolution here so there won't be any surprise when using the helpers
- // This also allow to apply the resolution strategy defined in libraries.gradle
- // WARN some of our modules depends on != versions of some artifacts, this resolution flatten this using the most up to date
- private static Set<ResolvedComponentResult> resolveAllRuntimeComponents( Project rootProject )
- {
- def allRuntimeDeps = getAllRuntimeDependencies( rootProject )
- def configuration = rootProject.configurations.findByName( 'goOfflineHelpers' )
- if( !configuration )
- {
- configuration = rootProject.configurations.create( 'goOfflineHelpers' )
- allRuntimeDeps.each { set -> rootProject.dependencies.add( configuration.name, set ) }
- }
- return configuration.incoming.resolutionResult.allComponents.findAll { ResolvedComponentResult comp ->
- !comp.moduleVersion.group.startsWith( 'org.apache.zest' )
- } as Set<ResolvedComponentResult>
- }
-
- private static List<Dependency> getAllRuntimeDependencies( Project rootProject )
- {
- def releaseSpec = rootProject.extensions.getByType( ReleaseSpecExtension )
- def allDependencies = releaseSpec.approvedProjects.collect { project ->
- project.configurations.getByName( 'runtime' ).allDependencies
- }.flatten() as List<Dependency>
- return allDependencies.findAll { Dependency dep ->
- !( dep instanceof ProjectDependency ) && dep.name != null && !dep.group.startsWith( 'org.apache.zest' )
- }
- }
-
- private static void checkAllJarsArePresent( Project rootProject, File dependenciesDir, String helper )
- {
- def allDependencies = getAllRuntimeDependencies( rootProject )
- allDependencies.each { Dependency dep ->
- def jarName = "${ dep.name }-${ dep.version }.jar"
- def jarFile = new File( dependenciesDir, jarName )
- if( !jarFile.exists() )
- {
- throw new GradleException( "Binary distribution $helper failed!\n" +
- "\tMissing: $dep\n" +
- "\tin $jarFile" );
- }
- }
- }
-
- private static boolean isMvnInstalled()
- {
- def pathDirs = System.getenv( 'PATH' ).split( File.pathSeparator )
- def flattened = pathDirs.collect( { String pathDir -> new File( pathDir, 'mvn' ) } ).flatten() as List<File>
- return flattened.find( { File pathDir -> pathDir.isFile() } ) != null
- }
-
- // Generate license headers with comment styles
- private static String licenseHeader( String base, String flavour )
- {
- def header
- switch( flavour )
- {
- case 'java': case 'groovy': case 'js':
- header = licenseHeader_wrap( base, '/*', ' * ', ' */' ); break
- case 'xml': case 'html':
- header = licenseHeader_wrap( base, '<!--', ' ', '-->' ); break
- case 'txt': case 'shell': case 'python': case 'ruby':
- header = licenseHeader_wrap( base, null, '# ', null ); break
- case 'adoc': case 'asciidoc':
- header = licenseHeader_wrap( base, null, '// ', null ); break
- default:
- header = base
- }
- header
- }
-
- private static String licenseHeader_wrap( String base, String top, String left, String bottom )
- {
- ( top ? "$top\n" : '' ) + base.readLines().collect { "${ left }${ it }" }.join( '\n' ) + '\n' +
- ( bottom ? "$bottom\n" : '' )
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy
deleted file mode 100644
index 324c196..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/AsciidocBuildInfoPlugin.groovy
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.doc
-
-import groovy.transform.CompileStatic
-import org.apache.zest.gradle.TaskGroups
-import org.gradle.api.Project
-import org.gradle.api.Plugin
-
-@CompileStatic
-class AsciidocBuildInfoPlugin implements Plugin<Project>
-{
- final static String TASK_NAME = 'makeAsciidocBuildInfo'
-
- def void apply( Project project )
- {
- def buildInfoDir = new File( project.buildDir, "docs/buildinfo" );
-
- def makeAsciidocBuildInfoTask = project.tasks.create( TASK_NAME )
- makeAsciidocBuildInfoTask.group = TaskGroups.DOCUMENTATION
- makeAsciidocBuildInfoTask.description = 'Generates asciidoc artifact snippet'
- makeAsciidocBuildInfoTask.doLast {
- buildInfoDir.mkdirs()
-
- // GroupID, ArtifactID, Version table in artifact.txt
- def artifactTableFile = new File( buildInfoDir, "artifact.txt" )
- def artifactTable = """
- |.Artifact
- |[role="artifact", options="header,autowidth"]
- ||===================================================
- ||Group ID|Artifact ID|Version
- ||${ project.group }|${ project.name }|${ project.version }
- ||===================================================
- """.stripMargin()
- artifactTableFile.withWriter { out -> out.println( artifactTable ) }
- }
-
- // Declare inputs/outputs
- if( project.getBuildFile() != null && project.getBuildFile().exists() )
- {
- makeAsciidocBuildInfoTask.getInputs().file( project.getBuildFile() )
- }
- makeAsciidocBuildInfoTask.getOutputs().file( buildInfoDir )
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/DocumentationTask.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/DocumentationTask.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/DocumentationTask.groovy
deleted file mode 100644
index 31e2cc8..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/DocumentationTask.groovy
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.doc
-
-import groovy.io.FileType
-import groovy.transform.CompileStatic
-import groovy.transform.TypeCheckingMode
-import java.security.MessageDigest
-import org.apache.zest.gradle.PolygeneExtension
-import org.apache.zest.gradle.release.ReleaseSpecExtension
-import org.apache.zest.gradle.tasks.ExecLogged
-import org.gradle.api.Action;
-import org.gradle.api.DefaultTask
-import org.gradle.api.file.CopySpec
-import org.gradle.api.tasks.Internal
-import org.gradle.api.tasks.TaskAction
-import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.InputDirectory
-import org.gradle.api.tasks.InputFiles
-import org.gradle.api.tasks.OutputDirectory
-import org.gradle.process.ExecSpec
-
-// TODO: try to use dependencies for FOP and execute within the same JVM.
-// TODO: move the bulk of resources into this plugin, instead of sitting in the project.
-@CompileStatic
-class DocumentationTask extends DefaultTask
-{
- @Input def String docName
- @Input def String docType
-
- @InputDirectory def File getCommonResourcesDir() { project.file( 'src/resources' ) }
- @InputDirectory def File getConfigDir() { project.file( 'src/conf' ) }
- @InputDirectory def File getDocsDir() { project.file( 'src/docs' ) }
- @InputDirectory def File getSrcMainDir() { project.file( 'src/main' ) }
- @InputDirectory def File getXslDir() { project.file( 'src/xsl' ) }
- @InputDirectory def File getBuildSrcDir() { project.rootProject.file( 'buildSrc/src' ) }
-
- @InputFiles def getSubProjectsDocsDirs() { project.rootProject.subprojects.collect { p -> p.file( 'src/docs' ) } }
- @InputFiles def getSubProjectsTestDirs() { project.rootProject.subprojects.collect { p -> p.file( 'src/test' ) } }
-
- @OutputDirectory def File getOutputDir() { project.file( "${ project.buildDir }/docs/${ docName }/" ) }
-
- @Internal def File getTempAsciidocDir() { project.file( "${ project.buildDir }/tmp-asciidoc" ) }
- @Internal def File getTempDir() { project.file( "${ project.buildDir }/tmp/docs/${ docName }" ) }
-
- @TaskAction
- def void generate()
- {
- installAsciidocFilters()
-
- [ outputDir, tempAsciidocDir, tempDir ].each { it.deleteDir() }
- [ outputDir, tempAsciidocDir, tempDir ].each { it.mkdirs() }
-
- copySubProjectsDocsResources()
- generateAsciidocAccordingToReleaseSpecification()
- generateXDoc()
- generateChunkedHtml()
- // generateSingleHtml()
- // generatePdf()
- }
-
- def void installAsciidocFilters()
- {
- def digester = MessageDigest.getInstance( 'SHA' )
- def filtersDir = project.rootProject.file( 'buildSrc/src/asciidoc/filters' )
- def userHome = new File( System.getProperty( 'user.home' ) )
- def dotAsciidocFiltersDir = new File( userHome, '.asciidoc/filters' )
- def installSnippets = false
- filtersDir.eachFileRecurse( FileType.FILES ) { originalFile ->
- def targetFile = new File( dotAsciidocFiltersDir,
- ( originalFile.toURI() as String ) - ( filtersDir.toURI() as String ) )
- if( !targetFile.exists() )
- {
- installSnippets = true
- }
- else
- {
- def originalDigest = digester.digest( originalFile.bytes )
- def targetDigest = digester.digest( targetFile.bytes )
- if( originalDigest != targetDigest )
- {
- installSnippets = true
- }
- }
- }
- if( installSnippets )
- {
- dotAsciidocFiltersDir.mkdirs()
- project.rootProject.copy { CopySpec spec ->
- spec.from filtersDir
- spec.into dotAsciidocFiltersDir
- }
- dotAsciidocFiltersDir.eachFileRecurse( FileType.FILES ) { file ->
- if( file.name.endsWith( '.py' ) )
- {
- chmod( file, '755' )
- }
- }
- println "Polygene Asciidoc Filters Installed!"
- }
- }
-
- @CompileStatic( TypeCheckingMode.SKIP )
- def void chmod( File file, String permissions )
- {
- ant.chmod( file: file.absolutePath, perm: permissions )
- }
-
- def void copySubProjectsDocsResources()
- {
- project.rootProject.subprojects.each { p ->
- p.copy { CopySpec spec ->
- spec.from p.file( 'src/docs/resources' )
- spec.into outputDir
- spec.include '**'
- }
- }
- }
-
- def void generateAsciidocAccordingToReleaseSpecification()
- {
- def zest = project.extensions.getByType( PolygeneExtension )
- project.copy { CopySpec spec ->
- spec.from docsDir
- spec.into tempAsciidocDir
- spec.include '**'
- }
- if( zest.releaseVersion )
- {
- def licenseFile = new File( tempAsciidocDir, 'userguide/libraries.txt' )
- def extensionsFile = new File( tempAsciidocDir, 'userguide/extensions.txt' )
- def toolsFile = new File( tempAsciidocDir, 'userguide/tools.txt' )
- [ licenseFile, extensionsFile, toolsFile ].each { asciidocFile ->
- def filteredFileContent = ''
- asciidocFile.readLines().each { line ->
- if( line.startsWith( 'include::' ) )
- {
- def approved = false
- def releaseApprovedProjects = project.rootProject.extensions.
- getByType( ReleaseSpecExtension ).approvedProjects
- releaseApprovedProjects.collect { it.projectDir }.each { approvedProjectDir ->
- if( line.contains( "${ approvedProjectDir.parentFile.name }/${ approvedProjectDir.name }" ) )
- {
- approved = true
- }
- }
- if( approved )
- {
- filteredFileContent += "$line\n"
- }
- }
- else
- {
- filteredFileContent += "$line\n"
- }
- }
- asciidocFile.text = filteredFileContent
- }
- }
- }
-
- def void generateXDoc()
- {
- def outLog = getLogFile( 'adoc-2-docbook', 'stdout' )
- def errLog = getLogFile( 'adoc-2-docbook', 'stderr' )
- ExecLogged.execLogged( project, outLog, errLog, { ExecSpec spec ->
- spec.executable = 'asciidoc'
- spec.workingDir = '..'
- def commonResourcesPath = relativePath( project.rootDir, commonResourcesDir )
- def asciidocConfigPath = relativePath( project.rootDir, new File( configDir, 'asciidoc.conf' ) )
- def docbookConfigPath = relativePath( project.rootDir, new File( configDir, 'docbook45.conf' ) )
- def linkimagesConfigPath = relativePath( project.rootDir, new File( configDir, 'linkedimages.conf' ) )
- def xdocOutputPath = relativePath( project.rootDir, new File( tempDir, 'xdoc-temp.xml' ) )
- def asciidocIndexPath = relativePath( project.rootDir, new File( tempAsciidocDir, "$docName/index.txt" ) )
- spec.args = [
- '--attribute', 'revnumber=' + project.version,
- '--attribute', 'level1=' + ( docType == 'article' ? 1 : 0 ),
- '--attribute', 'level2=' + ( docType == 'article' ? 2 : 1 ),
- '--attribute', 'level3=' + ( docType == 'article' ? 3 : 2 ),
- '--attribute', 'level4=' + ( docType == 'article' ? 4 : 3 ),
- '--attribute', 'importdir=' + commonResourcesPath,
- '--backend', 'docbook',
- '--attribute', 'docinfo1',
- '--doctype', docType,
- '--conf-file=' + asciidocConfigPath,
- '--conf-file=' + docbookConfigPath,
- '--conf-file=' + linkimagesConfigPath,
- '--out-file', xdocOutputPath,
- asciidocIndexPath
- ]
- } as Action<? super ExecSpec> )
- }
-
- def void generateChunkedHtml()
- {
- project.copy { CopySpec spec ->
- spec.from commonResourcesDir
- spec.into outputDir
- spec.include '**'
- }
- project.copy { CopySpec spec ->
- spec.from "$docsDir/$docName/resources"
- spec.into outputDir
- spec.include '**'
- }
- def outLog = getLogFile( 'docbook-2-chunked-html', 'stdout' )
- def errLog = getLogFile( 'docbook-2-chunked-html', 'stderr' )
- ExecLogged.execLogged( project, outLog, errLog, { ExecSpec spec ->
- def xsltFile = "$docsDir/$docName/xsl/chunked.xsl"
- def outputPath = relativePath( project.projectDir, outputDir ) + '/'
- spec.executable = 'xsltproc'
- spec.args = [
- '--nonet',
- '--noout',
- '--output', outputPath,
- xsltFile,
- "$tempDir/xdoc-temp.xml"
- ]
- } as Action<? super ExecSpec> )
- }
-
- def void generateSingleHtml()
- {
- def outLog = getLogFile( 'docbook-2-html', 'stdout' )
- def errLog = getLogFile( 'docbook-2-html', 'stderr' )
- ExecLogged.execLogged( project, outLog, errLog, { ExecSpec spec ->
- // XML_CATALOG_FILES=
- String xsltFile = "$xslDir/xhtml.xsl"
- spec.executable = 'xsltproc'
- spec.args = [
- '--nonet',
- '--noout',
- '--output', "$outputDir/${ docName }.html",
- xsltFile,
- "$tempDir/xdoc-temp.xml"
- ]
- } as Action<? super ExecSpec> )
- }
-
- def void generatePdf()
- {
- // $ xsltproc --nonet ../docbook-xsl/fo.xsl article.xml > article.fo
- def outLog = getLogFile( 'docbook-2-fo', 'stdout' )
- def errLog = getLogFile( 'docbook-2-fo', 'stderr' )
- ExecLogged.execLogged( project, outLog, errLog, { ExecSpec spec ->
- String xsltFile = "$xslDir/fo.xsl"
- spec.executable = 'xsltproc'
- spec.args = [
- '--nonet',
- '--output', "$tempDir/${ docName }.fo",
- xsltFile,
- "$tempDir/xdoc-temp.xml"
- ]
- } as Action<? super ExecSpec> )
-
- // $ fop article.fo article.pdf
- outLog = getLogFile( 'fo-2-pdf', 'stdout' )
- errLog = getLogFile( 'fo-2-pdf', 'stderr' )
- ExecLogged.execLogged( project, outLog, errLog, { ExecSpec spec ->
- spec.executable = 'fop'
- spec.args = [
- "$tempDir/${ docName }.fo",
- "$outputDir/${ docName }.pdf"
- ]
- } as Action<? super ExecSpec> )
- }
-
- private File getLogFile( String step, String stream )
- {
- return project.file( "${ project.buildDir }/tmp/${ name }/${ step }-${ stream }.log" )
- }
-
- private static String relativePath( File root, File target )
- {
- new File( root.toURI().relativize( target.toURI() ).toString() ).path
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/ManualPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/ManualPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/ManualPlugin.groovy
deleted file mode 100644
index 49cfcd5..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/ManualPlugin.groovy
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.doc
-
-import groovy.transform.CompileStatic
-import org.apache.zest.gradle.TaskGroups
-import org.apache.zest.gradle.PolygeneExtension
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.Task
-import org.gradle.api.tasks.Copy
-
-@CompileStatic
-class ManualPlugin implements Plugin<Project>
-{
- static class TaskNames
- {
- static final String WEBSITE = "website"
- static final String ARCHIVE_WEBSITE = "archiveWebsite"
- static final String COPY_WEBSITE = "copyWebsite"
- static final String MANUALS = "manuals"
- }
-
- @Override
- void apply( final Project project )
- {
- def zest = project.extensions.getByType( PolygeneExtension )
- project.tasks.create( TaskNames.WEBSITE, DocumentationTask ) { DocumentationTask task ->
- task.group = TaskGroups.DOCUMENTATION
- task.description = 'Generates documentation website'
- task.dependsOn project.rootProject.allprojects.findResults { Project p ->
- p.tasks.findByName AsciidocBuildInfoPlugin.TASK_NAME
- }
- task.onlyIf { isAsciidocInstalled( project, zest ) }
- task.docName = 'website'
- task.docType = 'article'
- }
- project.tasks.create( TaskNames.ARCHIVE_WEBSITE, Copy ) { Copy task ->
- task.group = TaskGroups.DOCUMENTATION
- task.description = 'Copy website to ../zest-web'
- task.dependsOn TaskNames.WEBSITE
- task.onlyIf { isAsciidocInstalled( project, zest ) }
- if( zest.developmentVersion )
- {
- task.into "$project.rootProject.projectDir/../zest-web/site/content/java/develop"
- }
- else
- {
- task.into "$project.rootProject.projectDir/../zest-web/site/content/java/$project.version"
- }
- task.from "$project.buildDir/docs/website/"
- }
- project.tasks.create( TaskNames.COPY_WEBSITE, Copy ) { Copy task ->
- task.group = TaskGroups.RELEASE
- task.description = 'Copy website to ../zest-web LATEST'
- task.dependsOn TaskNames.ARCHIVE_WEBSITE
- task.onlyIf { zest.releaseVersion }
- task.from "$project.rootProject.projectDir/../zest-web/site/content/java/$project.version/"
- task.into "$project.rootProject.projectDir/../zest-web/site/content/java/latest/"
- }
- project.tasks.create( TaskNames.MANUALS ) { Task task ->
- task.group = TaskGroups.DOCUMENTATION
- task.description = 'Generates all documentation'
- task.dependsOn TaskNames.COPY_WEBSITE
- task.onlyIf { isAsciidocInstalled( project, zest ) }
- }
- }
-
- private static Boolean asciidocInstalled = null
-
- // Force when building a release version
- // Skip if skipAsciidocIfAbsent property is set
- // Skip if asciidoc is not found in PATH when building a development version
- private static boolean isAsciidocInstalled( Project project, PolygeneExtension zest )
- {
- if( asciidocInstalled == null )
- {
- def skipAsciidocIfAbsent = project.findProperty 'skipAsciidocIfAbsent'
- if( !skipAsciidocIfAbsent && zest.releaseVersion )
- {
- project.logger.info 'Asciidoc tasks forced for building a release version, hope you have Asciidoc installed'
- asciidocInstalled = true
- }
- else
- {
- def pathDirs = System.getenv( 'PATH' ).split( File.pathSeparator )
- def asciidocCandidates = pathDirs.collect( { String path ->
- new File( path, 'asciidoc' )
- } ).flatten() as List<File>
- asciidocInstalled = asciidocCandidates.findAll( { it.isFile() } )
- if( !asciidocInstalled )
- {
- project.logger.lifecycle 'WARNING Asciidoc not found in PATH, manual tasks will skip\n' +
- ' Please install http://www.methods.co.nz/asciidoc/'
- }
- }
- }
- return asciidocInstalled
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/XsltTask.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/XsltTask.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/XsltTask.groovy
deleted file mode 100644
index d992e9f..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/doc/XsltTask.groovy
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.doc
-
-import groovy.transform.CompileStatic
-import org.gradle.api.file.EmptyFileVisitor
-import org.gradle.api.tasks.SourceTask
-import org.gradle.api.tasks.OutputDirectory
-import org.gradle.api.tasks.Optional
-import org.gradle.api.tasks.InputFile
-import org.gradle.api.tasks.TaskAction
-import org.gradle.api.file.FileVisitDetails
-import javax.xml.transform.TransformerFactory
-import javax.xml.transform.stream.StreamResult
-import javax.xml.transform.stream.StreamSource
-
-/**
- * Gradle task for running a set of one or more
- * files through an XSLT transform. A styleSheet
- * file must be specified. The source file(s) are
- * configured just like any other source task:
- * source <file>
- * ...or...
- * source <directory>
- * ...and then optionally...
- * include '*.xml'
- * exclude, etc.
- *
- * One of destDir or destFile must be specified, though if
- * there are multiple source files then destFile will just
- * keep getting rewritten.
- *
- * The extension is stripped from the source files and the
- * specified extension is appended (whether it is set or not)
- * it defaults to no extension.
- *
- * Example task formatting a check style report:
- *
- * task checkstyleReport(type: XsltTask, dependsOn: check) {
- * source project.checkstyleResultsDir
- * include '*.xml'
- *
- * destDir = project.checkstyleResultsDir
- * extension = 'html'
- *
- * stylesheetFile = file( 'config/checkstyle/checkstyle-noframes.xsl' )
- * }
- *
- * The above definition requires that the specified XSL file be
- * copied in with the other checkstyle configuration files. (The
- * file in the example is part of the checkstyle distribution.)
- *
- */
-@CompileStatic
-class XsltTask extends SourceTask
-{
-
- @OutputDirectory
- @Optional
- File destDir
-
- @Optional
- String extension
-
- @InputFile
- File stylesheetFile
-
- @TaskAction
- def transform()
- {
- def factory = TransformerFactory.newInstance()
- def transformer = factory.newTransformer( new StreamSource( stylesheetFile ) );
-
- getSource().visit( new EmptyFileVisitor() {
- @Override
- void visitFile( FileVisitDetails fvd )
- {
- // Remove the extension from the file name
- def name = fvd.file.name.replaceAll( '[.][^\\.]*$', '' )
- if( extension == null )
- {
- extension = 'html'
- }
- name += '.' + extension
- def destFile = new File( destDir, name )
- transformer.transform( new StreamSource( fvd.file ), new StreamResult( destFile ) )
- }
- } )
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/performance/PerformanceTestsPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/performance/PerformanceTestsPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/performance/PerformanceTestsPlugin.groovy
deleted file mode 100644
index 29f1986..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/performance/PerformanceTestsPlugin.groovy
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.performance
-
-import groovy.transform.CompileStatic
-import org.apache.zest.gradle.TaskGroups
-import org.gradle.api.Action
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.plugins.JavaPluginConvention
-import org.gradle.api.tasks.bundling.Jar
-import org.gradle.api.tasks.testing.Test
-import org.gradle.language.base.plugins.LifecycleBasePlugin
-
-// TODO Add profiling tasks (jfr or honest? flamegraphs?)
-// TODO Add simple regression assertions, how? testing against a previous version?
-@CompileStatic
-class PerformanceTestsPlugin implements Plugin<Project>
-{
- static class TaskNames
- {
- static final String PERFORMANCE_TEST = 'performanceTest'
- static final String PERFORMANCE_PROFILE = 'performanceProfile'
- static final String PERFORMANCE_CHECK = 'performanceCheck'
- }
-
- @Override
- void apply( final Project project )
- {
- def sourceSets = project.convention.getPlugin( JavaPluginConvention ).sourceSets
- sourceSets.create 'perf'
- project.dependencies.add 'perfCompile', sourceSets.getByName( 'main' ).output
- project.dependencies.add 'perfCompile', sourceSets.getByName( 'test' ).output
- project.dependencies.add 'perfCompile', project.configurations.getByName( 'testCompile' )
- project.dependencies.add 'perfRuntime', project.configurations.getByName( 'testRuntime' )
- project.tasks.getByName( LifecycleBasePlugin.CHECK_TASK_NAME ).dependsOn 'compilePerfJava'
- project.tasks.create( TaskNames.PERFORMANCE_TEST, Test, { Test task ->
- task.group = TaskGroups.PERFORMANCE
- task.description = 'Runs performance tests.'
- task.maxParallelForks = 1
- task.forkEvery = 1L
- task.testClassesDir = sourceSets.getByName( 'perf' ).output.classesDir
- task.classpath = sourceSets.getByName( 'perf' ).runtimeClasspath
- task.systemProperty 'jar.path', ( project.tasks.getByName( 'jar' ) as Jar ).archivePath
- } as Action<Test> )
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/MavenMetadata.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/MavenMetadata.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/MavenMetadata.groovy
deleted file mode 100644
index 7f368e6..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/MavenMetadata.groovy
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.publish
-
-import org.gradle.api.artifacts.maven.MavenDeployer
-
-class MavenMetadata
-{
- static void applyTo( MavenDeployer mavenDeployer )
- {
- mavenDeployer.pom {
- project {
- url 'https://zest.apache.org/'
- organization {
- name 'The Apache Software Foundation'
- url 'https://apache.org/'
- }
- inceptionYear '2007'
- issueManagement {
- system 'jira'
- url 'https://issues.apache.org/jira/browse/ZEST'
- }
- scm {
- url "https://github.com/apache/zest-java"
- connection "scm:git:https://git-wip-us.apache.org/repos/asf/zest-java.git"
- developerConnection "scm:git:https://git-wip-us.apache.org/repos/asf/zest-java.git"
- }
- licenses {
- license {
- name 'Apache License, version 2.0.'
- url 'http://www.apache.org/licenses/LICENSE-2.0'
- }
- }
- mailingLists {
- mailingList {
- name 'Users List'
- subscribe 'users-subscribe@zest.apache.org'
- unsubscribe 'users-unsubscribe@zest.apache.org'
- post 'users@zest.apache.org'
- archive 'https://mail-archives.apache.org/mod_mbox/zest-users/'
- otherArchives {
- otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
- }
- }
- mailingList {
- name 'Development List'
- subscribe 'dev-subscribe@zest.apache.org'
- unsubscribe 'dev-unsubscribe@zest.apache.org'
- post 'dev@zest.apache.org'
- archive 'https://mail-archives.apache.org/mod_mbox/zest-dev/'
- otherArchives {
- otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
- }
- }
- mailingList {
- name 'Commits List'
- subscribe 'commits-subscribe@zest.apache.org'
- unsubscribe 'commits-unsubscribe@zest.apache.org'
- post 'commits@zest.apache.org'
- archive 'https://mail-archives.apache.org/mod_mbox/zest-commits/'
- otherArchives {
- otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
- }
- }
- }
- developers {
- developer {
- id 'niclas@hedhman.org'
- name 'Niclas Hedhman'
- email 'niclas@hedhman.org'
- roles {
- role 'Core Team'
- }
- organizationUrl 'http://zest.apache.org'
- timezone 'UTC+8'
- }
- developer {
- id 'rickardoberg'
- name 'Rickard \u00F6berg'
- email 'rickard.oberg@jayway.se'
- roles {
- role 'Core Team'
- }
- url 'http://www.neotechnology.com'
- organization 'Neo Technology AB'
- organizationUrl 'http://www.neotechnology.com'
- timezone 'UTC+8'
- }
- developer {
- id 'edward.yakop@gmail.com'
- name 'Edward Yakop'
- email 'efy@codedragons.com'
- roles {
- role 'Core Team'
- }
- organizationUrl 'http://zest.apache.org'
- timezone 'UTC+8'
- }
- developer {
- id 'adreghiciu@gmail.com'
- name 'Alin Dreghiciu'
- email 'adreghiciu@codedragons.com'
- roles {
- role 'Core Team'
- }
- organizationUrl 'http://zest.apache.org'
- timezone 'UTC+2'
- }
- developer {
- id 'mesirii'
- name 'Michael Hunger'
- email 'qi4j@jexp.de'
- roles {
- role 'Core Team'
- }
- timezone 'CET'
- }
-
- developer {
- id "muhdkamil"
- name "Muhd Kamil bin Mohd Baki"
- roles {
- role 'Platform Team'
- }
- timezone "UTC+8"
- }
-
- developer {
- id "ops4j@leangen.net"
- name "David Leangen"
- organization "Bioscene"
- email "ops4j@leangen.net"
- roles {
- role 'Platform Team'
- }
- timezone "UTC+9"
- }
-
- developer {
- id "sonny.gill@jayway.net"
- name "Sonny Gill"
- email "sonny.public@gmail.com"
- roles {
- role 'Community Team'
- }
- timezone "UTC+8"
- }
-
- developer {
- id "taowen"
- name "Tao Wen"
- organization ""
- email "taowen@gmail.com"
- roles {
- role 'Community Team'
- }
- timezone "UTC+8"
- }
-
- developer {
- id "thobe"
- name "Tobias Ivarsson"
- email "tobias@neotechnology.com"
- url "http://www.neotechnology.com"
- organization "NeoTechnology"
- organizationUrl "http://www.neotechnology.com"
- roles {
- role "Platform Team"
- }
- timezone "CET"
- }
-
- developer {
- id "boon"
- name "Lan Boon Ping"
- email "boonping81@gmail.com"
- roles {
- role 'Platform Team'
- }
- timezone "UTC+8"
- }
-
- developer {
- id "jan.kronquist@gmail.com"
- name "Jan Kronquist"
- email "jan.kronquist@gmail.com"
- organization "Jayway"
- roles {
- role 'Platform Team'
- }
- timezone "CET"
- }
-
- developer {
- id "nmwael"
- name "Nino Saturnino Martinez Vazquez Wael"
- roles {
- role 'Platform Team'
- }
- timezone "CET"
- }
-
- developer {
- id "peter@neubauer.se"
- name "Peter Neubauer"
- email "peter@neubauer.se"
- roles {
- role 'Platform Team'
- }
- timezone "CET"
- }
-
- developer {
- id "rwallace"
- name "Richard Wallace"
- email "rwallace@thewallacepack.net"
- roles {
- role 'Platform Team'
- }
- timezone "UTC-7"
- }
-
- developer {
- id "siannyhalim@gmail.com"
- name "Sianny Halim"
- email "siannyhalim@gmail.com"
- roles {
- role 'Platform Team'
- }
- timezone "UTC+8"
- }
-
- developer {
- id "paul@nosphere.org"
- name "Paul Merlin"
- email "paul@nosphere.org"
- roles {
- role 'Core Team'
- }
- timezone "CET"
- }
-
- developer {
- id "stas.dev+qi4j@gmail.com"
- name "Stanislav Muhametsin"
- email "stas.dev+qi4j@gmail.com"
- roles {
- role 'Platform Team'
- }
- timezone "UTC+2"
- }
-
- developer {
- id "tonny"
- name "Tonny Kohar"
- roles {
- role "Community Team"
- }
- email "tonny.kohar@gmail.com"
- timezone "UTC+7"
- }
- }
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/zest-java/blob/1c722f44/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/PublishingPlugin.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/PublishingPlugin.groovy b/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/PublishingPlugin.groovy
deleted file mode 100644
index 92b00ca..0000000
--- a/buildSrc/src/main/groovy/org/apache/zest/gradle/publish/PublishingPlugin.groovy
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * 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.
- */
-package org.apache.zest.gradle.publish
-
-import groovy.transform.CompileStatic
-import org.apache.zest.gradle.PolygeneExtension
-import org.apache.zest.gradle.release.ReleaseSpecExtension
-import org.gradle.api.GradleException
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.api.artifacts.maven.MavenDeployer
-import org.gradle.api.artifacts.maven.MavenDeployment
-import org.gradle.api.internal.plugins.DslObject
-import org.gradle.api.plugins.MavenRepositoryHandlerConvention
-import org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer
-import org.gradle.api.publication.maven.internal.deployer.MavenRemoteRepository
-import org.gradle.api.tasks.Upload
-import org.gradle.plugins.signing.Sign
-import org.gradle.plugins.signing.SigningExtension
-
-/**
- * Publishing.
- *
- * <strong>Configuration</strong>
- *
- * By default RELEASES are signed, SNAPSHOTS are not.
- * Signing can be turned on or off by setting the {@literal uploadSigned} property.
- *
- * By default RELEASES must satisfy {@link org.apache.zest.gradle.release.ModuleReleaseSpec}, SNAPSHOT don't.
- * This can be turned on or off by setting the {@literal uploadReleaseSpec} property.
- *
- * By default RELEASES and SNAPSHOTS are uploaded using HTTP.
- * Used Wagon can be overridden by setting the {@literal uploadWagon} property.
- *
- * By default RELEASES and SNAPSHOTS are uploaded to Apache Nexus.
- * Target repository can be overridden by setting the {@literal uploadRepository} property.
- *
- * No username/password is provided by default.
- * If needed set them using the uploadUsername and {@literal uploadPassword} properties.
- */
-@CompileStatic
-class PublishingPlugin implements Plugin<Project>
-{
- static final String WAGON_HTTP = 'org.apache.maven.wagon:wagon-http:2.2'
- static final String WAGON_SSH = 'org.apache.maven.wagon:wagon-ssh:2.2'
- static final String WAGON_WEBDAV = 'org.apache.maven.wagon:wagon-webdav:1.0-beta-2'
-
- static final String RELEASES_REPOSITORY_NAME = 'apache.releases.https'
- static final String RELEASES_REPOSITORY_URL = 'https://repository.apache.org/service/local/staging/deploy/maven2'
- static final String SNAPSHOTS_REPOSITORY_NAME = 'apache.snapshots.https'
- static final String SNAPSHOTS_REPOSITORY_URL = 'https://repository.apache.org/content/repositories/snapshots'
-
- static class Config
- {
- boolean snapshots
- boolean releases
- boolean signed
- boolean releaseSpec
- String wagon
- String repositoryName
- String repositoryUrl
- String username
- String password
- }
-
- @Override
- void apply( final Project project )
- {
- Config config = configFor( project )
- applyWagonConfiguration( project, config )
- configureSigning( project, config )
- configureUploadArchives( project, config )
- configureMavenMetadata( project )
- applyMavenPublishAuth( project )
- }
-
- private static Config configFor( Project project )
- {
- def zest = project.extensions.getByType( PolygeneExtension )
- def config = new Config()
- config.snapshots = zest.developmentVersion
- config.releases = zest.releaseVersion
- config.signed = project.findProperty( 'uploadSigned' ) ?: config.releases
- config.releaseSpec = project.findProperty( 'uploadReleaseSpec' ) ?: config.releases
- config.wagon = project.findProperty( 'uploadWagon' ) ?: WAGON_HTTP
- config.repositoryName = project.findProperty( 'uploadRepositoryName' ) ?:
- config.releases ? RELEASES_REPOSITORY_NAME : SNAPSHOTS_REPOSITORY_NAME
- config.repositoryUrl = project.findProperty( 'uploadRepository' ) ?:
- config.releases ? RELEASES_REPOSITORY_URL : SNAPSHOTS_REPOSITORY_URL
- config.username = project.findProperty( 'uploadUsername' )
- config.password = project.findProperty( 'uploadPassword' )
- return config
- }
-
- private static void applyWagonConfiguration( Project project, Config config )
- {
- project.configurations.create( 'deployersJars' )
- project.dependencies.add( 'deployersJars', config.wagon )
- }
-
- private static void configureSigning( Project project, Config config )
- {
- project.plugins.apply 'signing'
- def signing = project.extensions.getByType( SigningExtension )
- signing.required = config.signed
- signing.sign project.configurations.getByName( 'archives' )
- def signArchives = project.tasks.getByName( 'signArchives' ) as Sign
- signArchives.onlyIf { !project.findProperty( 'skipSigning' ) }
- }
-
- private static void configureUploadArchives( Project project, Config config )
- {
- project.plugins.apply 'maven'
- def uploadArchives = project.tasks.getByName( 'uploadArchives' ) as Upload
- uploadArchives.doFirst {
- if( project.version == "0" )
- {
- throw new GradleException( "'version' must be given as a system property to perform a release." )
- }
- }
- uploadArchives.onlyIf {
- def notSkipped = !project.hasProperty( 'skipUpload' )
- def approvedProject = project.extensions.getByType( ReleaseSpecExtension ).approvedProjects.contains( project )
- return notSkipped && ( !config.releaseSpec || ( approvedProject || project == project.rootProject ) )
- }
- uploadArchives.dependsOn project.tasks.getByName( 'check' )
- def repositoriesConvention = new DslObject( uploadArchives.repositories )
- .getConvention()
- .getPlugin( MavenRepositoryHandlerConvention )
- def mavenDeployer = repositoriesConvention.mavenDeployer() as DefaultGroovyMavenDeployer
- if( config.signed )
- {
- mavenDeployer.beforeDeployment { MavenDeployment deployment ->
- project.extensions.getByType( SigningExtension ).signPom( deployment )
- }
- }
- mavenDeployer.configuration = project.configurations.getByName( 'deployersJars' )
- def repository = new MavenRemoteRepository()
- repository.id = config.repositoryName
- repository.url = config.repositoryUrl
- if( config.username )
- {
- repository.authentication.userName = config.username
- repository.authentication.password = config.password
- }
- if( config.releases )
- {
- mavenDeployer.repository = repository
- }
- else
- {
- mavenDeployer.snapshotRepository = repository
- }
- }
-
- private static void configureMavenMetadata( Project project )
- {
- def uploadArchives = project.tasks.getByName( 'uploadArchives' ) as Upload
- def mavenDeployer = uploadArchives.repositories.getByName( 'mavenDeployer' ) as MavenDeployer
- MavenMetadata.applyTo( mavenDeployer )
- }
-
- private static void applyMavenPublishAuth( final Project project )
- {
- // Bug in maven-publish-auth require apply after uploadArchives setup
- project.plugins.apply 'maven-publish-auth'
- }
-}