package hudson.plugins.codeplex.browsers;
import java.io.IOException;
import java.net.URL;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.plugins.codeplex.CodePlexProjectProperty;
import hudson.plugins.tfs.browsers.TeamFoundationServerRepositoryBrowser;
import hudson.plugins.tfs.model.ChangeSet;
import hudson.plugins.tfs.model.ChangeSet.Item;
import hudson.scm.RepositoryBrowser;
import hudson.scm.SubversionChangeLogSet.LogEntry;
import org.kohsuke.stapler.DataBoundConstructor;
/**
* TFS Browser for Codeplex projects.
*
* @author Erik Ramfelt
*/
public class CodePlexTfsBrowser extends TeamFoundationServerRepositoryBrowser {
private static final long serialVersionUID = 1L;
@DataBoundConstructor
public CodePlexTfsBrowser() {
}
CodePlexProjectProperty getProperty(ChangeSet entry) {
return entry.getParent().build.getProject().getProperty(CodePlexProjectProperty.class);
}
CodePlexProjectProperty getProperty(LogEntry entry) {
return entry.getParent().build.getProject().getProperty(CodePlexProjectProperty.class);
}
@Override
public URL getChangeSetLink(ChangeSet changeSet) throws IOException {
CodePlexProjectProperty property = changeSet.getParent().build.getProject().getProperty(CodePlexProjectProperty.class);
if (property != null) {
return new URL(property.getProjectUrlString() + "SourceControl/DirectoryView.aspx?SourcePath=&changeSetId=" + changeSet.getVersion());
} else {
return null;
}
}
@Override
public URL getDiffLink(Item item) throws IOException {
return null;
}
@Override
public URL getFileLink(Item item) throws IOException {
return null;
}
@Extension
public static class DescriptorImpl extends Descriptor<RepositoryBrowser<?>> {
public DescriptorImpl() {
super(CodePlexTfsBrowser.class);
}
@Override
public String getDisplayName() {
return "CodePlex";
}
}
}