diff --git a/tests/org.eclipse.jst.server.tomcat.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.server.tomcat.core.tests/META-INF/MANIFEST.MF
index d054a81..3bf1792 100644
--- a/tests/org.eclipse.jst.server.tomcat.core.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.jst.server.tomcat.core.tests/META-INF/MANIFEST.MF
@@ -18,11 +18,13 @@
  org.eclipse.jst.j2ee.web,
  org.eclipse.wst.common.frameworks,
  org.eclipse.wst.common.project.facet.core,
+ org.eclipse.jst.common.project.facet.core,
  org.eclipse.jst.j2ee,
  org.eclipse.jst.j2ee.ui,
  org.eclipse.jdt.launching,
  org.eclipse.core.resources,
  org.eclipse.jst.server.core,
- org.eclipse.debug.ui
+ org.eclipse.debug.ui,
+ org.eclipse.wst.web
 Eclipse-LazyStart: true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/org.eclipse.jst.server.tomcat.core.tests/src/org/eclipse/jst/server/tomcat/core/tests/module/ModuleHelper.java b/tests/org.eclipse.jst.server.tomcat.core.tests/src/org/eclipse/jst/server/tomcat/core/tests/module/ModuleHelper.java
index 4a0695c..53efb66 100644
--- a/tests/org.eclipse.jst.server.tomcat.core.tests/src/org/eclipse/jst/server/tomcat/core/tests/module/ModuleHelper.java
+++ b/tests/org.eclipse.jst.server.tomcat.core.tests/src/org/eclipse/jst/server/tomcat/core/tests/module/ModuleHelper.java
@@ -20,9 +20,18 @@
 import java.net.URL;
 
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.preferences.DefaultScope;
 import org.eclipse.jst.j2ee.internal.web.archive.operations.WebFacetProjectCreationDataModelProvider;
 import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
 import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetProjectCreationDataModelProperties;
@@ -31,11 +40,17 @@
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties.FacetDataModelMap;
 import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.project.facet.core.internal.FacetCorePlugin;
+import org.eclipse.wst.project.facet.IProductConstants;
+import org.eclipse.wst.project.facet.ProductManager;
 import org.eclipse.wst.server.core.IModule;
 import org.eclipse.wst.server.core.ServerUtil;
 import org.eclipse.wst.server.core.internal.IMemento;
 import org.eclipse.wst.server.core.internal.XMLMemento;
-import org.eclipse.wst.server.core.model.*;
+import org.eclipse.wst.server.core.model.IModuleFile;
+import org.eclipse.wst.server.core.model.IModuleFolder;
+import org.eclipse.wst.server.core.model.IModuleResource;
+import org.eclipse.wst.server.core.model.IModuleResourceDelta;
 import org.eclipse.wst.server.core.util.ProjectModule;
 import org.osgi.framework.Bundle;
 
@@ -61,7 +76,7 @@
 
 	public static void createWebContent(String name, int i) throws CoreException  {
 		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-		IFile file = project.getFile(new Path("WebContent").append("test" + i + ".html"));
+		IFile file = project.getFile(new Path(ProductManager.getProperty(IProductConstants.WEB_CONTENT_FOLDER)).append("test" + i + ".html"));
 		String content = "Hello!";
 		ByteArrayInputStream in = new ByteArrayInputStream(content.getBytes());
 		file.create(in, true, null);
@@ -69,7 +84,7 @@
 
 	public static void createXMLContent(String name, int i) throws CoreException {
 		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-		IFile file = project.getFile(new Path("WebContent").append("test" + i + ".xml"));
+		IFile file = project.getFile(new Path(ProductManager.getProperty(IProductConstants.WEB_CONTENT_FOLDER)).append("test" + i + ".xml"));
 		String content = "<book name='test'><isbn>299827698</isbn></book>";
 		ByteArrayInputStream in = new ByteArrayInputStream(content.getBytes());
 		file.create(in, true, null);
@@ -77,7 +92,7 @@
 
 	public static void createJavaContent(String name, int i) throws CoreException  {
 		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-		IFile file = project.getFile(new Path("src").append("Test" + i + ".java"));
+		IFile file = project.getFile(new Path(org.eclipse.jst.common.project.facet.core.internal.FacetCorePlugin.DEFAULT_SOURCE_FOLDER).append("Test" + i + ".java"));
 		String content = "public class Test" + i + " { }";
 		ByteArrayInputStream in = new ByteArrayInputStream(content.getBytes());
 		file.create(in, true, null);
