Thanks Ted, Sorry for not replying earlier...
This is not the only place where we need a policy across our api for handling workspace state. Validation/builders is another area where the project metadata might not be fully initialized because of startup, or load timing issues. In this case, perhaps a specific exception type should be created warning callers of a bad project state. This type of change is more appropriate in 2.x timeframe -Chuck Rational J2EE Tooling Team Lead IBM Software Lab - Research Triangle Park, NC Email: [EMAIL PROTECTED] Phone: 919-254-1848 (T/L: 444) "Ted Bashor" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 11/13/2006 03:03 PM Please respond to "General discussion of project-wide or architectural issues." <[email protected]> To "General discussion of project-wide or architectural issues." <[email protected]> cc Subject [wtp-dev] ComponentCore.createComponent(IProject) My understanding is that during project import (and possibly during startup), some project resources may not be available even though they exist on the machine’s file system. We suspect that this may be causing an early call to ComponentCore.createComponent() which calls into ComponentImplManager.createComponent() public IVirtualComponent createComponent(IProject project) { try { IComponentImplFactory factory = findFactoryForProject(project); if(null != factory){ return factory.createComponent(project); } } catch (Exception e) { // Just return a default component } if (!ModuleCoreNature.isFlexibleProject(project)){ return null; } return new VirtualComponent(project, new Path("/")); //$NON-NLS-1$ } to swallow a null factory or exception and return a “default VirtualComponent”, for which any web project WebContent directory mappings will be invalid, etc. My question is, what would be a preferred way to detect this situation? Calling IVirtualComponent.exists() doesn’t seem to be what we want, since it just checks that the project exists and has the module core nature. I’d hate to wrap my call to ComponentCore.createComponent() with a check for whether either “.settings/org.eclipse.wst.common.component” or “.settings/.component” (and deployment descriptors?) are synchronized, but is there no other way? Seems like createComponent (or a variant) should be returning null or propagating the exception, but I assume this isn’t an option for 1.5.x… Thanks, Ted _______________________________________________________________________ Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. _______________________________________________ wtp-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/wtp-dev
_______________________________________________ wtp-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/wtp-dev
