[357016] ModuleCoreNature projects should respect defaultRootSource
diff --git a/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/internal/jca/project/facet/ConnectorFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/internal/jca/project/facet/ConnectorFacetInstallDataModelProvider.java index f883537..c87701d 100644 --- a/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/internal/jca/project/facet/ConnectorFacetInstallDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/internal/jca/project/facet/ConnectorFacetInstallDataModelProvider.java
@@ -10,8 +10,11 @@ *******************************************************************************/ package org.eclipse.jst.j2ee.internal.jca.project.facet; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; 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; @@ -19,6 +22,11 @@ import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences; import org.eclipse.jst.j2ee.jca.project.facet.IConnectorFacetInstallDataModelProperties; 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.project.facet.core.IProjectFacetVersion; public class ConnectorFacetInstallDataModelProvider extends J2EEModuleFacetInstallDataModelProvider implements IConnectorFacetInstallDataModelProperties { @@ -28,6 +36,23 @@ if (propertyName.equals(FACET_ID)) { return JCA; } 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.JCA_CONTENT_FOLDER); } else if (propertyName.equals(MODULE_URI)) { String projectName = model.getStringProperty(FACET_PROJECT_NAME).replace(' ','_'); @@ -59,7 +84,13 @@ this.javaFacetInstallConfig.setSourceFolder( sourceFolder ); } } - + else if (FACET_PROJECT_NAME.equals(propertyName)) + { + if (!model.isPropertySet(CONFIG_FOLDER)) { + model.notifyPropertyChange(CONFIG_FOLDER, IDataModel.DEFAULT_CHG); + } + } + return super.propertySet(propertyName, propertyValue); }
diff --git a/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/jca/project/facet/ConnectorFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/jca/project/facet/ConnectorFacetInstallDelegate.java index db8d5d6..2b400f7 100644 --- a/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/jca/project/facet/ConnectorFacetInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee.jca/jca/org/eclipse/jst/j2ee/jca/project/facet/ConnectorFacetInstallDelegate.java
@@ -98,7 +98,7 @@ IFolder sourceFolder = null; String configFolder = null; configFolder = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER); - Path configFolderPath = new Path("/" + configFolder); //$NON-NLS-1$ + Path configFolderPath = new Path(configFolder); root.createLink(configFolderPath, 0, null); J2EEModuleVirtualComponent.setDefaultDeploymentDescriptorFolder(root, configFolderPath, null); String configFolderName = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER);
diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDataModelProvider.java index 2b32330..3d7bf70 100644 --- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDataModelProvider.java
@@ -13,10 +13,13 @@ import java.util.List; 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.common.project.facet.core.JavaFacetInstallConfig.ChangeEvent; +import org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent; import org.eclipse.jst.j2ee.internal.J2EEConstants; import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil; @@ -26,6 +29,10 @@ import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences; import org.eclipse.jst.j2ee.internal.project.ProjectSupportResourceHandler; 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.plugin.WTPCommonPlugin; import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; @@ -56,6 +63,23 @@ @Override public Object getDefaultProperty(String propertyName) { 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.WEB_CONTENT_FOLDER); } else if (propertyName.equals(SOURCE_FOLDER)) { return J2EEPlugin.getDefault().getJ2EEPreferences().getString(J2EEPreferences.Keys.DYN_WEB_SRC_FOLDER); @@ -88,6 +112,9 @@ model.notifyPropertyChange(CONTEXT_ROOT, IDataModel.ENABLE_CHG); } else if (FACET_PROJECT_NAME.equals(propertyName)) { model.notifyPropertyChange(CONTEXT_ROOT, IDataModel.VALID_VALUES_CHG); + if (!model.isPropertySet(CONFIG_FOLDER)) { + model.notifyPropertyChange(CONFIG_FOLDER, IDataModel.DEFAULT_CHG); + } } else if (propertyName.equals(CONFIG_FOLDER)) { return true; } else if (propertyName.equals(SOURCE_FOLDER))
diff --git a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java index 24099e9..0a57b65 100644 --- a/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee.web/webproject/org/eclipse/jst/j2ee/web/project/facet/WebFacetInstallDelegate.java
@@ -105,7 +105,7 @@ final IVirtualFolder webroot = c.getRootFolder(); if (webroot.getProjectRelativePath().equals(new Path("/"))){ //$NON-NLS-1$ - Path configFolderPath = new Path("/" + model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER)); //$NON-NLS-1$ + Path configFolderPath = new Path(model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER)); webroot.createLink(configFolderPath, 0, null); J2EEModuleVirtualComponent.setDefaultDeploymentDescriptorFolder(webroot, configFolderPath, null); }
diff --git a/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDataModelProvider.java index 6193a4a..02d822b 100644 --- a/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDataModelProvider.java
@@ -12,13 +12,21 @@ 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.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; import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences; +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.project.facet.core.IProjectFacetVersion; public class AppClientFacetInstallDataModelProvider extends J2EEModuleFacetInstallDataModelProvider implements IAppClientFacetInstallDataModelProperties { @@ -41,7 +49,26 @@ else if (propertyName.equals(CREATE_DEFAULT_MAIN_CLASS)) return Boolean.TRUE; 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.APP_CLIENT_CONTENT_FOLDER); + } else if (propertyName.equals(MODULE_URI)) { String projectName = model.getStringProperty(FACET_PROJECT_NAME).replace(' ','_'); return projectName + IJ2EEModuleConstants.JAR_EXT; @@ -72,7 +99,13 @@ this.javaFacetInstallConfig.setSourceFolder( sourceFolder ); } } - + else if (FACET_PROJECT_NAME.equals(propertyName)) + { + if (!model.isPropertySet(CONFIG_FOLDER)) { + model.notifyPropertyChange(CONFIG_FOLDER, IDataModel.DEFAULT_CHG); + } + } + return super.propertySet(propertyName, propertyValue); }
diff --git a/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDelegate.java index 15f68e0..46ab1bf 100644 --- a/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee/appclientcreation/org/eclipse/jst/j2ee/project/facet/AppClientFacetInstallDelegate.java
@@ -107,7 +107,7 @@ IFolder sourceFolder = null; String configFolder = null; configFolder = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER); - Path configFolderPath = new Path("/" + configFolder); //$NON-NLS-1$ + Path configFolderPath = new Path(configFolder); root.createLink(configFolderPath, 0, null); J2EEModuleVirtualComponent.setDefaultDeploymentDescriptorFolder(root, configFolderPath, null); String configFolderName = model.getStringProperty(IJ2EEModuleFacetInstallDataModelProperties.CONFIG_FOLDER);
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarFacetInstallDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarFacetInstallDataModelProvider.java index eb82f03..b1aa698 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarFacetInstallDataModelProvider.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EarFacetInstallDataModelProvider.java
@@ -16,14 +16,20 @@ 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.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.J2EEPlugin; import org.eclipse.jst.j2ee.internal.plugin.J2EEPreferences; import org.eclipse.jst.j2ee.project.facet.J2EEFacetInstallDataModelProvider; 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.project.facet.core.IProjectFacetVersion; import org.eclipse.jst.j2ee.internal.project.ProjectSupportResourceHandler; import org.eclipse.osgi.util.NLS; @@ -44,6 +50,23 @@ if (propertyName.equals(FACET_ID)) { return ENTERPRISE_APPLICATION; } else if (propertyName.equals(CONTENT_DIR)) { + 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.APPLICATION_CONTENT_FOLDER); } else if (propertyName.equals(J2EE_PROJECTS_LIST) || propertyName.equals(JAVA_PROJECT_LIST)) { return Collections.EMPTY_LIST; @@ -86,4 +109,16 @@ protected int convertFacetVersionToJ2EEVersion(IProjectFacetVersion version) { return J2EEVersionUtil.convertVersionStringToInt(version.getVersionString()); } + + @Override + public boolean propertySet(String propertyName, Object propertyValue) { + if (FACET_PROJECT_NAME.equals(propertyName)) + { + if (!model.isPropertySet(CONTENT_DIR)) { + model.notifyPropertyChange(CONTENT_DIR, IDataModel.DEFAULT_CHG); + } + } + + return super.propertySet(propertyName, propertyValue); + } }
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java index ea51eaf..04fd949 100644 --- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java +++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/project/facet/EarFacetInstallDelegate.java
@@ -62,7 +62,7 @@ c.create(0, null); final IVirtualFolder earroot = c.getRootFolder(); - Path contentDirPath = new Path("/" + model.getStringProperty(IEarFacetInstallDataModelProperties.CONTENT_DIR)); //$NON-NLS-1$ + Path contentDirPath = new Path(model.getStringProperty(IEarFacetInstallDataModelProperties.CONTENT_DIR)); earroot.createLink(contentDirPath, 0, null); J2EEModuleVirtualComponent.setDefaultDeploymentDescriptorFolder(earroot, contentDirPath, null);