|
@@ -28,9 +28,11 @@ |
|
|
import com.cloudbees.hudson.plugins.folder.AbstractFolderDescriptor; |
|
|
import com.cloudbees.hudson.plugins.folder.computed.ChildObserver; |
|
|
import com.cloudbees.hudson.plugins.folder.computed.ComputedFolder; |
|
|
import com.cloudbees.hudson.plugins.folder.computed.FolderComputation; |
|
|
import com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger; |
|
|
import hudson.Extension; |
|
|
import hudson.ExtensionList; |
|
|
import hudson.Util; |
|
|
import hudson.model.Descriptor; |
|
|
import hudson.model.Item; |
|
|
import hudson.model.ItemGroup; |
|
@@ -46,15 +48,19 @@ |
|
|
import java.util.List; |
|
|
import java.util.Map; |
|
|
import java.util.Set; |
|
|
import java.util.TreeSet; |
|
|
import java.util.WeakHashMap; |
|
|
import java.util.concurrent.Callable; |
|
|
import javax.annotation.CheckForNull; |
|
|
import javax.annotation.Nonnull; |
|
|
import javax.servlet.ServletException; |
|
|
import jenkins.scm.api.SCMNavigator; |
|
|
import jenkins.scm.api.SCMNavigatorDescriptor; |
|
|
import jenkins.scm.api.SCMSource; |
|
|
import jenkins.scm.api.SCMSourceCriteria; |
|
|
import jenkins.scm.api.SCMSourceObserver; |
|
|
import jenkins.scm.api.SCMSourceOwner; |
|
|
import org.apache.commons.lang.StringUtils; |
|
|
import org.kohsuke.accmod.Restricted; |
|
|
import org.kohsuke.accmod.restrictions.NoExternalUse; |
|
|
import org.kohsuke.stapler.StaplerRequest; |
|
@@ -115,6 +121,13 @@ protected void submit(StaplerRequest req, StaplerResponse rsp) throws IOExceptio |
|
|
projectFactories.rebuildHetero(req, req.getSubmittedForm(), ExtensionList.lookup(MultiBranchProjectFactoryDescriptor.class), "projectFactories"); |
|
|
} |
|
|
|
|
|
@Nonnull |
|
|
@Override |
|
|
protected FolderComputation<MultiBranchProject<?, ?>> createComputation( |
|
|
@CheckForNull FolderComputation<MultiBranchProject<?, ?>> previous) { |
|
|
return new OrganizationScan(OrganizationFolder.this, previous); |
|
|
} |
|
|
|
|
|
@Override |
|
|
protected void computeChildren(final ChildObserver<MultiBranchProject<?,?>> observer, final TaskListener listener) throws IOException, InterruptedException { |
|
|
for (SCMNavigator navigator : navigators) { |
|
@@ -210,6 +223,21 @@ public void addAttribute(String key, Object value) throws IllegalArgumentExcepti |
|
|
} |
|
|
} |
|
|
|
|
|
/** |
|
|
* {@inheritDoc} |
|
|
*/ |
|
|
@Override |
|
|
public String getPronoun() { |
|
|
Set<String> result = new TreeSet<>(); |
|
|
for (SCMNavigator navigator: navigators) { |
|
|
String pronoun = Util.fixEmptyAndTrim(navigator.getPronoun()); |
|
|
if (pronoun != null) { |
|
|
result.add(pronoun); |
|
|
} |
|
|
} |
|
|
return result.isEmpty() ? super.getPronoun() : StringUtils.join(result, " / "); |
|
|
} |
|
|
|
|
|
@Override |
|
|
public List<SCMSource> getSCMSources() { |
|
|
// Probably unused unless onSCMSourceUpdated implemented, but just in case: |
|
@@ -296,4 +324,18 @@ public TopLevelItem newInstance(ItemGroup parent, String name) { |
|
|
|
|
|
} |
|
|
|
|
|
public static class OrganizationScan extends FolderComputation<MultiBranchProject<?, ?>> { |
|
|
public OrganizationScan(OrganizationFolder folder, FolderComputation<MultiBranchProject<?, ?>> previous) { |
|
|
super(folder, previous); |
|
|
} |
|
|
|
|
|
/** |
|
|
* {@inheritDoc} |
|
|
*/ |
|
|
@Override |
|
|
public String getDisplayName() { |
|
|
return Messages.OrganizationFolder_OrganizationScan_displayName(getParent().getPronoun()); |
|
|
} |
|
|
|
|
|
} |
|
|
} |
0 comments on commit
637eece