public void run(IAction action) { J2EEComponentClasspathUpdater.getInstance().forceUpdate(projectsList); }
public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { try { J2EEComponentClasspathUpdater.getInstance().pauseUpdates(); updateEARDD(monitor); super.execute(monitor, info); return OK_STATUS; } finally { J2EEComponentClasspathUpdater.getInstance().resumeUpdates(); } }
private static void init() { if (instance == null) { instance = new J2EEComponentClasspathUpdater(); } }
/** * Constructor for JARDependencyPropertiesControl */ public JARDependencyPropertiesPage(final IProject project, final J2EEDependenciesPage page) { super(); J2EEComponentClasspathUpdater.getInstance().pauseUpdates(); this.project = project; this.propPage = page; this.display = propPage.getShell().getDisplay(); }
public void resourceChanged(IResourceChangeEvent event) { boolean scheduleJob = false; try { pauseUpdates(); switch (event.getType()){ case IResourceChangeEvent.PRE_CLOSE: comp = refs[j].getReferencedComponent(); if (!comp.isBinary()) { queueUpdateModule(comp.getProject()); IProject[] earProjects = J2EEProjectUtilities.getReferencingEARProjects((IProject)resource); for(int i=0; i<earProjects.length; i++){ queueUpdateEAR(earProjects[i]); forgetProject((IProject)resource); event.getDelta().accept(this); IResourceDelta[] d = event.getDelta().getAffectedChildren(); findNode(d); resumeUpdates(scheduleJob);
public IStatus execute(IProgressMonitor monitor, IAdaptable anInfo) throws ExecutionException { try { J2EEComponentClasspathUpdater.getInstance().pauseUpdates(); this.info = anInfo; moduleFile = (Archive) model.getProperty(IJ2EEComponentImportDataModelProperties.FILE); archiveWrapper = (ArchiveWrapper)model.getProperty(IJ2EEComponentImportDataModelProperties.ARCHIVE_WRAPPER); monitor.beginTask(ProjectSupportResourceHandler.getString(ProjectSupportResourceHandler.Importing_archive, new Object [] { archiveWrapper.getPath() }), computeTotalWork()); doExecute(monitor); return OK_STATUS; } finally { try { if (virtualComponent != null) { J2EEComponentClasspathUpdater.getInstance().queueUpdate(virtualComponent.getProject()); } } finally { J2EEComponentClasspathUpdater.getInstance().resumeUpdates(); model.dispose(); monitor.done(); } } }
IVirtualFolder rootFolder = comp.getRootFolder(); if (comp instanceof EARVirtualComponent) { return isRootAncester(resource, rootFolder); } else { // J2EEModuleVirtualComponent return isRootAncester(resource, rootFolder) || isFolder(resource, rootFolder.getFolder(J2EEConstants.META_INF)); String name = resource.getName(); if (name.equals(WTPModulesResourceFactory.WTP_MODULES_SHORT_NAME) || name.equals(ProjectUtilities.DOT_CLASSPATH)) { queueUpdate(resource.getProject()); } else if (name.equals(J2EEConstants.MANIFEST_SHORT_NAME)) { // MANIFEST.MF must be all caps per spec IFile manifestFile = J2EEProjectUtilities.getManifestFile(resource.getProject(), false); if (null == manifestFile || resource.equals(manifestFile)) { queueUpdateModule(resource.getProject()); } else if (endsWithIgnoreCase(name, IModuleExtensions.DOT_JAR)) { try { if (FacetedProjectFramework.hasProjectFacet(resource.getProject(), J2EEProjectUtilities.ENTERPRISE_APPLICATION)) { IVirtualComponent comp = ComponentCore.createComponent(resource.getProject()); if(isFolder(resource.getParent(), comp.getRootFolder())){ queueUpdateEAR(resource.getProject());
private IStatus removeModulesFromEAR(IProgressMonitor monitor) { IStatus stat = OK_STATUS; if( earComponent != null && j2eeComponentList != null){ List list = getComponentsToRemove(); if( !list.isEmpty()){ try { // retrieve all dependencies on these components within the scope of the EAR Map dependentComps = getEARModuleDependencies(earComponent, list); // remove the components from the EAR IDataModelOperation op = removeComponentFromEAROperation(earComponent, list); op.execute(null, null); // if that succeeded, remove all EAR-scope J2EE dependencies on these components J2EEComponentClasspathUpdater.getInstance().queueUpdateEAR(earComponent.getProject()); removeEARComponentDependencies(dependentComps); } catch (ExecutionException e) { Logger.getLogger().log(e); } } } return stat; }
public void dispose() { isDisposed = true; JavaCore.removeElementChangedListener(this); J2EEComponentClasspathUpdater.getInstance().resumeUpdates(); if (model.earArtifactEdit != null) { model.earArtifactEdit.dispose(); model.earArtifactEdit = null; } }
pauseUpdates(); Iterator iterator = projects.iterator(); while(iterator.hasNext()){ queueUpdate((IProject)iterator.next());
private static void writeManifest(IProject aProject, IFile aFile, ArchiveManifest manifest) throws java.io.IOException { if (aFile != null) { if(SimpleValidateEdit.validateEdit(new IFile[] { aFile })){ OutputStream out = new WorkbenchByteArrayOutputStream(aFile); manifest.writeSplittingClasspath(out); out.close(); J2EEComponentClasspathUpdater.getInstance().queueUpdateModule(aProject); } } }
if (facetid.length() == 0) addFacets(project); J2EEComponentClasspathUpdater.getInstance().queueUpdate(project);
public void queueUpdate(IProject project) { if (J2EEProjectUtilities.isEARProject(project)) { queueUpdateEAR(project); } else if (J2EEProjectUtilities.isApplicationClientProject(project) || J2EEProjectUtilities.isEJBProject(project) || J2EEProjectUtilities.isDynamicWebProject(project) || J2EEProjectUtilities.isJCAProject(project) || J2EEProjectUtilities.isUtilityProject(project)) { queueUpdateModule(project); } }
public void stop(BundleContext context) throws Exception { super.stop(context); ResourcesPlugin.getWorkspace().removeResourceChangeListener(J2EEComponentClasspathUpdater.getInstance()); try { org.eclipse.core.runtime.Platform.getJobManager().join( J2EEElementChangedListener.PROJECT_COMPONENT_UPDATE_JOB_FAMILY, new NullProgressMonitor() ); } catch (OperationCanceledException e) { Logger.getLogger().logError(e.getMessage()); } catch (InterruptedException e) { Logger.getLogger().logError(e.getMessage()); } }
public void forceUpdate(Collection projects){ forceUpdate(projects, true); }
public void resumeUpdates() { resumeUpdates(true); }
public boolean findNode(IResourceDelta[] delta) { for (int i = 0; i < delta.length; i++) { if (delta[i].toString().indexOf(IJ2EEModuleConstants.COMPONENT_FILE_NAME) != -1) { StructureEdit core = StructureEdit .getStructureEditForRead(delta[i].getResource() .getProject()); if(null != core){ WorkbenchComponent component = core.getComponent(); if(component != null){ clearResourceTreeRootCache(component); } } } else { findNode(delta[i].getAffectedChildren()); } } return true; }
public boolean isDynamicComponent(IVirtualFile vFile){ String archiveName = vFile.getName(); for(int j = 0; j<EXTENSIONS_TO_IGNORE.length; j++){ if(J2EEComponentClasspathUpdater.endsWithIgnoreCase(archiveName, EXTENSIONS_TO_IGNORE[j])){ return true; } } return false; }
if (!comp.getProject().isAccessible()) return; J2EEComponentClasspathUpdater.getInstance().queueUpdateEAR(comp.getProject()); IEARModelProvider earModel = (IEARModelProvider)ModelProviderManager.getModelProvider(comp.getProject()); earModel.modify(new Runnable() {
public void run() { IEARModelProvider anotherEARModel = (IEARModelProvider)ModelProviderManager.getModelProvider(comp.getProject()); ICommonApplication application = (ICommonApplication)anotherEARModel.getModelObject(); if (application == null) return; List list = (List) model.getProperty(ICreateReferenceComponentsDataModelProperties.TARGET_COMPONENT_LIST); if (list != null && list.size() > 0) { for (int i = 0; i < list.size(); i++) { IVirtualComponent wc = (IVirtualComponent) list.get(i); IVirtualComponent moduleComponent = wc.getComponent(); if(!moduleComponent.isBinary()){ J2EEComponentClasspathUpdater.getInstance().queueUpdateModule(moduleComponent.getProject()); } String moduleURI = getModuleURI(anotherEARModel, wc); removeModule(application, moduleURI); IVirtualFile vFile = comp.getRootFolder().getFile(moduleURI); IFile iFile = vFile.getUnderlyingFile(); if(iFile.exists()){ try { iFile.delete(true, monitor); } catch (CoreException e) { e.printStackTrace(); } } } } } }, null);