[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;
}