[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [wtp-dev] ComponentCore.createComponent(IProject)


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:  cbridgha@xxxxxxxxxx
Phone: 919-254-1848 (T/L: 444)



"Ted Bashor" <tbashor@xxxxxxx>
Sent by: wtp-dev-bounces@xxxxxxxxxxx

11/13/2006 03:03 PM

Please respond to
"General discussion of project-wide or architectural issues."        <wtp-dev@xxxxxxxxxxx>

To
"General discussion of project-wide or architectural issues." <wtp-dev@xxxxxxxxxxx>
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
wtp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/wtp-dev