diff --git a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/junit4/RealWorkspaceContext.java b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/junit4/RealWorkspaceContext.java
index 290db12..4ffbc68 100644
--- a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/junit4/RealWorkspaceContext.java
+++ b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/junit4/RealWorkspaceContext.java
@@ -36,6 +36,7 @@
 import org.eclipse.core.internal.resources.Workspace;
 import org.eclipse.core.internal.resources.WorkspaceDescription;
 import org.eclipse.core.internal.watson.ElementTree;
+import org.eclipse.core.resources.IBuildConfiguration;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFilterMatcherDescriptor;
 import org.eclipse.core.resources.IMarker;
@@ -498,7 +499,7 @@
         }
 
         @Override
-        public IProject[] getBuildOrder()
+        public IBuildConfiguration[] getBuildOrder()
         {
             return _ws.getBuildOrder();
         }
diff --git a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockProject.java b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockProject.java
index 2258f88..66371fa 100644
--- a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockProject.java
+++ b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockProject.java
@@ -5,6 +5,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.eclipse.core.resources.IBuildConfiguration;
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
@@ -42,6 +43,12 @@
         throw new UnsupportedOperationException();
     }
 
+	public void build(IBuildConfiguration config, int kind,
+			IProgressMonitor monitor) throws CoreException
+	{
+        throw new UnsupportedOperationException();
+	}
+
     public void close(IProgressMonitor monitor) throws CoreException
     {
         throw new UnsupportedOperationException();
@@ -176,4 +183,31 @@
     {
         return getWorkspace().getRoot();
     }
+
+	public IBuildConfiguration getActiveBuildConfig() throws CoreException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IBuildConfiguration getBuildConfig(String configName)
+			throws CoreException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IBuildConfiguration[] getBuildConfigs() throws CoreException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public IBuildConfiguration[] getReferencedBuildConfigs(String configName,
+			boolean includeMissing) throws CoreException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public boolean hasBuildConfig(String configName) throws CoreException {
+		// TODO Auto-generated method stub
+		return false;
+	}
 }
diff --git a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockWorkspace.java b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockWorkspace.java
index da850c9..434a8d1 100644
--- a/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockWorkspace.java
+++ b/jsf/tests/org.eclipse.jst.jsf.test.util/src/org/eclipse/jst/jsf/test/util/mock/MockWorkspace.java
@@ -7,6 +7,7 @@
 import java.util.Map;
 import java.util.concurrent.CopyOnWriteArrayList;
 
+import org.eclipse.core.resources.IBuildConfiguration;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFilterMatcherDescriptor;
 import org.eclipse.core.resources.IMarker;
@@ -97,6 +98,19 @@
 
     }
 
+	public void build(IBuildConfiguration[] buildConfigs, int kind,
+			boolean buildReferences, IProgressMonitor monitor)
+			throws CoreException
+	{
+        throw new UnsupportedOperationException();
+	}
+
+	public IBuildConfiguration newBuildConfig(String projectName,
+			String configName)
+	{
+		return null;
+	}
+
     public void checkpoint(final boolean build)
     {
         throw new UnsupportedOperationException();
