329198: Support PDE/Equinox bundles in Eclipse IDE 

Fix incorrect location of web.xml created by PDE Bundle project wizard.

Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=329198
diff --git a/org.eclipse.virgo.ide.pde.core/src/org/eclipse/virgo/ide/pde/core/internal/cmd/SetupProjectOperation.java b/org.eclipse.virgo.ide.pde.core/src/org/eclipse/virgo/ide/pde/core/internal/cmd/SetupProjectOperation.java
index 49455e3..a763f74 100644
--- a/org.eclipse.virgo.ide.pde.core/src/org/eclipse/virgo/ide/pde/core/internal/cmd/SetupProjectOperation.java
+++ b/org.eclipse.virgo.ide.pde.core/src/org/eclipse/virgo/ide/pde/core/internal/cmd/SetupProjectOperation.java
@@ -7,6 +7,7 @@
 import java.io.InputStreamReader;
 import java.io.UnsupportedEncodingException;
 import java.text.MessageFormat;
+import java.util.ArrayList;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -45,6 +46,8 @@
 
     private static final String WEB_CONTENT_FOLDER = "WebContent"; //$NON-NLS-1$
 
+    private static final String WEB_INF_FOLDER = "WEB-INF"; //$NON-NLS-1$
+
     private static final String BIN_WEB_INF_CLASSES = "bin/WEB-INF/classes"; //$NON-NLS-1$
 
     private static final String SRC = "src"; //$NON-NLS-1$
@@ -114,7 +117,8 @@
         if (contextRoot != null && contextRoot.length() > 0) {
             IPath webContentPath = configureWABClasspath(project);
 
-            createWebXML(contextRoot, webContentPath);
+            IPath WebXMLPath = webContentPath.append(WEB_INF_FOLDER);
+            createWebXML(contextRoot, WebXMLPath);
             createIndexHTML(contextRoot, webContentPath);
             createBuildProperties();
 
@@ -156,8 +160,19 @@
 
     private void createFileFromTemplate(String contextRoot, IPath webContentPath, String fileNane, String charset) throws CoreException {
         IFolder webContentFolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(webContentPath);
-        if (!webContentFolder.exists()) {
-            webContentFolder.create(true, false, null);
+
+        java.util.List<IFolder> toBeCreated = new ArrayList<IFolder>();
+        IFolder tmp = webContentFolder;
+        while (!tmp.exists()) {
+            toBeCreated.add(0, tmp);
+            if (tmp.getParent() instanceof IFolder) {
+                tmp = (IFolder) tmp.getParent();
+            } else {
+                break;
+            }
+        }
+        for (IFolder iFolder : toBeCreated) {
+            iFolder.create(true, false, null);
         }
 
         IFile file = webContentFolder.getFile(fileNane);