[357016] ModuleCoreNature projects should respect defaultRootSource
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/ejb/project/facet/EjbFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/ejb/project/facet/EjbFacetInstallDelegate.java
index 67bda1f..7b425fd 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/ejb/project/facet/EjbFacetInstallDelegate.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/ejb/project/facet/EjbFacetInstallDelegate.java
@@ -83,12 +83,11 @@
 			String configFolder = null;
 
 			configFolder = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER);
-			Path configFolderPath = new Path("/" + configFolder);   //$NON-NLS-1$
+			Path configFolderPath = new Path(configFolder);
 			ejbroot.createLink(configFolderPath, 0, null);
 			J2EEModuleVirtualComponent.setDefaultDeploymentDescriptorFolder(ejbroot, configFolderPath, null);
 
-			String ejbFolderName = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER);
-			IPath ejbFolderpath = pjpath.append(ejbFolderName);
+			IPath ejbFolderpath = pjpath.append(configFolder);
 
 			ejbFolder = ws.getRoot().getFolder(ejbFolderpath);
 
diff --git a/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EjbFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EjbFacetInstallDataModelProvider.java
index 726c618..f555e01 100644
--- a/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EjbFacetInstallDataModelProvider.java
+++ b/plugins/org.eclipse.jst.j2ee.ejb/ejbcreation/org/eclipse/jst/j2ee/internal/ejb/project/operations/EjbFacetInstallDataModelProvider.java
@@ -12,9 +12,12 @@
 
 import java.util.Set;
 
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent;
 import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
 import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil;
 import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants;
@@ -22,6 +25,10 @@
 import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences;
 import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetInstallDataModelProperties;
 import org.eclipse.jst.j2ee.project.facet.J2EEModuleFacetInstallDataModelProvider;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 import org.eclipse.wst.common.frameworks.internal.operations.ProjectCreationDataModelProviderNew;
 import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
@@ -50,6 +57,23 @@
 		} else if (propertyName.equals(CLIENT_SOURCE_FOLDER)) {
 			return J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.EJB_CONTENT_FOLDER);
 		}else if (propertyName.equals(CONFIG_FOLDER)){
+			if (model.isPropertySet(FACET_PROJECT_NAME))
+			{
+				String projectName = model.getStringProperty(FACET_PROJECT_NAME);
+				IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+				if (project.exists()) {
+					if (ModuleCoreNature.isFlexibleProject(project))
+					{
+						IVirtualComponent c = ComponentCore.createComponent(project, true);
+						IVirtualFolder ejbroot = c.getRootFolder();
+						IPath configFolderPath = J2EEModuleVirtualComponent.getDefaultDeploymentDescriptorFolder(ejbroot);
+						if (configFolderPath != null && project.getFolder(configFolderPath).exists())
+						{
+							return configFolderPath.toString();
+						}
+					}
+				}
+			}
 			return J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.EJB_CONTENT_FOLDER);
 		}else if (propertyName.equals(CLIENT_NAME)){
 			String clientProjectName = model.getStringProperty(FACET_PROJECT_NAME);
@@ -151,6 +175,11 @@
                 this.javaFacetInstallConfig.setSourceFolder( sourceFolder );
             }
         }
+        else if (FACET_PROJECT_NAME.equals(propertyName)) {
+				if (!model.isPropertySet(CONFIG_FOLDER)) {
+					model.notifyPropertyChange(CONFIG_FOLDER, IDataModel.DEFAULT_CHG);
+				}
+		}
 
 		return status;
 	}