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

Reply via email to