Title: [40595] trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views: up/downstream for maven jobs too
- Revision
- 40595
- Author
- jacob_robertson
- Date
- 2012-05-23 10:52:23 -0400 (Wed, 23 May 2012)
Log Message
up/downstream for maven jobs too
Modified Paths
Added Paths
Diff
Modified: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamJobsFilter.java (40594 => 40595)
--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamJobsFilter.java 2012-05-23 11:54:02 UTC (rev 40594)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamJobsFilter.java 2012-05-23 14:52:23 UTC (rev 40595)
@@ -10,6 +10,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.logging.Logger;
import org.kohsuke.stapler.DataBoundConstructor;
@@ -20,6 +21,10 @@
private boolean recursive;
private boolean excludeOriginals;
+ private static final transient Logger log = Logger.getLogger("updown");
+
+ private static final transient UpstreamDownstreamMavenHelper mavenHelper = buildMavenHelper();
+
@DataBoundConstructor
public UpstreamDownstreamJobsFilter(boolean includeDownstream, boolean includeUpstream,
boolean recursive, boolean excludeOriginals) {
@@ -90,14 +95,17 @@
@SuppressWarnings("unchecked")
private boolean isFirstUpstreamFromSecond(TopLevelItem first, TopLevelItem second) {
+ boolean isUpstream = false;
if (second instanceof AbstractProject) {
AbstractProject secondProject = (AbstractProject) second;
List<AbstractProject> upstream = secondProject.getBuildTriggerUpstreamProjects();
- return upstream.contains(first);
+ isUpstream = upstream.contains(first);
+ }
+ if (!isUpstream && mavenHelper != null) {
+ isUpstream = mavenHelper.isFirstUpstreamFromSecond(first, second);
}
- return false;
+ return isUpstream;
}
-
@Extension
public static class DescriptorImpl extends Descriptor<ViewJobFilter> {
@@ -127,5 +135,17 @@
public boolean isExcludeOriginals() {
return excludeOriginals;
}
+ private static UpstreamDownstreamMavenHelper buildMavenHelper() {
+ log.warning("buildMavenHelper");
+ try {
+ UpstreamDownstreamMavenHelper helper = PluginHelperUtils.validateAndThrow(new UpstreamDownstreamMavenHelper());
+ log.warning("buildMavenHelper." + helper);
+ return helper;
+ } catch (Throwable t) {
+ log.warning("buildMavenHelper.null");
+ // plugin is not installed
+ return null;
+ }
+ }
}
Added: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamMavenHelper.java (0 => 40595)
--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamMavenHelper.java (rev 0)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamMavenHelper.java 2012-05-23 14:52:23 UTC (rev 40595)
@@ -0,0 +1,32 @@
+package hudson.views;
+
+import java.util.List;
+import java.util.logging.Logger;
+
+import hudson.maven.MavenModuleSet;
+import hudson.model.AbstractProject;
+import hudson.model.TopLevelItem;
+import hudson.views.PluginHelperUtils.PluginHelperTestable;
+
+public class UpstreamDownstreamMavenHelper implements PluginHelperTestable {
+
+ private static final transient Logger log = Logger.getLogger("updownmaven");
+
+ @SuppressWarnings("unchecked")
+ public boolean isFirstUpstreamFromSecond(TopLevelItem first, TopLevelItem second) {
+ log.warning("buildMavenHelper.isFirstUpstreamFromSecond." + first.getName() + "." + second.getName());
+ if (first instanceof MavenModuleSet && second instanceof MavenModuleSet) {
+ MavenModuleSet m2 = (MavenModuleSet) second;
+ List<AbstractProject> upstream = m2.getUpstreamProjects();
+ return upstream.contains(first);
+ }
+ return false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public Class getPluginTesterClass() {
+ return MavenModuleSet.class;
+ }
+
+}
Property changes on: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/UpstreamDownstreamMavenHelper.java
___________________________________________________________________
Added: svn:mime-type