Skip to content

Commit

Permalink
[FIXED JENKINS-20522] Proper usage of TopLevelItemDescriptor.
Browse files Browse the repository at this point in the history
  • Loading branch information
jglick committed Dec 5, 2014
1 parent 0c51c06 commit fb754c2
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 22 deletions.
6 changes: 3 additions & 3 deletions pom.xml
Expand Up @@ -2,9 +2,9 @@
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.jvnet.hudson.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.395</version>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>plugin</artifactId>
<version>1.424</version>
</parent>

<artifactId>view-job-filters</artifactId>
Expand Down
22 changes: 7 additions & 15 deletions src/main/java/hudson/views/JobTypeFilter.java
@@ -1,13 +1,13 @@
package hudson.views;

import hudson.DescriptorExtensionList;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.DescriptorVisibilityFilter;
import hudson.model.ItemGroup;
import hudson.model.Items;
import hudson.model.TopLevelItem;
import hudson.model.TopLevelItemDescriptor;

import java.util.ArrayList;
import java.util.List;

import org.kohsuke.stapler.DataBoundConstructor;
Expand All @@ -29,20 +29,17 @@ public JobTypeFilter(String jobType, String includeExcludeTypeString) {

public TopLevelItemDescriptor getJobType() {
for (TopLevelItemDescriptor type: Items.all()) {
if (matches(type)) {
if (type.getId().equals(jobType)) {
return type;
}
}
return null;
}

private boolean matches(TopLevelItemDescriptor type) {
return type.clazz.getName().equals(jobType);
}

@Override
protected boolean matches(TopLevelItem item) {
return matches(item.getDescriptor());
TopLevelItemDescriptor d = getJobType();
return d != null && d.testInstance(item);
}

@Extension
Expand All @@ -51,13 +48,8 @@ public static class DescriptorImpl extends Descriptor<ViewJobFilter> {
public String getDisplayName() {
return "Job Type Filter";
}
public List<TopLevelItemDescriptor> getJobTypes() {
List<TopLevelItemDescriptor> types = new ArrayList<TopLevelItemDescriptor>();
DescriptorExtensionList<TopLevelItem, TopLevelItemDescriptor> all = Items.all();
for (TopLevelItemDescriptor one: all) {
types.add(one);
}
return types;
public List<TopLevelItemDescriptor> getJobTypes(ItemGroup<?> context) {
return DescriptorVisibilityFilter.apply(context, Items.all());
}
}
}
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/hudson/views/MavenExtraStepsValuesHelper.java
Expand Up @@ -21,8 +21,7 @@ public List<String> getValues(TopLevelItem item) {
if (item instanceof MavenModuleSet) {
MavenModuleSet set = (MavenModuleSet) item;

List<BuildWrapper> wrappers = set.getBuildWrappersList().toList();
for (BuildWrapper wrapper : wrappers) {
for (BuildWrapper wrapper : set.getBuildWrappers()) {
if (wrapper instanceof M2ExtraStepsWrapper) {
M2ExtraStepsWrapper mwrap = (M2ExtraStepsWrapper) wrapper;
MavenValuesHelper.addValues(values, mwrap
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/hudson/views/JobTypeFilter/config.jelly
Expand Up @@ -3,8 +3,8 @@
xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
<f:entry title="${%Job Type}" field="jobType">
<select name="jobType" class="setting-input">
<j:forEach var="type" items="${descriptor.getJobTypes()}">
<f:option value="${type.clazz.name}" selected="${instance.jobType == type}">${type.displayName}</f:option>
<j:forEach var="type" items="${descriptor.getJobTypes(it.ownerItemGroup)}">
<f:option value="${type.id}" selected="${instance.jobType == type}">${type.displayName}</f:option>
</j:forEach>
</select>
</f:entry>
Expand Down

0 comments on commit fb754c2

Please sign in to comment.