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 jenkinsci-commits+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to