You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2013/07/02 11:44:17 UTC
svn commit: r1498859 - in /httpcomponents/project-release-tools/trunk: ./
buildSrc/ buildSrc/src/ buildSrc/src/main/ buildSrc/src/main/groovy/
buildSrc/src/main/resources/
Author: olegk
Date: Tue Jul 2 09:44:17 2013
New Revision: 1498859
URL: http://svn.apache.org/r1498859
Log:
Initial import of HC release tools
Added:
httpcomponents/project-release-tools/trunk/build.gradle
httpcomponents/project-release-tools/trunk/buildSrc/
httpcomponents/project-release-tools/trunk/buildSrc/build.gradle
httpcomponents/project-release-tools/trunk/buildSrc/src/
httpcomponents/project-release-tools/trunk/buildSrc/src/main/
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/HCProject.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Html.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Mvn.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Pom.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy
httpcomponents/project-release-tools/trunk/buildSrc/src/main/resources/
httpcomponents/project-release-tools/trunk/gradle.properties.template
Added: httpcomponents/project-release-tools/trunk/build.gradle
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/build.gradle?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/build.gradle (added)
+++ httpcomponents/project-release-tools/trunk/build.gradle Tue Jul 2 09:44:17 2013
@@ -0,0 +1,184 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+Mvn mvn
+
+File staging
+HCProject website
+List<HCProject> publishedReleases
+
+task siteInit() << {
+ if (!MAVEN_HOME) {
+ throw InvalidUserDataException("MAVEN_HOME not set")
+ }
+ File mvnHomeDir = file(MAVEN_HOME)
+ if (!mvnHomeDir.exists()) {
+ throw InvalidUserDataException("Maven not found at ${mvnHomeDir}")
+ }
+ mvn = new Mvn(project, mvnHomeDir)
+
+ if (!HC_SITE_STAGING) {
+ throw InvalidUserDataException("HC_SITE_STAGING not set")
+ }
+ URI stagingURI = new URI(HC_SITE_STAGING)
+ staging = loadFromRepositry(stagingURI)
+
+ if (!HC_PROJECT_SITE) {
+ throw InvalidUserDataException("HC_PROJECT_SITE not set")
+ }
+ URI websiteURI = new URI(HC_PROJECT_SITE)
+ File websiteDir = loadFromRepositry(websiteURI)
+ Pom websitePom = mvn.parsePom(websiteDir)
+ logger.info("Website ${websitePom.artifactId}:${websitePom.version}")
+ website = new HCProject(pom: websitePom, localDir: websiteDir, repo: websiteURI)
+
+ List<URI> uris = HC_PUBLISHED_RELEASES ?
+ HC_PUBLISHED_RELEASES.split(/[ \t]+/).collect { new URI(it) } : []
+
+ publishedReleases = []
+ for (URI uri: uris) {
+ File releaseDir = loadFromRepositry(uri)
+ Pom releasePom = mvn.parsePom(releaseDir)
+ logger.info("Published release ${releasePom.artifactId}:${releasePom.version}")
+ publishedReleases.add(new HCProject(pom: releasePom, localDir: releaseDir, repo: uri))
+ }
+}
+
+task clean() << {
+ GFileUtils.cleanDirectory(project.buildDir)
+}
+
+task siteGenerate(dependsOn: siteInit) << {
+ logger.info("Generating website content ${website.pom.artifactId}:${website.pom.version}")
+ mvn.exec(website.localDir, 'clean', 'site')
+ for (HCProject release: publishedReleases) {
+ logger.info("Generating published release content ${release.pom.artifactId}:${release.pom.version}")
+ mvn.exec(release.localDir, 'clean', 'site')
+ }
+}
+
+task siteStage(dependsOn: siteInit) << {
+ logger.info("Staging website content ${website.pom.artifactId}:${website.pom.version}")
+ copyDocRoot(website, staging)
+ for (HCProject release: publishedReleases) {
+ logger.info("Staging published release content ${release.pom.artifactId}:${release.pom.version}")
+ copyReleaseContent(release, staging)
+ }
+}
+
+task site(dependsOn: [siteInit, siteGenerate, siteStage]) << {
+}
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+File loadFromRepositry(URI location) {
+ File dst
+ if (!location.absolute) {
+ dst = new File(location.toString())
+ } else {
+ String l = location.getPath()
+ if (l.startsWith('/repos/asf/httpcomponents/')) {
+ l = l - '/repos/asf/httpcomponents/'
+ }
+ if (l.endsWith('/')) {
+ l = l.substring(0, l.length() - 1)
+ }
+ dst = new File(buildDir, l.replace('/', '-'))
+
+ if (dst.exists() && new File(dst, '.svn').exists()) {
+ logger.info("Updating from repostiry ${location}")
+ Svn.update(dst)
+ } else {
+ dst.mkdirs()
+ GFileUtils.cleanDirectory(dst)
+ logger.info("Checking out from repostiry ${location}")
+ Svn.checkout(location, dst)
+ }
+ }
+ return dst
+}
+
+void copySiteContent(File srcDir, File dstDir) {
+ copy {
+ from new File(srcDir, 'target/site')
+ into dstDir
+ exclude '**/*.html'
+ }
+ copy {
+ from new File(srcDir, 'target/site')
+ into dstDir
+ include '**/*.html'
+ filter(org.apache.tools.ant.filters.FixCrLfFilter)
+ }
+}
+
+void copyDocRoot(HCProject hcProject, File dstDir) {
+ copySiteContent(hcProject.localDir, dstDir)
+}
+
+void copyReleaseContent(HCProject hcProject, File dstDir) {
+ Pom pom = hcProject.pom
+ File moduleDstDir = new File(dstDir, "${pom.artifactId}-${pom.version}")
+
+ copySiteContent(hcProject.localDir, moduleDstDir)
+
+ pom.modules.each { String submodule ->
+ copySiteContent(new File(hcProject.localDir, submodule), new File(moduleDstDir, submodule))
+ }
+
+ // Deal with crappy links generated by Maven Site Plugin
+ project.fileTree(dir: moduleDstDir, include: '*.html').each {
+ File f ->
+ logger.info("Rewriting links in ${f}")
+ Html.rewriteLinks(f, { URI href ->
+ if (!href.isAbsolute()) {
+ def m1 = href.path =~ /^..(\/..\/scp:\/people.apache.org\/www)?\/hc.apache.org\//
+ if (m1.find()) {
+ return new URI(m1.replaceFirst('../'))
+ }
+ }
+ return href
+ })
+ }
+
+ pom.modules.each { String submodule ->
+ project.fileTree(dir: new File(moduleDstDir, submodule), include: '*.html').each {
+ File f ->
+ logger.info("Rewriting links in ${f}")
+ Html.rewriteLinks(f, { URI href ->
+ if (!href.isAbsolute()) {
+ def m1 = href.path =~ /^..\/..(\/..\/scp:\/people.apache.org\/www)?\/hc.apache.org\//
+ if (m1.find()) {
+ return new URI(m1.replaceFirst('../../'))
+ }
+ }
+ return href
+ })
+ }
+ }
+
+}
\ No newline at end of file
Added: httpcomponents/project-release-tools/trunk/buildSrc/build.gradle
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/build.gradle?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/build.gradle (added)
+++ httpcomponents/project-release-tools/trunk/buildSrc/build.gradle Tue Jul 2 09:44:17 2013
@@ -0,0 +1,39 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+apply plugin: 'groovy'
+
+repositories {
+ mavenCentral()
+}
+
+dependencies {
+ compile gradleApi()
+ compile localGroovy()
+ compile group: 'org.ccil.cowan.tagsoup', name: 'tagsoup', version: '1.2.1'
+ compile group: 'org.tmatesoft.svnkit', name: 'svnkit', version: '1.7.8'
+}
Added: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/HCProject.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/HCProject.groovy?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/HCProject.groovy (added)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/HCProject.groovy Tue Jul 2 09:44:17 2013
@@ -0,0 +1,32 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+class HCProject {
+ Pom pom
+ File localDir
+ URI repo
+}
Added: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Html.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Html.groovy?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Html.groovy (added)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Html.groovy Tue Jul 2 09:44:17 2013
@@ -0,0 +1,92 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+import org.ccil.cowan.tagsoup.AttributesImpl
+import org.ccil.cowan.tagsoup.Parser
+import org.ccil.cowan.tagsoup.XMLWriter
+import org.gradle.util.GFileUtils
+import org.xml.sax.Attributes
+import org.xml.sax.InputSource
+import org.xml.sax.SAXException
+
+class Html {
+
+ static void rewriteLinks(File file, String charset, Closure<URI> c) {
+ File tmp = File.createTempFile("grrrr", file.name)
+ try {
+ Writer writer = tmp.newWriter(charset)
+ try {
+ Reader reader = file.newReader(charset)
+ try {
+ rewriteLinks(reader, writer, c)
+ } finally {
+ reader.close()
+ }
+ } finally {
+ writer.close()
+ }
+ file.delete()
+ GFileUtils.moveFile(tmp, file)
+ } finally {
+ GFileUtils.deleteQuietly(tmp)
+ }
+ }
+
+ static void rewriteLinks(File file, Closure<URI> c) {
+ rewriteLinks(file, 'UTF-8', c)
+ }
+
+ static void rewriteLinks(Reader src, Writer dst, Closure<URI> c) {
+ Parser parser = new Parser()
+ parser.setContentHandler(new XMLWriter(dst) {
+
+ @Override
+ void startElement(
+ String uri,
+ String localName,
+ String qName,
+ Attributes atts) throws SAXException {
+ AttributesImpl newatts = null;
+ if (localName.equalsIgnoreCase('a')) {
+ int idx = atts.getIndex('href')
+ if (idx != -1) {
+ newatts = new AttributesImpl(atts)
+ try {
+ URI href = new URI(atts.getValue(idx))
+ href = c.call(href)
+ newatts.setValue(idx, href.toASCIIString())
+ } catch (URISyntaxException ignore) {
+ }
+ }
+ }
+ super.startElement(uri, localName, qName, newatts != null ? newatts :atts)
+ }
+ })
+ parser.parse(new InputSource(src))
+ }
+
+}
Added: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Mvn.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Mvn.groovy?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Mvn.groovy (added)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Mvn.groovy Tue Jul 2 09:44:17 2013
@@ -0,0 +1,61 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+import org.gradle.api.Project
+
+class Mvn {
+
+ final Project project
+ final File mvnHomeDir
+
+ Mvn(final Project project, File mvnHomeDir) {
+ this.project = project
+ this.mvnHomeDir = mvnHomeDir
+ }
+
+ void exec(File mvnProjectDir, String... params) {
+ project.javaexec {
+ classpath "${mvnHomeDir}/boot/plexus-classworlds-2.4.jar"
+ jvmArgs "-Dclassworlds.conf=${mvnHomeDir}/bin/m2.conf", "-Dmaven.home=${mvnHomeDir}"
+ main = "org.codehaus.plexus.classworlds.launcher.Launcher"
+ workingDir = mvnProjectDir
+ args params
+ }
+ }
+
+ Pom parsePom(File dir) {
+ File pomFile = new File(dir, 'pom.xml')
+ def pomModel = new XmlSlurper().parse(pomFile)
+ Pom result = new Pom()
+ result.groupId = pomModel.groupId
+ result.artifactId = pomModel.artifactId
+ result.version = pomModel.version
+ result.modules = pomModel.modules.module*.text()
+ return result
+ }
+
+}
Added: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Pom.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Pom.groovy?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Pom.groovy (added)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Pom.groovy Tue Jul 2 09:44:17 2013
@@ -0,0 +1,33 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+class Pom {
+ String groupId
+ String artifactId
+ String version
+ List<String> modules
+}
Added: httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy (added)
+++ httpcomponents/project-release-tools/trunk/buildSrc/src/main/groovy/Svn.groovy Tue Jul 2 09:44:17 2013
@@ -0,0 +1,90 @@
+/*
+ * ====================================================================
+ * 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.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ */
+
+import org.tmatesoft.svn.core.SVNException
+import org.tmatesoft.svn.core.SVNURL
+import org.tmatesoft.svn.core.wc.SVNWCUtil
+import org.tmatesoft.svn.core.wc2.ISvnObjectReceiver
+import org.tmatesoft.svn.core.wc2.SvnCheckout
+import org.tmatesoft.svn.core.wc2.SvnGetStatus
+import org.tmatesoft.svn.core.wc2.SvnOperationFactory
+import org.tmatesoft.svn.core.wc2.SvnStatus
+import org.tmatesoft.svn.core.wc2.SvnTarget
+import org.tmatesoft.svn.core.wc2.SvnUpdate
+
+class Svn {
+
+ static void checkout(URI src, File dst) {
+ SvnOperationFactory opfactory = new SvnOperationFactory()
+ opfactory.setAuthenticationManager(SVNWCUtil.createDefaultAuthenticationManager())
+ try {
+ SvnCheckout checkout = opfactory.createCheckout()
+ checkout.setSource(SvnTarget.fromURL(SVNURL.parseURIEncoded(src.toASCIIString())))
+ checkout.setSingleTarget(SvnTarget.fromFile(dst))
+ checkout.run()
+ } finally {
+ opfactory.dispose()
+ }
+ }
+
+ static void update(File dir) {
+ SvnOperationFactory opfactory = new SvnOperationFactory()
+ opfactory.setAuthenticationManager(SVNWCUtil.createDefaultAuthenticationManager())
+ try {
+ SvnUpdate update = opfactory.createUpdate()
+ update.setSingleTarget(SvnTarget.fromFile(dir))
+ update.run()
+ } finally {
+ opfactory.dispose()
+ }
+ }
+
+ static void status(File dir) {
+ SvnOperationFactory opfactory = new SvnOperationFactory()
+ opfactory.setAuthenticationManager(SVNWCUtil.createDefaultAuthenticationManager())
+ try {
+ SvnGetStatus status = opfactory.createGetStatus()
+ status.setSingleTarget(SvnTarget.fromFile(dir))
+ status.setReceiver(new ISvnObjectReceiver<SvnStatus>() {
+
+ @Override
+ void receive(SvnTarget target, SvnStatus object) throws SVNException {
+ if (target.file && target.getFile().getPath().startsWith(dir.getPath())) {
+ File rel = new File(target.getFile().getPath() - dir.getPath())
+ println "${object.nodeStatus} ${rel}"
+ } else {
+ println "${object.nodeStatus} ${target.pathOrUrlDecodedString}"
+ }
+ }
+
+ })
+ status.run()
+ } finally {
+ opfactory.dispose()
+ }
+ }
+}
Added: httpcomponents/project-release-tools/trunk/gradle.properties.template
URL: http://svn.apache.org/viewvc/httpcomponents/project-release-tools/trunk/gradle.properties.template?rev=1498859&view=auto
==============================================================================
--- httpcomponents/project-release-tools/trunk/gradle.properties.template (added)
+++ httpcomponents/project-release-tools/trunk/gradle.properties.template Tue Jul 2 09:44:17 2013
@@ -0,0 +1,9 @@
+MAVEN_HOME=/opt/maven
+
+HC_SITE_STAGING=http://svn.apache.org/repos/asf/httpcomponents/site/
+
+HC_PROJECT_SITE=http://svn.apache.org/repos/asf/httpcomponents/project-website/trunk/
+HC_PUBLISHED_RELEASES=\
+ http://svn.apache.org/repos/asf/httpcomponents/httpcore/trunk/ \
+ http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/ \
+ http://svn.apache.org/repos/asf/httpcomponents/httpasyncclient/trunk/