Title: [40968] trunk/hudson/plugins/view-job-filters: fix cvs disabled bug

Diff

Modified: trunk/hudson/plugins/view-job-filters/pom.xml (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/pom.xml	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/pom.xml	2013-08-13 23:32:18 UTC (rev 40968)
@@ -36,7 +36,7 @@
 		<dependency>
 			<groupId>org.jenkins-ci.plugins</groupId>
 			<artifactId>cvs</artifactId>
-			<version>1.4</version>
+			<version>2.9</version>
 			<scope>compile</scope>
 			<optional>true</optional>
 		</dependency>

Added: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/AbstractScmValuesProvider.java (0 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/AbstractScmValuesProvider.java	                        (rev 0)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/AbstractScmValuesProvider.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -0,0 +1,24 @@
+package hudson.views;
+
+public abstract class AbstractScmValuesProvider implements ScmValuesProvider {
+
+	private boolean checked = false;
+	private boolean loaded;
+	
+	@Override
+	public boolean checkLoaded() {
+		if (!checked) {
+			try {
+				getPluginTesterClass();
+				loaded = true;
+			} catch (Throwable t) {
+				loaded = false;
+			}
+			checked = true;
+			return loaded;
+		} else {
+			return loaded;
+		}
+	}
+
+}
Property changes on: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/AbstractScmValuesProvider.java
___________________________________________________________________

Added: svn:mime-type

Modified: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/CvsValuesProvider.java (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/CvsValuesProvider.java	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/CvsValuesProvider.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -1,12 +1,15 @@
 package hudson.views;
 
 import hudson.scm.CVSSCM;
+import hudson.scm.CvsModule;
+import hudson.scm.CvsRepository;
+import hudson.scm.CvsRepositoryItem;
 import hudson.scm.SCM;
 
 import java.util.ArrayList;
 import java.util.List;
 
-public class CvsValuesProvider implements ScmValuesProvider {
+public class CvsValuesProvider extends AbstractScmValuesProvider {
 
 	@SuppressWarnings("unchecked")
 	public Class getPluginTesterClass() {
@@ -19,9 +22,27 @@
 		}
 		CVSSCM cvs = (CVSSCM) scm;
 		List<String> values = new ArrayList<String>();
-		values.add(cvs.getCvsRoot());
-		values.add(cvs.getAllModules());
-		values.add(cvs.getBranch());
+		CvsRepository[] repos = cvs.getRepositories();
+		if (repos != null) {
+			for (CvsRepository repo: repos) {
+				values.add(repo.getCvsRoot());
+				CvsRepositoryItem[] items = repo.getRepositoryItems();
+				if (items != null) {
+					for (CvsRepositoryItem item: items) {
+						values.add(item.getLocation().getLocationName());
+						CvsModule[] modules = item.getModules();
+						if (modules != null) {
+							for (CvsModule module: modules) {
+								values.add(module.getCheckoutName());
+								values.add(module.getLocalName());
+								values.add(module.getProjectsetFileName());
+								values.add(module.getRemoteName());
+							}
+						}
+					}
+				}
+			}
+		}
 		return values;
 	}
 

Modified: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/GitValuesProvider.java (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/GitValuesProvider.java	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/GitValuesProvider.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -7,6 +7,11 @@
 
 public class GitValuesProvider extends AbstractGitValuesProvider {
 
+	@Override
+	public boolean checkLoaded() {
+		return true;
+	}
+	
 	@SuppressWarnings("unchecked")
 	public Class getPluginTesterClass() {
 		return URIish.class;

Modified: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/ScmFilterHelper.java (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/ScmFilterHelper.java	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/ScmFilterHelper.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -16,9 +16,11 @@
 			return values;
 		}
 		for (ScmValuesProvider matcher: matchers) {
-			List<String> some = matcher.getValues(scm);
-			if (some != null) {
-				values.addAll(some);
+			if (matcher.checkLoaded()) {
+				List<String> some = matcher.getValues(scm);
+				if (some != null) {
+					values.addAll(some);
+				}
 			}
 		}
 		return values;

Modified: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/ScmValuesProvider.java (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/ScmValuesProvider.java	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/ScmValuesProvider.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -8,5 +8,11 @@
 public interface ScmValuesProvider extends PluginHelperTestable {
 
 	List<String> getValues(SCM scm);
+	
+	/**
+	 * svn and cvs can be disabled, although they are part of the core.  For this reason,
+	 * we want to be able to check for this condition.
+	 */
+	boolean checkLoaded();
 
 }

Modified: trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/SvnValuesProvider.java (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/SvnValuesProvider.java	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/src/main/java/hudson/views/SvnValuesProvider.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -7,7 +7,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class SvnValuesProvider implements ScmValuesProvider {
+public class SvnValuesProvider extends AbstractScmValuesProvider {
 
 	@SuppressWarnings("unchecked")
 	public Class getPluginTesterClass() {

Modified: trunk/hudson/plugins/view-job-filters/src/test/java/hudson/views/RegExJobFilterTest.java (40967 => 40968)


--- trunk/hudson/plugins/view-job-filters/src/test/java/hudson/views/RegExJobFilterTest.java	2013-08-11 01:43:27 UTC (rev 40967)
+++ trunk/hudson/plugins/view-job-filters/src/test/java/hudson/views/RegExJobFilterTest.java	2013-08-13 23:32:18 UTC (rev 40968)
@@ -20,6 +20,7 @@
 import hudson.model.queue.CauseOfBlockage;
 import hudson.model.queue.SubTask;
 import hudson.scm.CVSSCM;
+import hudson.scm.CvsRepository;
 import hudson.scm.PollingResult;
 import hudson.scm.SCM;
 import hudson.security.Permission;
@@ -122,7 +123,7 @@
 	}
 	private void doTestScmRegEx(String root, String modules, String branch, boolean expectMatch) throws IOException {
 		RegExJobFilter filter = new RegExJobFilter(".*my-office.*", IncludeExcludeType.includeMatched.toString(), RegExJobFilter.ValueType.SCM.toString());
-		CVSSCM scm = new CVSSCM(root, modules, branch, null, false, false, false, null);
+		CVSSCM scm = new CVSSCM(root, modules, branch, "cvsRsh", false, false, false, false, "excludedRegions", null);
 		TestItem item = new TestItem("name", scm);
 		boolean matched = filter.matches(item);
 		assertEquals(expectMatch, matched);

--
You received this message because you are subscribed to the Google Groups "Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to