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

Reply via email to