Relax scheduling rule for DSBuilder

Adapt DSBuilder to use the same relaxed scheduling rule as all other PDE
builders use now.

Bug: 540611
Change-Id: I870e196a3ed0b900a0d2aac1969ded3a42e30601
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
diff --git a/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/builders/DSBuilder.java b/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/builders/DSBuilder.java
index 5294e0e..2d69d1c 100644
--- a/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/builders/DSBuilder.java
+++ b/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/builders/DSBuilder.java
@@ -16,6 +16,7 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.ds.core.builders;
 
+import java.util.Arrays;
 import java.util.Map;
 
 import org.eclipse.core.resources.IFile;
@@ -29,7 +30,10 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.MultiRule;
 import org.eclipse.osgi.util.NLS;
+import org.eclipse.pde.internal.core.builders.PDEBuilderHelper;
 import org.eclipse.pde.internal.ds.core.Activator;
 import org.eclipse.pde.internal.ds.core.Messages;
 
@@ -156,4 +160,10 @@
 		monitor.done();
 	}
 
+	@Override
+	public ISchedulingRule getRule(int kind, Map<String, String> args) {
+		return new MultiRule(Arrays.stream(getProject().getWorkspace().getRoot().getProjects())
+				.filter(PDEBuilderHelper::isPDEProject).toArray(ISchedulingRule[]::new));
+	}
+
 }