diff --git a/src/main/java/jenkins/scm/impl/subversion/SubversionSCMSource.java b/src/main/java/jenkins/scm/impl/subversion/SubversionSCMSource.java index d460ae1e2..f14b1fc72 100644 --- a/src/main/java/jenkins/scm/impl/subversion/SubversionSCMSource.java +++ b/src/main/java/jenkins/scm/impl/subversion/SubversionSCMSource.java @@ -45,7 +45,9 @@ import hudson.scm.FilterSVNAuthenticationManager; import hudson.scm.SubversionRepositoryStatus; import hudson.scm.SubversionSCM; +import hudson.scm.SubversionSCM.AdditionalCredentials; import hudson.scm.subversion.SvnHelper; +import hudson.scm.subversion.UpdateUpdater; import hudson.security.ACL; import hudson.util.EditDistance; import hudson.util.FormValidation; @@ -68,6 +70,8 @@ import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; +import org.kohsuke.accmod.Restricted; +import org.kohsuke.accmod.restrictions.NoExternalUse; import org.tmatesoft.svn.core.SVNDirEntry; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNNodeKind; @@ -121,6 +125,8 @@ public class SubversionSCMSource extends SCMSource { private final String remoteBase; private String credentialsId = ""; // TODO null would be a better default, but need to check null safety on usages + + private List additionalCredentials; private String includes = DescriptorImpl.DEFAULT_INCLUDES; @@ -159,6 +165,18 @@ public String getCredentialsId() { public void setCredentialsId(String credentialsId) { this.credentialsId = credentialsId; } + @DataBoundSetter + public void setAdditionalCredentials(List additionalCredentials) { + this.additionalCredentials = additionalCredentials; + } + //without getter jelly will crash + @Restricted(NoExternalUse.class) + public List getAdditionalCredentials() { + if(additionalCredentials==null) { + return Collections.emptyList(); + } + return Collections.unmodifiableList(additionalCredentials); + } /** * Gets the comma separated list of exclusions. @@ -689,7 +707,7 @@ public SubversionSCM build(@NonNull SCMHead head, // name contains an @ so need to ensure there is an @ at the end of the name remote.append('@'); } - return new SubversionSCM(remote.toString(), credentialsId, "."); + return new SubversionSCM(SubversionSCM.ModuleLocation.parse(new String[]{remote.toString()}, new String[]{credentialsId}, new String[]{"."}, null,null), new UpdateUpdater(), null, null, null, null, null, null, false, false, additionalCredentials); } /** diff --git a/src/main/resources/jenkins/scm/impl/subversion/SubversionSCMSource/config-detail.jelly b/src/main/resources/jenkins/scm/impl/subversion/SubversionSCMSource/config-detail.jelly index d3938aa53..18df072c0 100644 --- a/src/main/resources/jenkins/scm/impl/subversion/SubversionSCMSource/config-detail.jelly +++ b/src/main/resources/jenkins/scm/impl/subversion/SubversionSCMSource/config-detail.jelly @@ -36,4 +36,7 @@ + + + \ No newline at end of file