### Eclipse Workspace Patch 1.0 #P org.eclipse.jst.j2ee.core Index: jee-models/org/eclipse/jst/javaee/webfragment/internal/util/WebfragmentResourceImpl.java =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee.core/jee-models/org/eclipse/jst/javaee/webfragment/internal/util/WebfragmentResourceImpl.java,v retrieving revision 1.3 diff -u -r1.3 WebfragmentResourceImpl.java --- jee-models/org/eclipse/jst/javaee/webfragment/internal/util/WebfragmentResourceImpl.java 11 Feb 2010 06:22:50 -0000 1.3 +++ jee-models/org/eclipse/jst/javaee/webfragment/internal/util/WebfragmentResourceImpl.java 4 Mar 2010 05:26:55 -0000 @@ -17,6 +17,7 @@ import org.eclipse.emf.ecore.xmi.XMLLoad; import org.eclipse.jst.javaee.core.JEEXMLLoadImpl; import org.eclipse.jst.javaee.core.internal.util.JavaeeResourceImpl; +import org.eclipse.jst.javaee.web.IWebFragmentResource; import org.eclipse.jst.javaee.web.WebFragment; import org.eclipse.jst.javaee.webfragment.WebAppDeploymentDescriptor; import org.eclipse.wst.common.internal.emf.resource.IRootObjectResource; @@ -28,7 +29,7 @@ * @see org.eclipse.jst.javaee.webfragment.internal.util.WebfragmentResourceFactoryImpl * @generated */ -public class WebfragmentResourceImpl extends JavaeeResourceImpl implements IRootObjectResource { +public class WebfragmentResourceImpl extends JavaeeResourceImpl implements IRootObjectResource, IWebFragmentResource { /** * Creates an instance of the resource. * #P org.eclipse.jst.servlet.ui Index: property_files/web_ui.properties =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.servlet.ui/property_files/web_ui.properties,v retrieving revision 1.26 diff -u -r1.26 web_ui.properties --- property_files/web_ui.properties 3 Mar 2010 22:42:27 -0000 1.26 +++ property_files/web_ui.properties 4 Mar 2010 05:26:56 -0000 @@ -13,7 +13,7 @@ _2=Servlet version: _3=Dynamic Web Project _4=Create a standalone Dynamic Web project or add it to a new or existing Enterprise Application. -_5=Project: +_5=Web &project: _6=WAR file: _7=Import a WAR file from the file system _8=WAR Import Index: servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java,v retrieving revision 1.10 diff -u -r1.10 NewWebClassWizardPage.java --- servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java 3 Mar 2010 22:42:27 -0000 1.10 +++ servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java 4 Mar 2010 05:26:56 -0000 @@ -48,7 +48,6 @@ import org.eclipse.jst.j2ee.web.project.facet.WebFacetUtils; import org.eclipse.jst.servlet.ui.internal.navigator.CompressedJavaProject; import org.eclipse.jst.servlet.ui.internal.plugin.ServletUIPlugin; -import org.eclipse.jst.servlet.ui.internal.plugin.WEBUIMessages; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; @@ -61,6 +60,7 @@ import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.eclipse.wst.common.componentcore.ComponentCore; +import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.project.facet.core.IFacetedProject; @@ -83,7 +83,8 @@ protected Composite createTopLevelComposite(Composite parent) { Composite composite = super.createTopLevelComposite(parent); - projectNameLabel.setText(WEBUIMessages.WEB_PROJECT_LBL); + //bug 303931 + // projectNameLabel.setText(WEBUIMessages.WEB_PROJECT_LBL); addSeperator(composite, 3); createUseExistingGroup(composite); @@ -433,4 +434,17 @@ existingButton.notifyListeners(SWT.Selection, new Event()); } + @Override + protected boolean isProjectValid(IProject project) { + boolean result; + try { + result = project.isAccessible() && + project.hasNature(IModuleConstants.MODULE_NATURE_ID) && + (JavaEEProjectUtilities.isDynamicWebProject(project) || JavaEEProjectUtilities.isWebFragmentProject(project)); + } catch (CoreException ce) { + result = false; + } + return result; + } + } #P org.eclipse.jst.ejb.ui Index: ejb_ui/org/eclipse/jst/ejb/ui/internal/wizard/NewEnterpriseBeanClassWizardPage.java =================================================================== RCS file: /cvsroot/webtools/ejbtools/plugins/org.eclipse.jst.ejb.ui/ejb_ui/org/eclipse/jst/ejb/ui/internal/wizard/NewEnterpriseBeanClassWizardPage.java,v retrieving revision 1.4 diff -u -r1.4 NewEnterpriseBeanClassWizardPage.java --- ejb_ui/org/eclipse/jst/ejb/ui/internal/wizard/NewEnterpriseBeanClassWizardPage.java 4 Mar 2009 16:58:40 -0000 1.4 +++ ejb_ui/org/eclipse/jst/ejb/ui/internal/wizard/NewEnterpriseBeanClassWizardPage.java 4 Mar 2010 05:26:56 -0000 @@ -12,9 +12,9 @@ import org.eclipse.core.resources.IProject; import org.eclipse.jem.util.emf.workbench.ProjectUtilities; -import org.eclipse.jst.ejb.ui.internal.util.EJBUIMessages; import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; import org.eclipse.jst.j2ee.internal.wizard.NewJavaClassWizardPage; +import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.jst.jee.ui.internal.navigator.AbstractDDNode; import org.eclipse.jst.jee.ui.internal.navigator.ejb.GroupEJBProvider; import org.eclipse.swt.widgets.Composite; @@ -31,7 +31,8 @@ protected Composite createTopLevelComposite(Composite parent) { Composite composite = super.createTopLevelComposite(parent); - projectNameLabel.setText(EJBUIMessages.EJB_PROJECT_LBL); + // bug 303917 + //projectNameLabel.setText(EJBUIMessages.EJB_PROJECT_LBL); return composite; } @@ -39,7 +40,19 @@ @Override protected boolean isProjectValid(IProject project) { boolean result = super.isProjectValid(project); - result = result && J2EEProjectUtilities.isJEEProject(project); + // bug 241670 - 3.x EJBs can be created in 3.x EJB project, or Web 2.5 or Web 3.0 or Web Fragment 3.0 + boolean isJEEProject = J2EEProjectUtilities.isJEEProject(project); + if (isJEEProject) + { + if (!result) + { + result = (JavaEEProjectUtilities.isDynamicWebProject(project) || JavaEEProjectUtilities.isWebFragmentProject(project)); + } + } + else + { + result = false; + } return result; } #P org.eclipse.jst.j2ee.ui Index: j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java =================================================================== RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee.ui/j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java,v retrieving revision 1.57 diff -u -r1.57 NewJavaClassWizardPage.java --- j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java 3 Mar 2010 22:42:33 -0000 1.57 +++ j2ee_ui/org/eclipse/jst/j2ee/internal/wizard/NewJavaClassWizardPage.java 4 Mar 2010 05:26:57 -0000 @@ -229,7 +229,7 @@ try { result = project.isAccessible() && project.hasNature(IModuleConstants.MODULE_NATURE_ID) && - (JavaEEProjectUtilities.isDynamicWebProject(project) || JavaEEProjectUtilities.isWebFragmentProject(project)); + JavaEEProjectUtilities.getJ2EEProjectType(project).equals(projectType); } catch (CoreException ce) { result = false; } #P org.eclipse.jst.j2ee.ejb Index: ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassOperation.java =================================================================== RCS file: /cvsroot/webtools/ejbtools/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassOperation.java,v retrieving revision 1.14 diff -u -r1.14 NewSessionBeanClassOperation.java --- ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassOperation.java 1 Jul 2009 19:29:47 -0000 1.14 +++ ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassOperation.java 4 Mar 2010 05:26:59 -0000 @@ -44,6 +44,7 @@ import org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties; import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; import org.eclipse.jst.j2ee.project.EJBUtilities; +import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.wst.common.componentcore.internal.operation.ArtifactEditProviderOperation; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; import org.eclipse.wst.common.frameworks.internal.enablement.nonui.WFTWrappedException; @@ -191,7 +192,12 @@ protected void generateInterfacesUsingTemplates(IProgressMonitor monitor, IPackageFragment fragment, CreateSessionBeanTemplateModel tempModel) throws JETException, JavaModelException { - boolean useClientJar = EJBUtilities.hasEJBClientJARProject(getTargetProject()); + IProject project = getTargetProject(); + boolean useClientJar = false; + if (JavaEEProjectUtilities.isEJBProject(project)) + { + useClientJar = EJBUtilities.hasEJBClientJARProject(getTargetProject()); + } List interfaces = tempModel.getBusinessInterfaces(); for (BusinessInterface iface : interfaces) { if (!iface.exists()) { @@ -217,7 +223,6 @@ String remoteFullName = model.getStringProperty(INewSessionBeanClassDataModelProperties.REMOTE_HOME_INTERFACE); String remoteComponentFullName = model.getStringProperty(INewSessionBeanClassDataModelProperties.REMOTE_COMPONENT_INTERFACE); - IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(model.getStringProperty(INewSessionBeanClassDataModelProperties.PROJECT_NAME)); IJavaProject javaProject = JavaCore.create(project); IType type = javaProject.findType(remoteFullName); @@ -250,7 +255,6 @@ String localFullName = model.getStringProperty(INewSessionBeanClassDataModelProperties.LOCAL_HOME_INTERFACE); String localComponentFullName = model.getStringProperty(INewSessionBeanClassDataModelProperties.LOCAL_COMPONENT_INTERFACE); - IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(model.getStringProperty(INewSessionBeanClassDataModelProperties.PROJECT_NAME)); IJavaProject javaProject = JavaCore.create(project); IType type = javaProject.findType(localFullName); Index: ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewEnterpriseBeanClassDataModelProvider.java =================================================================== RCS file: /cvsroot/webtools/ejbtools/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewEnterpriseBeanClassDataModelProvider.java,v retrieving revision 1.7 diff -u -r1.7 NewEnterpriseBeanClassDataModelProvider.java --- ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewEnterpriseBeanClassDataModelProvider.java 10 Jun 2009 20:18:31 -0000 1.7 +++ ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewEnterpriseBeanClassDataModelProvider.java 4 Mar 2010 05:26:59 -0000 @@ -20,6 +20,7 @@ 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.IStatus; import org.eclipse.core.runtime.Status; @@ -28,6 +29,7 @@ import org.eclipse.jst.j2ee.internal.ejb.project.operations.EJBCreationResourceHandler; import org.eclipse.jst.j2ee.model.IModelProvider; import org.eclipse.jst.j2ee.model.ModelProviderManager; +import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.jst.javaee.ejb.EJBJar; import org.eclipse.jst.javaee.ejb.EnterpriseBeans; import org.eclipse.jst.javaee.ejb.SessionBean; @@ -155,19 +157,24 @@ // check if an EJB with the same name already exists String projectName = getStringProperty(PROJECT_NAME); if (projectName != null && projectName.length() > 0) { - IModelProvider provider = ModelProviderManager.getModelProvider(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName)); - EJBJar modelObject = (EJBJar) provider.getModelObject(); - EnterpriseBeans enterpriseBeans = modelObject.getEnterpriseBeans(); - if (enterpriseBeans != null) + IProject project = getTargetProject(); + if (JavaEEProjectUtilities.isEJBProject(project)) { - List sessionBeans = enterpriseBeans.getSessionBeans(); - for (Object object : sessionBeans) { - SessionBean session = (SessionBean) object; - if (session.getEjbName().equals(getDataModel().getStringProperty(EJB_NAME).trim())){ - return new Status(IStatus.ERROR, EjbPlugin.PLUGIN_ID, EJBCreationResourceHandler.ERR_BEAN_ALREADY_EXISTS); + IModelProvider provider = ModelProviderManager.getModelProvider(ResourcesPlugin.getWorkspace().getRoot().getProject(projectName)); + EJBJar modelObject = (EJBJar) provider.getModelObject(); + EnterpriseBeans enterpriseBeans = modelObject.getEnterpriseBeans(); + if (enterpriseBeans != null) + { + List sessionBeans = enterpriseBeans.getSessionBeans(); + for (Object object : sessionBeans) { + SessionBean session = (SessionBean) object; + if (session.getEjbName().equals(getDataModel().getStringProperty(EJB_NAME).trim())){ + return new Status(IStatus.ERROR, EjbPlugin.PLUGIN_ID, EJBCreationResourceHandler.ERR_BEAN_ALREADY_EXISTS); + } } } } + // TODO - load/check the validity of the name in a web project/ web fragment } return Status.OK_STATUS; } Index: ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassDataModelProvider.java =================================================================== RCS file: /cvsroot/webtools/ejbtools/plugins/org.eclipse.jst.j2ee.ejb/ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassDataModelProvider.java,v retrieving revision 1.21 diff -u -r1.21 NewSessionBeanClassDataModelProvider.java --- ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassDataModelProvider.java 23 Feb 2010 09:13:58 -0000 1.21 +++ ejb/org/eclipse/jst/j2ee/ejb/internal/operations/NewSessionBeanClassDataModelProvider.java 4 Mar 2010 05:26:59 -0000 @@ -44,6 +44,7 @@ import org.eclipse.jdt.core.Signature; import org.eclipse.jst.j2ee.ejb.internal.operations.BusinessInterface.BusinessInterfaceType; import org.eclipse.jst.j2ee.ejb.internal.plugin.EjbPlugin; +import org.eclipse.jst.j2ee.internal.J2EEVersionConstants; import org.eclipse.jst.j2ee.internal.common.J2EECommonMessages; import org.eclipse.jst.j2ee.internal.common.J2EEVersionUtil; import org.eclipse.jst.j2ee.internal.common.operations.NewJavaClassDataModelProvider; @@ -500,11 +501,27 @@ } private boolean ejb31OrLater() { + boolean retVal = false; IProject project = getTargetProject(); - IProjectFacetVersion facetVersion = JavaEEProjectUtilities.getProjectFacetVersion(project, IJ2EEFacetConstants.EJB); - int version = J2EEVersionUtil.convertVersionStringToInt(facetVersion.getVersionString()); - int ejb31version = J2EEVersionUtil.convertVersionStringToInt(IJ2EEFacetConstants.EJB_31.getVersionString()); - return version >= ejb31version; + if (JavaEEProjectUtilities.isEJBProject(project)) + { + IProjectFacetVersion facetVersion = JavaEEProjectUtilities.getProjectFacetVersion(project, IJ2EEFacetConstants.EJB); + int version = J2EEVersionUtil.convertVersionStringToInt(facetVersion.getVersionString()); + retVal = version >= J2EEVersionConstants.VERSION_3_1; + } + else if (JavaEEProjectUtilities.isDynamicWebProject(project)) + { + IProjectFacetVersion facetVersion = JavaEEProjectUtilities.getProjectFacetVersion(project, IJ2EEFacetConstants.DYNAMIC_WEB); + int version = J2EEVersionUtil.convertVersionStringToInt(facetVersion.getVersionString()); + retVal = version >= J2EEVersionConstants.VERSION_3_0; + } + else if (JavaEEProjectUtilities.isWebFragmentProject(project)) + { + IProjectFacetVersion facetVersion = JavaEEProjectUtilities.getProjectFacetVersion(project, IJ2EEFacetConstants.WEBFRAGMENT); + int version = J2EEVersionUtil.convertVersionStringToInt(facetVersion.getVersionString()); + retVal = version >= J2EEVersionConstants.VERSION_3_0; + } + return retVal; } }