Index: pom.xml =================================================================== --- pom.xml (revision 37309) +++ pom.xml (working copy) @@ -41,5 +41,11 @@ jdk15 test + + org.jvnet.hudson.plugins + template-project + 1.2 + true + Index: src/main/java/hudson/plugins/svn_tag/SvnTagPlugin.java =================================================================== --- src/main/java/hudson/plugins/svn_tag/SvnTagPlugin.java (revision 37309) +++ src/main/java/hudson/plugins/svn_tag/SvnTagPlugin.java (working copy) @@ -3,8 +3,27 @@ import groovy.lang.Binding; import groovy.lang.GroovyShell; import hudson.Launcher; -import hudson.model.*; +import hudson.model.BuildListener; +import hudson.model.Result; +import hudson.model.AbstractBuild; +import hudson.model.AbstractProject; +import hudson.model.Hudson; +import hudson.plugins.templateproject.ProxySCM; +import hudson.scm.SCM; import hudson.scm.SubversionSCM; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintStream; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import org.apache.commons.lang.StringUtils; import org.codehaus.groovy.control.CompilerConfiguration; import org.tmatesoft.svn.core.SVNCommitInfo; @@ -20,14 +39,6 @@ import org.tmatesoft.svn.core.wc.SVNRevision; import org.tmatesoft.svn.core.wc.SVNWCUtil; -import java.io.*; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - /** * Consolidates the work common in Publisher and MavenReporter. @@ -74,12 +85,22 @@ Map env; - if (!(rootProject.getScm() instanceof SubversionSCM)) { - logger.println(Messages.NotSubversion(rootProject.getScm().toString())); + SCM projectSCM = rootProject.getScm(); + + // check for TemplateProject Configuration + if (Hudson.getInstance().getPlugin("template-project") != null) { + while (projectSCM instanceof ProxySCM) { + // allow nested proxy configuration + projectSCM = ProxySCM.class.cast(rootProject.getScm()).getProject().getScm(); + } + } + + if (!(projectSCM instanceof SubversionSCM)) { + logger.println(Messages.NotSubversion(projectSCM.toString())); return true; } - SubversionSCM scm = SubversionSCM.class.cast(rootProject.getScm()); + SubversionSCM scm = SubversionSCM.class.cast(projectSCM); try { env = abstractBuild.getEnvironment(buildListener); } catch (Exception e) {