Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 122018 Details for
Bug 260459
Changing our refactoring capability to use the LTK refactoring framework
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
patch
wtppatch.txt (text/plain), 43.77 KB, created by
Hari Shankar
on 2009-01-08 16:35:29 EST
(
hide
)
Description:
patch
Filename:
MIME Type:
Creator:
Hari Shankar
Created:
2009-01-08 16:35:29 EST
Size:
43.77 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jst.j2ee >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF,v >retrieving revision 1.50.2.6 >diff -u -r1.50.2.6 MANIFEST.MF >--- META-INF/MANIFEST.MF 22 Nov 2008 03:29:44 -0000 1.50.2.6 >+++ META-INF/MANIFEST.MF 8 Jan 2009 21:34:43 -0000 >@@ -49,7 +49,12 @@ > org.eclipse.jst.j2ee.project.facet, > org.eclipse.jst.j2ee.refactor, > org.eclipse.jst.j2ee.refactor.listeners, >- org.eclipse.jst.j2ee.refactor.operations >+ org.eclipse.jst.j2ee.refactor.operations, >+ org.eclipse.jst.javaee.ltk.core, >+ org.eclipse.jst.javaee.ltk.core.change, >+ org.eclipse.jst.javaee.ltk.core.descriptor, >+ org.eclipse.jst.javaee.ltk.core.nls, >+ org.eclipse.jst.javaee.ltk.core.participant > Require-Bundle: org.eclipse.emf.edit;bundle-version="[2.2.0,3.0.0)", > org.eclipse.jem.workbench;bundle-version="[2.0.0,3.0.0)", > org.eclipse.jst.j2ee.core;bundle-version="[1.1.0,1.2.0)", >@@ -81,6 +86,8 @@ > org.eclipse.wst.common.environment;bundle-version="[1.0.100,1.1.0)", > org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)", > org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)", >- org.eclipse.core.filesystem;bundle-version="[1.2.0,2.0.0)" >+ org.eclipse.core.filesystem;bundle-version="[1.2.0,2.0.0)", >+ org.eclipse.ltk.core.refactoring;bundle-version="3.4.1", >+ org.eclipse.jst.j2ee.ejb;bundle-version="1.1.203" > Eclipse-LazyStart: true > Bundle-RequiredExecutionEnvironment: J2SE-1.5 >Index: j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java,v >retrieving revision 1.48.4.1 >diff -u -r1.48.4.1 J2EEPlugin.java >--- j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java 21 Oct 2008 16:37:30 -0000 1.48.4.1 >+++ j2eeplugin/org/eclipse/jst/j2ee/internal/plugin/J2EEPlugin.java 8 Jan 2009 21:34:43 -0000 >@@ -518,7 +518,7 @@ > final ProjectRefactoringListener listener = new ProjectRefactoringListener();//ProjectDependencyCache.getCache()); > // register the project rename/delete refactoring listener > ResourcesPlugin.getWorkspace().addResourceChangeListener(listener, >- IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_DELETE); >+ IResourceChangeEvent.POST_CHANGE ); > > // register the IElementChangedLister that updates the .component file in > // response to .classpath changes >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/webtools/jeetools/plugins/org.eclipse.jst.j2ee/plugin.xml,v >retrieving revision 1.121.4.2 >diff -u -r1.121.4.2 plugin.xml >--- plugin.xml 16 Oct 2008 04:40:24 -0000 1.121.4.2 >+++ plugin.xml 8 Jan 2009 21:34:43 -0000 >@@ -763,4 +763,14 @@ > </propertyTester> > </extension> > >+ <extension >+ point="org.eclipse.ltk.core.refactoring.deleteParticipants"> >+ <deleteParticipant >+ class="org.eclipse.jst.javaee.ltk.core.participant.JavaEERefactoringParticipant" >+ id="JavaEERefactoringParticipant" >+ name="JavaEERefactoringParticipant"> >+ <enablement></enablement> >+ </deleteParticipant> >+ </extension> >+ > </plugin> >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/JavaEERefactoringPlugin.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/JavaEERefactoringPlugin.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/JavaEERefactoringPlugin.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/JavaEERefactoringPlugin.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,62 @@ >+package org.eclipse.jst.javaee.ltk.core; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Platform; >+import org.eclipse.core.runtime.Plugin; >+import org.eclipse.core.runtime.Status; >+import org.osgi.framework.BundleContext; >+ >+/** >+ * The activator class controls the plug-in life cycle >+ */ >+public class JavaEERefactoringPlugin extends Plugin { >+ >+ // The plug-in ID >+ public static final String PLUGIN_ID = "com.ibm.etools.javaee.ltk.core"; >+ >+ // The shared instance >+ private static JavaEERefactoringPlugin plugin; >+ >+ /** >+ * The constructor >+ */ >+ public JavaEERefactoringPlugin() { >+ } >+ >+ public void start(BundleContext context) throws Exception { >+ super.start(context); >+ plugin = this; >+ } >+ >+ public void stop(BundleContext context) throws Exception { >+ plugin = null; >+ super.stop(context); >+ } >+ >+ >+ public static JavaEERefactoringPlugin getDefault() { >+ return plugin; >+ } >+ >+ public static void logError(String message) { >+ Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, message)); >+ } >+ >+ public static void logError(Throwable exception) { >+ Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( createStatus(IStatus.ERROR, exception.getMessage(), exception)); >+ } >+ >+ public static void logError(CoreException exception) { >+ Platform.getLog(Platform.getBundle(PLUGIN_ID)).log( exception.getStatus() ); >+ } >+ >+ public static IStatus createStatus(int severity, String message, Throwable exception) { >+ return new Status(severity, PLUGIN_ID, message, exception); >+ } >+ >+ public static IStatus createStatus(int severity, String message) { >+ return createStatus(severity, message, null); >+ } >+ >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteSessionBeanChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteSessionBeanChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteSessionBeanChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteSessionBeanChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,62 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.OperationCanceledException; >+import org.eclipse.jst.javaee.ejb.EJBJar; >+import org.eclipse.jst.javaee.ejb.EnterpriseBeans; >+import org.eclipse.jst.javaee.ejb.SessionBean; >+import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+import org.eclipse.osgi.util.NLS; >+ >+ >+public class DeleteSessionBeanChange extends Change { >+ >+ SessionBean sBean = null; >+ EJBJar ejbJar = null; >+ public DeleteSessionBeanChange(EJBJar jar , SessionBean sb){ >+ sBean = sb; >+ ejbJar = jar; >+ >+ } >+ @Override >+ public Object getModifiedElement() { >+ return null; >+ } >+ >+ @Override >+ public String getName() { >+ String name = NLS.bind( >+ RefactoringResourceHandler.Delete_SB_From_DD, new Object[] { sBean.getEjbClass() }); >+ return name; >+ } >+ >+ @Override >+ public void initializeValidationData(IProgressMonitor pm) { >+ >+ } >+ >+ @Override >+ public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, >+ OperationCanceledException { >+ return null; >+ } >+ >+ @Override >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ deleteEnterpriseBean(); >+ return null; >+ } >+ >+ protected void deleteEnterpriseBean() { >+ if (ejbJar != null) { >+ >+ EnterpriseBeans ebs = ejbJar.getEnterpriseBeans(); >+ ebs.getSessionBeans().remove(sBean); >+ ejbJar.setEnterpriseBeans(ebs); >+ } >+ >+ } >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/NonEARModuleReferenceRemoveChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/NonEARModuleReferenceRemoveChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/NonEARModuleReferenceRemoveChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/NonEARModuleReferenceRemoveChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,330 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import java.util.ArrayList; >+import java.util.List; >+import java.util.Properties; >+import java.util.concurrent.ExecutionException; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.core.runtime.OperationCanceledException; >+import org.eclipse.core.runtime.Path; >+import org.eclipse.jem.util.emf.workbench.ProjectUtilities; >+import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProperties; >+import org.eclipse.jst.j2ee.application.internal.operations.UpdateManifestDataModelProvider; >+import org.eclipse.jst.j2ee.commonarchivecore.internal.helpers.ArchiveManifest; >+import org.eclipse.jst.j2ee.internal.J2EEConstants; >+import org.eclipse.jst.j2ee.internal.common.CreationConstants; >+import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; >+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.ltk.core.JavaEERefactoringPlugin; >+import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.ChangeDescriptor; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+import org.eclipse.osgi.util.NLS; >+import org.eclipse.wst.common.componentcore.ComponentCore; >+import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent; >+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; >+import org.eclipse.wst.common.componentcore.resources.IVirtualFile; >+import org.eclipse.wst.common.componentcore.resources.IVirtualReference; >+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory; >+import org.eclipse.wst.common.frameworks.datamodel.IDataModel; >+ >+ >+public class NonEARModuleReferenceRemoveChange extends Change { >+ >+ >+ public NonEARModuleReferenceRemoveChange(IProject referencingEARProject, IProject projectToRemove) { >+ super(); >+ this.referencingModuleProject = referencingEARProject; >+ this.projectToRemove = projectToRemove; >+ this.referencingModuleProjectComp = (VirtualComponent)ComponentCore.createComponent(referencingEARProject); >+ cachedRefs = referencingModuleProjectComp.getReferences(); >+ this.projectToRemoveComp = ComponentCore.createComponent(projectToRemove); >+ } >+ >+ IProject referencingModuleProject = null; >+ VirtualComponent referencingModuleProjectComp = null; >+ IProject projectToRemove = null; >+ IVirtualComponent projectToRemoveComp = null; >+ IVirtualReference[] cachedRefs = null; >+ @Override >+ public Object getModifiedElement() { >+ return null; >+ } >+ >+ @Override >+ public String getName() { >+ >+ String name = NLS.bind( >+ RefactoringResourceHandler.Remove_JavaEE_References, >+ new Object[] {projectToRemove.getName()}); >+ >+ name += referencingModuleProject.getName(); >+ return name; >+ >+ } >+ >+ @Override >+ public void initializeValidationData(IProgressMonitor pm) { >+ >+ } >+ >+ @Override >+ public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, >+ OperationCanceledException { >+ return null; >+ } >+ >+ @Override >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ >+ try { >+ removeModuleDependency(); >+ if(isEJBClientDeletion()){ >+ updateEJBDDWithEJBClientDeletion(); >+ } >+ } catch (ExecutionException e) { >+ JavaEERefactoringPlugin.logError(e); >+ } >+ return null; >+ } >+ >+ public ChangeDescriptor getDescriptor() { >+ return null; >+ } >+ >+ private boolean isEJBClientDeletion(){ >+ >+ if(!JavaEEProjectUtilities.isEJBProject(referencingModuleProject)) >+ return false; >+ Properties props = referencingModuleProjectComp.getMetaProperties(); >+ String clientCompName = props.getProperty(CreationConstants.EJB_CLIENT_NAME); >+ if(clientCompName == null || clientCompName.isEmpty()){ >+ return false; >+ } >+ >+ if(clientCompName.equals(projectToRemove.getName())){ >+ return true; >+ } >+ return false; >+ } >+ >+ >+ /* >+ * Remove the client JAR entry from the deployment descriptor >+ * This method is to be used only to remove EJB Client jar entry from >+ * EJB DD >+ */ >+ private void updateEJBDDWithEJBClientDeletion() { >+ IModelProvider ejbModel = ModelProviderManager.getModelProvider(referencingModuleProject); >+ ejbModel.modify(new Runnable() { >+ public void run() { >+ IModelProvider writableEjbModel = ModelProviderManager.getModelProvider(referencingModuleProject); >+ Object modelObject = writableEjbModel.getModelObject(); >+ >+ if (modelObject instanceof org.eclipse.jst.javaee.ejb.EJBJar) { >+ org.eclipse.jst.javaee.ejb.EJBJar ejbres = (org.eclipse.jst.javaee.ejb.EJBJar) writableEjbModel.getModelObject(); >+ if (ejbres != null) >+ ejbres.setEjbClientJar(null); >+ } >+ else { >+ org.eclipse.jst.j2ee.ejb.EJBJar ejbres = (org.eclipse.jst.j2ee.ejb.EJBJar) writableEjbModel.getModelObject(); >+ ejbres.setEjbClientJar(null); >+ } >+ Properties props = referencingModuleProjectComp.getMetaProperties(); >+ props.remove(CreationConstants.CLIENT_JAR_URI); >+ props.remove(CreationConstants.EJB_CLIENT_NAME); >+ referencingModuleProjectComp.clearMetaProperties(); >+ referencingModuleProjectComp.setMetaProperties(props); >+ >+ } >+ },null); >+ } >+ >+ >+ >+ protected void removeModuleDependency() throws ExecutionException { >+ >+ // create IVirtualComponents for the dependent and the refactored project >+ final IVirtualComponent dependentComp = referencingModuleProjectComp; >+ final IVirtualComponent refactoredComp = projectToRemoveComp; >+ final IProgressMonitor monitor = new NullProgressMonitor(); >+ // Does the dependent project have a .component reference on the refactored project? >+ final IVirtualReference ref = hadReference(); >+ final boolean webLibDep = hasWebLibDependency(ref); >+ >+ // remove the component reference on the deleted project >+ if (refactoredComp != null) { >+ removeReferencedComponents(monitor); >+ } >+ >+ // update the manifest >+ updateManifestDependency(true); >+ } >+ >+ >+ protected void updateManifestDependency(final boolean remove) throws ExecutionException { >+ final IVirtualComponent dependentComp = referencingModuleProjectComp; >+ IProject project= dependentComp.getProject(); >+ if(project.isAccessible()){ >+ final String dependentProjName = referencingModuleProject.getName(); >+ final String refactoredProjName = projectToRemove.getName(); >+ final IVirtualFile vf = dependentComp.getRootFolder().getFile(new Path(J2EEConstants.MANIFEST_URI) ); >+ final IFile manifestmf = vf.getUnderlyingFile(); >+ // adding this check for https://bugs.eclipse.org/bugs/show_bug.cgi?id=170074 >+ // (some adopters have non-jst.ear module projects that are missing manifests) >+ if (!manifestmf.exists()) { >+ return; >+ } >+ final IProgressMonitor monitor = new NullProgressMonitor(); >+ final IDataModel updateManifestDataModel = DataModelFactory.createDataModel(new UpdateManifestDataModelProvider()); >+ updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.PROJECT_NAME, dependentProjName); >+ updateManifestDataModel.setBooleanProperty(UpdateManifestDataModelProperties.MERGE, false); >+ updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.MANIFEST_FILE, manifestmf); >+ final ArchiveManifest manifest = J2EEProjectUtilities.readManifest(manifestmf); >+ String[] cp = manifest.getClassPathTokenized(); >+ List cpList = new ArrayList(); >+ String newCp = refactoredProjName + ".jar";//$NON-NLS-1$ >+ for (int i = 0; i < cp.length; i++) { >+ if (!cp[i].equals(newCp)) { >+ cpList.add(cp[i]); >+ } >+ } >+ if (!remove) { >+ cpList.add(newCp); >+ } >+ updateManifestDataModel.setProperty(UpdateManifestDataModelProperties.JAR_LIST, cpList); >+ try { >+ updateManifestDataModel.getDefaultOperation().execute(monitor, null ); >+ } catch (org.eclipse.core.commands.ExecutionException e) { >+ JavaEERefactoringPlugin.logError(e); >+ } >+ } >+ } >+ >+ protected void removeReferencedComponents(IProgressMonitor monitor) { >+ >+ if (referencingModuleProjectComp == null || !referencingModuleProjectComp.getProject().isAccessible() || referencingModuleProjectComp.isBinary()) return; >+ >+ IVirtualReference [] existingReferencesArray = cachedRefs; >+ if(existingReferencesArray == null || existingReferencesArray.length == 0){ >+ return; >+ } >+ >+ List existingReferences = new ArrayList(); >+ for(int i=0;i<existingReferencesArray.length; i++){ >+ existingReferences.add(existingReferencesArray[i]); >+ } >+ >+ List targetprojectList = new ArrayList(); >+ if (projectToRemoveComp==null ) >+ return; >+ >+ IVirtualReference ref = findMatchingReference(existingReferences, projectToRemoveComp, null); >+ //if a ref was found matching the specified deployPath, then remove it >+ if(ref != null){ >+ removeRefereneceInComponent(referencingModuleProjectComp, ref); >+ existingReferences.remove(ref); >+ //after removing the ref, check to see if it was the last ref removed to that component >+ //and if it was, then also remove the project reference >+ ref = findMatchingReference(existingReferences, projectToRemoveComp); >+ if(ref == null){ >+ IProject targetProject = projectToRemoveComp.getProject(); >+ targetprojectList.add(targetProject); >+ } >+ } >+ >+ >+ try { >+ ProjectUtilities.removeReferenceProjects(referencingModuleProjectComp.getProject(),targetprojectList); >+ } catch (CoreException e) { >+ JavaEERefactoringPlugin.logError(e); >+ } >+ >+ } >+ >+ private IVirtualReference findMatchingReference(List existingReferences, IVirtualComponent comp) { >+ return findMatchingReference(existingReferences, comp, null); >+ } >+ >+ protected void removeRefereneceInComponent(IVirtualComponent component, IVirtualReference reference) { >+ ((VirtualComponent)component.getComponent()).removeReference(reference); >+ } >+ >+ private IVirtualReference findMatchingReference(List existingReferences, IVirtualComponent comp, IPath path) { >+ for(int i=0;i<existingReferences.size(); i++){ >+ IVirtualReference ref = (IVirtualReference)existingReferences.get(i); >+ IVirtualComponent c = ref.getReferencedComponent(); >+ if(c != null && c.getName().equals(comp.getName())){ >+ if(path == null){ >+ return ref; >+ } else if(path.equals(ref.getRuntimePath())){ >+ return ref; >+ } >+ } >+ } >+ return null; >+ } >+ >+ >+ /** >+ * Does the dependent project have a .component reference on the refactored project? >+ * @return IVirtualReference or null if one didn't exist. >+ */ >+ protected IVirtualReference hadReference() { >+ final IVirtualComponent refactoredComp = projectToRemoveComp; >+ if (refactoredComp == null) { >+ return null; >+ } >+ final IVirtualReference[] refs = cachedRefs; >+ IVirtualReference ref = null; >+ for (int i = 0; i < refs.length; i++) { >+ if (refs[i].getReferencedComponent().equals(refactoredComp)) { >+ ref = refs[i]; >+ break; >+ } >+ } >+ return ref; >+ } >+ >+ /** >+ * Does the dependent project have a .project reference on the refactored project? >+ * (dynamic project refs don't count) >+ * @return True if a project reference exists. >+ */ >+ protected boolean hadProjectReference() { >+ try { >+ final IProject[] refs = referencingModuleProject.getDescription().getReferencedProjects(); >+ final IProject refactoredProject= projectToRemove; >+ for (int i = 0; i < refs.length; i++) { >+ if (refs[i].equals(refactoredProject)) { >+ return true; >+ } >+ } >+ } catch (CoreException ce) { >+ JavaEERefactoringPlugin.logError(ce); >+ } >+ return false; >+ } >+ >+ /** >+ * Returns true if the dependency was a web library dependency. >+ * @param ref >+ * @return >+ */ >+ protected static boolean hasWebLibDependency(final IVirtualReference ref) { >+ if (ref == null) { >+ return false; >+ } >+ return ref.getRuntimePath().equals(new Path("/WEB-INF/lib")); //$NON-NLS-1$ >+ } >+ >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEntityBeanChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEntityBeanChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEntityBeanChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEntityBeanChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,58 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.OperationCanceledException; >+import org.eclipse.jst.javaee.ejb.EJBJar; >+import org.eclipse.jst.javaee.ejb.EnterpriseBeans; >+import org.eclipse.jst.javaee.ejb.EntityBean; >+import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+import org.eclipse.osgi.util.NLS; >+ >+ >+public class DeleteEntityBeanChange extends Change { >+ >+ EntityBean eBean = null; >+ EJBJar ejbJar = null; >+ >+ public DeleteEntityBeanChange(EJBJar jar, EntityBean eb){ >+ eBean = eb; >+ ejbJar = jar; >+ } >+ >+ public Object getModifiedElement() { >+ return null; >+ } >+ >+ public String getName() { >+ String name = NLS.bind( >+ RefactoringResourceHandler.Delete_EB_From_DD, new Object[] { eBean.getEjbClass() }); >+ return name; >+ } >+ >+ @Override >+ public void initializeValidationData(IProgressMonitor pm) { >+ } >+ >+ @Override >+ public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, >+ OperationCanceledException { >+ return null; >+ } >+ >+ @Override >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ deleteEnterpriseBean(); >+ return null; >+ } >+ >+ protected void deleteEnterpriseBean() { >+ if (ejbJar != null) { >+ EnterpriseBeans ebs = ejbJar.getEnterpriseBeans(); >+ ebs.getEntityBeans().remove(eBean); >+ ejbJar.setEnterpriseBeans(ebs); >+ } >+ } >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEJBClientProjectChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEJBClientProjectChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEJBClientProjectChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteEJBClientProjectChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange; >+ >+public class DeleteEJBClientProjectChange extends DeleteResourceChange { >+ >+ IProject ejbClientProject = null; >+ >+ public DeleteEJBClientProjectChange(IPath resourcePath, boolean forceOutOfSync, boolean forceDelete) { >+ super(resourcePath, forceOutOfSync, forceDelete); >+ } >+ >+ public DeleteEJBClientProjectChange(IProject clientProj, boolean forceOutOfSync, boolean forceDelete) { >+ super(clientProj.getFullPath(), forceOutOfSync, forceDelete); >+ ejbClientProject = clientProj; >+ } >+ >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ if(!ejbClientProject.isAccessible()) >+ return null; >+ return super.perform(pm); >+ } >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteJavaEEResourceChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteJavaEEResourceChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteJavaEEResourceChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteJavaEEResourceChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import org.eclipse.core.resources.ResourcesPlugin; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.resource.DeleteResourceChange; >+ >+public class DeleteJavaEEResourceChange extends DeleteResourceChange { >+ >+ IPath currentResourcePath = null; >+ public DeleteJavaEEResourceChange(IPath resourcePath, boolean forceOutOfSync) { >+ super(resourcePath, forceOutOfSync); >+ } >+ >+ public DeleteJavaEEResourceChange(IPath resourcePath, boolean forceOutOfSync, boolean deleteContent) { >+ super(resourcePath, forceOutOfSync, deleteContent); >+ currentResourcePath = resourcePath; >+ } >+ >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ >+ if(ResourcesPlugin.getWorkspace().getRoot().findMember(currentResourcePath) == null || !(ResourcesPlugin.getWorkspace().getRoot().findMember(currentResourcePath).isAccessible())) >+ return null; >+ return super.perform(pm); >+ } >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/descriptor/EARReferenceRemoveDescriptor.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/descriptor/EARReferenceRemoveDescriptor.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/descriptor/EARReferenceRemoveDescriptor.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/descriptor/EARReferenceRemoveDescriptor.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,28 @@ >+package org.eclipse.jst.javaee.ltk.core.descriptor; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.ltk.core.refactoring.Refactoring; >+import org.eclipse.ltk.core.refactoring.RefactoringDescriptor; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+ >+public class EARReferenceRemoveDescriptor extends RefactoringDescriptor { >+ >+ public EARReferenceRemoveDescriptor(){ >+ super (null, null, null, null, -1); >+ } >+ protected EARReferenceRemoveDescriptor(String id, String project, >+ String description, String comment, int flags) { >+ super(id, project, description, comment, flags); >+ // TODO Auto-generated constructor stub >+ } >+ >+ @Override >+ public Refactoring createRefactoring(RefactoringStatus status) >+ throws CoreException { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ >+ >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/EARReferenceRemoveChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/EARReferenceRemoveChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/EARReferenceRemoveChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/EARReferenceRemoveChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,183 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import java.util.ArrayList; >+import java.util.List; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.core.runtime.OperationCanceledException; >+import org.eclipse.jem.util.emf.workbench.ProjectUtilities; >+import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater; >+import org.eclipse.jst.j2ee.model.IEARModelProvider; >+import org.eclipse.jst.j2ee.model.ModelProviderManager; >+import org.eclipse.jst.javaee.ltk.core.JavaEERefactoringPlugin; >+import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler; >+import org.eclipse.jst.jee.application.ICommonApplication; >+import org.eclipse.jst.jee.application.ICommonModule; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.ChangeDescriptor; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+import org.eclipse.osgi.util.NLS; >+import org.eclipse.wst.common.componentcore.ComponentCore; >+import org.eclipse.wst.common.componentcore.internal.resources.VirtualComponent; >+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; >+import org.eclipse.wst.common.componentcore.resources.IVirtualFile; >+import org.eclipse.wst.common.componentcore.resources.IVirtualReference; >+ >+ >+public class EARReferenceRemoveChange extends Change { >+ >+ >+ public EARReferenceRemoveChange(IProject referencingEARProject, IProject projectToRemove) { >+ super(); >+ this.referencingEARProject = referencingEARProject; >+ this.projectToRemove = projectToRemove; >+ this.referencingEARProjectComp = ComponentCore.createComponent(referencingEARProject); >+ cachedRefs = referencingEARProjectComp.getReferences(); >+ this.projectToRemoveComp = ComponentCore.createComponent(projectToRemove); >+ earModel = (IEARModelProvider)ModelProviderManager.getModelProvider(referencingEARProject); >+ moduleURI = earModel.getModuleURI(projectToRemoveComp); >+ } >+ >+ IProject referencingEARProject = null; >+ IVirtualComponent referencingEARProjectComp = null; >+ IProject projectToRemove = null; >+ IVirtualComponent projectToRemoveComp = null; >+ IVirtualReference[] cachedRefs = null; >+ IEARModelProvider earModel = null; >+ String moduleURI = null; >+ @Override >+ public Object getModifiedElement() { >+ return null; >+ } >+ >+ @Override >+ public String getName() { >+ String name = NLS.bind( RefactoringResourceHandler.Remove_JavaEE_References, >+ new Object[] {projectToRemove.getName()}); >+ name += referencingEARProject.getName(); >+ return name; >+ } >+ >+ @Override >+ public void initializeValidationData(IProgressMonitor pm) { >+ } >+ >+ @Override >+ public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, >+ OperationCanceledException { >+ return null; >+ } >+ >+ @Override >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ updateEARDD(); >+ removeReferencedComponents(pm); >+ return null; >+ } >+ >+ public ChangeDescriptor getDescriptor() { >+ return null; >+ } >+ >+ private void updateEARDD() { >+ if (!referencingEARProject.isAccessible()) >+ return; >+ J2EEComponentClasspathUpdater.getInstance().queueUpdateEAR(referencingEARProject); >+ >+ earModel.modify(new Runnable() { >+ public void run() { >+ ICommonApplication application = (ICommonApplication)earModel.getModelObject(); >+ if (application == null) >+ return; >+ IVirtualComponent moduleComponent = projectToRemoveComp.getComponent(); >+ if(!moduleComponent.isBinary()){ >+ J2EEComponentClasspathUpdater.getInstance().queueUpdateModule(moduleComponent.getProject()); >+ } >+ >+ removeModule(application, moduleURI); >+ IVirtualFile vFile = referencingEARProjectComp.getRootFolder().getFile(moduleURI); >+ IFile iFile = vFile.getUnderlyingFile(); >+ if(iFile.exists()){ >+ try { >+ iFile.delete(true, new NullProgressMonitor()); >+ } catch (CoreException e) { >+ JavaEERefactoringPlugin.logError(e); >+ } >+ } >+ >+ } >+ }, null); >+ } >+ >+ protected void removeModule(ICommonApplication application, String moduleURI) { >+ ICommonModule module = application.getFirstEARModule(moduleURI); >+ application.getEARModules().remove(module); >+ } >+ >+ protected void removeReferencedComponents(IProgressMonitor monitor) { >+ >+ if (referencingEARProjectComp == null || !referencingEARProjectComp.getProject().isAccessible() || referencingEARProjectComp.isBinary()) return; >+ >+ IVirtualReference [] existingReferencesArray = cachedRefs; >+ if(existingReferencesArray == null || existingReferencesArray.length == 0){ >+ return; >+ } >+ List existingReferences = new ArrayList(); >+ for(int i=0;i<existingReferencesArray.length; i++){ >+ existingReferences.add(existingReferencesArray[i]); >+ } >+ List targetprojectList = new ArrayList(); >+ if (projectToRemoveComp==null ) >+ return; >+ IVirtualReference ref = findMatchingReference(existingReferences, projectToRemoveComp, null); >+ //if a ref was found matching the specified deployPath, then remove it >+ if(ref != null){ >+ removeRefereneceInComponent(referencingEARProjectComp, ref); >+ existingReferences.remove(ref); >+ //after removing the ref, check to see if it was the last ref removed to that component >+ //and if it was, then also remove the project reference >+ ref = findMatchingReference(existingReferences, projectToRemoveComp); >+ if(ref == null){ >+ IProject targetProject = projectToRemoveComp.getProject(); >+ targetprojectList.add(targetProject); >+ } >+ } >+ >+ try { >+ ProjectUtilities.removeReferenceProjects(referencingEARProjectComp.getProject(),targetprojectList); >+ } catch (CoreException e) { >+ JavaEERefactoringPlugin.logError(e); >+ } >+ >+ } >+ >+ private IVirtualReference findMatchingReference(List existingReferences, IVirtualComponent comp) { >+ return findMatchingReference(existingReferences, comp, null); >+ } >+ >+ protected void removeRefereneceInComponent(IVirtualComponent component, IVirtualReference reference) { >+ ((VirtualComponent)component.getComponent()).removeReference(reference); >+ } >+ >+ private IVirtualReference findMatchingReference(List existingReferences, IVirtualComponent comp, IPath path) { >+ for(int i=0;i<existingReferences.size(); i++){ >+ IVirtualReference ref = (IVirtualReference)existingReferences.get(i); >+ IVirtualComponent c = ref.getReferencedComponent(); >+ if(c != null && c.getName().equals(comp.getName())){ >+ if(path == null){ >+ return ref; >+ } else if(path.equals(ref.getRuntimePath())){ >+ return ref; >+ } >+ } >+ } >+ return null; >+ } >+ >+ >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/nls/RefactoringResourceHandler.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/nls/RefactoringResourceHandler.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/nls/RefactoringResourceHandler.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/nls/RefactoringResourceHandler.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,29 @@ >+package org.eclipse.jst.javaee.ltk.core.nls; >+/* >+ * Licensed Material - Property of IBM >+ * (C) Copyright IBM Corp. 2001, 2002 - All Rights Reserved. >+ * US Government Users Restricted Rights - Use, duplication or disclosure >+ * restricted by GSA ADP Schedule Contract with IBM Corp. >+ */ >+ >+import org.eclipse.osgi.util.NLS; >+ >+public class RefactoringResourceHandler extends NLS { >+ >+ private static final String BUNDLE_NAME = "refactoring";//$NON-NLS-1$ >+ >+ public static String Delete_EB_From_DD; >+ public static String Delete_MDB_From_DD; >+ public static String Delete_SB_From_DD; >+ public static String Remove_JavaEE_References; >+ public static String JavaEE_Refactorings_Participant_title; >+ >+ >+ private RefactoringResourceHandler() { >+ // Do not instantiate >+ } >+ >+ static { >+ NLS.initializeMessages(BUNDLE_NAME, RefactoringResourceHandler.class); >+ } >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteMDBChange.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteMDBChange.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteMDBChange.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/change/DeleteMDBChange.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,62 @@ >+package org.eclipse.jst.javaee.ltk.core.change; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.OperationCanceledException; >+import org.eclipse.jst.javaee.ejb.EJBJar; >+import org.eclipse.jst.javaee.ejb.EnterpriseBeans; >+import org.eclipse.jst.javaee.ejb.MessageDrivenBean; >+import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+import org.eclipse.osgi.util.NLS; >+ >+ >+public class DeleteMDBChange extends Change { >+ >+ MessageDrivenBean mBean = null; >+ EJBJar ejbJar = null; >+ public DeleteMDBChange(EJBJar jar, MessageDrivenBean mdb){ >+ mBean = mdb; >+ ejbJar = jar; >+ >+ } >+ @Override >+ public Object getModifiedElement() { >+ return null; >+ } >+ >+ @Override >+ public String getName() { >+ String name = NLS.bind( >+ RefactoringResourceHandler.Delete_MDB_From_DD, >+ new Object[] { mBean.getEjbClass() }); >+ return name; >+ } >+ >+ @Override >+ public void initializeValidationData(IProgressMonitor pm) { >+ } >+ >+ @Override >+ public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException, >+ OperationCanceledException { >+ return null; >+ } >+ >+ @Override >+ public Change perform(IProgressMonitor pm) throws CoreException { >+ deleteEnterpriseBean(); >+ return null; >+ } >+ >+ >+ protected void deleteEnterpriseBean() { >+ if (ejbJar != null) { >+ EnterpriseBeans ebs = ejbJar.getEnterpriseBeans(); >+ ebs.getMessageDrivenBeans().remove(mBean); >+ ejbJar.setEnterpriseBeans(ebs); >+ } >+ } >+ >+} >Index: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/participant/JavaEERefactoringParticipant.java >=================================================================== >RCS file: ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/participant/JavaEERefactoringParticipant.java >diff -N ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/participant/JavaEERefactoringParticipant.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ltkbasedrefactoring/org/eclipse/jst/javaee/ltk/core/participant/JavaEERefactoringParticipant.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,120 @@ >+package org.eclipse.jst.javaee.ltk.core.participant; >+ >+import java.util.Set; >+ >+import org.eclipse.core.resources.IProject; >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.OperationCanceledException; >+import org.eclipse.jst.j2ee.ejb.componentcore.util.EJBArtifactEdit; >+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; >+import org.eclipse.jst.javaee.ltk.core.change.DeleteEJBClientProjectChange; >+import org.eclipse.jst.javaee.ltk.core.change.EARReferenceRemoveChange; >+import org.eclipse.jst.javaee.ltk.core.change.NonEARModuleReferenceRemoveChange; >+import org.eclipse.jst.javaee.ltk.core.nls.RefactoringResourceHandler; >+import org.eclipse.ltk.core.refactoring.Change; >+import org.eclipse.ltk.core.refactoring.CompositeChange; >+import org.eclipse.ltk.core.refactoring.RefactoringStatus; >+import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext; >+import org.eclipse.ltk.core.refactoring.participants.DeleteParticipant; >+import org.eclipse.osgi.util.NLS; >+import org.eclipse.wst.common.componentcore.internal.builder.IDependencyGraph; >+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; >+ >+ >+public class JavaEERefactoringParticipant extends DeleteParticipant { >+ >+ private IProject projectToDelete = null; >+ private IProject ejbClientProject = null; >+ @Override >+ public RefactoringStatus checkConditions(IProgressMonitor pm, >+ CheckConditionsContext context) throws OperationCanceledException { >+ >+ return new RefactoringStatus(); >+ } >+ >+ @Override >+ public Change createChange(IProgressMonitor pm) throws CoreException, >+ OperationCanceledException { >+ >+ CompositeChange result= null; >+ result = createChangeObjects(result,projectToDelete); >+ >+ if(ejbClientProject != null){ >+ >+ result = createChangeObjects (result, ejbClientProject); >+ DeleteEJBClientProjectChange dc= new DeleteEJBClientProjectChange(ejbClientProject, true, true); >+ result.add(dc); >+ } >+ >+ return result; >+ } >+ >+ >+ private CompositeChange createChangeObjects(CompositeChange compositeChange, IProject projectToBeDeleted){ >+ Set<IProject> referencingComponents = IDependencyGraph.INSTANCE.getReferencingComponents(projectToBeDeleted); >+ IProject[] dependentProjectList = (IProject[]) referencingComponents.toArray(new IProject[referencingComponents.size()]); >+ >+ if (dependentProjectList.length > 0){ >+ if(compositeChange == null){ >+ compositeChange = new CompositeChange(getName()); >+ } >+ >+ for (int i = 0; i < dependentProjectList.length; i++){ >+ IProject dependentProject = dependentProjectList[i]; >+ if(JavaEEProjectUtilities.isEARProject(dependentProjectList[i])){ >+ EARReferenceRemoveChange ec = new EARReferenceRemoveChange(dependentProject, projectToBeDeleted); >+ compositeChange.add(ec); >+ }else{ >+ NonEARModuleReferenceRemoveChange nc = new NonEARModuleReferenceRemoveChange(dependentProject, projectToBeDeleted); >+ compositeChange.add(nc); >+ } >+ } >+ } >+ >+ return compositeChange; >+ } >+ >+ >+ private IProject getClientProject(IProject ejbProject) { >+ >+ if( ejbProject.exists() && ejbProject.isAccessible()){ >+ EJBArtifactEdit edit = null; >+ try { >+ edit = EJBArtifactEdit.getEJBArtifactEditForRead( ejbProject ); >+ if (edit != null){ >+ IVirtualComponent clientComp = edit.getEJBClientJarModule(); >+ if( clientComp != null ){ >+ return clientComp.getProject(); >+ } >+ } >+ } finally { >+ if(edit != null) >+ edit.dispose(); >+ } >+ } >+ return null; >+ } >+ >+ >+ @Override >+ public String getName() { >+ >+ String name = NLS.bind( >+ RefactoringResourceHandler.JavaEE_Refactorings_Participant_title, >+ new Object[] { projectToDelete.getName() }); >+ return name; >+ } >+ >+ @Override >+ protected boolean initialize(Object element) { >+ if(!(element instanceof IProject)) >+ return false; >+ projectToDelete = (IProject) element; >+ if(JavaEEProjectUtilities.isEJBProject(projectToDelete)){ >+ ejbClientProject = getClientProject(projectToDelete); >+ } >+ return true; >+ } >+ >+} >Index: property_files/refactoring.properties >=================================================================== >RCS file: property_files/refactoring.properties >diff -N property_files/refactoring.properties >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ property_files/refactoring.properties 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+Delete_EB_From_DD=Delete Entity Bean ( {0} ) from DD >+Delete_MDB_From_DD=Delete Message Driven Bean ( {0} ) from DD >+Delete_SB_From_DD=Delete Session Bean ( {0} ) from DD >+Remove_JavaEE_References=Remove Java EE References to {0} in >+JavaEE_Refactorings_Participant_title=Java EE Refactorings for {0}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 260459
:
122018
|
122566
|
122974