Bug 550250 - Remove ManifestBuilder and SchemaBuilder from API analysis

Change-Id: Ia6a917ba2b0a9a73c0c2e72fcea1a55fef32a4f7
Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnalysisApplication.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnalysisApplication.java
index c1566fd..d1744fb 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnalysisApplication.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiAnalysisApplication.java
@@ -18,9 +18,11 @@
 import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import org.eclipse.core.resources.ICommand;
 import org.eclipse.core.resources.IMarker;
@@ -308,9 +310,23 @@
 			projectDescription.setBuildSpec(builders);
 			res.setDescription(projectDescription, 0, new NullProgressMonitor());
 		}
+		ICommand[] buildSpec = projectDescription.getBuildSpec();
+		List<ICommand> newBuilders = removeManifestAndSchemaBuilders(buildSpec);
+		projectDescription.setBuildSpec(
+				newBuilders.toArray(new ICommand[newBuilders.size()]));
+		res.setDescription(projectDescription, new NullProgressMonitor());
 		return res;
 	}
 
+	private static List<ICommand> removeManifestAndSchemaBuilders(ICommand[] buildSpec) {
+		// remove manifest and schema builders
+		return Arrays.stream(buildSpec)
+				.filter(x -> !("org.eclipse.pde.ManifestBuilder".equals(x.getBuilderName()) //$NON-NLS-1$
+				|| "org.eclipse.pde.SchemaBuilder".equals(x.getBuilderName())) //$NON-NLS-1$
+
+				).collect(Collectors.toList());
+	}
+
 	@Override
 	public void stop() {
 		// Nothing to do