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/