[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| RE: [wtp-dev] Request for Feedback for ModuleCore/Flex Project API | 
Hi guys,
 
   We've begun discussing with Platform/Core what options 
are available to provide an API to solve these concerns. We are aware of other 
situations where API was exposed explicitly for a specific team (like 
IResource#setTeamPrivate()), and are curious as to whether this could be applied 
at a broader level. 
 
   We like the idea of using IResource, IContainer, IFile, 
and IFolder so that clients will be able to readily begin using flexible project 
structures within WTP. Any method which is not directly relevant to us 
(e.g. IResource.setTeamPrivate()), we would delegate the invocation to the 
underlying IResource. Remember we're really just interested in representing 
arbitrary structures in forms that J2EE-spec tooling will understand. 
 
   If we choose to go this route -- with the proper 
discussions and caveats understood, then we would prefer to extend an abstract 
class provided by Platform/Core.. 
 
   Another advantage to keep in mind is that using the 
Platform Resource API directly allows compatibility among the objects -- so that 
a developer wouldn't need continually convert from one object type to another 
just to read or write the contents of a file in the workspace. 
 
   Also, all of our structural model is highly generic, with 
no J2EE dependencies. If at some point in the future, it becomes advantages 
to push down the ability to maintain flexible structures to a lower level 
component so that other teams could take advantage of the framework, it would be 
easier if we didn't have to push down a whole new set of API to solve the same 
problem. 
 
 
-------------------------------------------------------------------------
Kind Regards,
 
Michael D. Elder
Rational Studio / J2EE Tools 
Development     
IBM RTP Lab
Ext: (919) 543-8356
T/L: 441-8356
mdelder@xxxxxxxxxx
 
 
 
Wednesday, March 23, 2005 11:22 AM
To: 
<wtp-dev@xxxxxxxxxxx>
cc: 
From: "Ed Burnette" 
<Ed.Burnette@xxxxxxx>
Subject: RE: [wtp-dev] Request for Feedback for 
ModuleCore/Flex Project API
 
CDT used to implement IResource and it caused them a lot of 
grief when Eclipse 3.0, I believe it was, changed IResource and broke their code 
at the binary level. The API restriction can't be lifted. According to jeem, 
Java interfaces should not be implemented by clients in different components, 
and this is the reason you see a lot of abstract classes in the Eclipse API now. 
Abstract classes can be extended and if a later release adds a new non-abstract 
method it won't break existing extenders. Of course you can only have single 
inheritance with classes. Adapters are often a good solution 
too.
 
  
  
Michael, 
From your description, it looks like you are proposing 
  to provide alternate implementations of IResource and it's subclasses. Is this 
  what you are intending to do? The javadoc of IResource clearly states that it 
  cannot be implemented by clients. I think you will need to define your own 
  interfaces and not make use of IResource. I guess another alternative would be 
  to push to have the API restriction changed. I can't comment of the probablity 
  of this happening at some point but I can say that it will not happen for 3.1 
  since the API freeze is next week. 
Michael