Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[wtp-dev] RE: Request for Feedback for ModuleCore/Flex Project API


First, I applaud you for thinking of the end users of the API and attempting to abstract them away from any knowledge of EMF. EMF was chosen as an appropriate and expedient implementation technology for the framework at this point in time, however, the impacts of its selection should certainly not percolate upward into the API layer simply because it might prove beneficial to swap out the underlying implementation for a new one in the future. Naturally, such a technology upgrade cannot be API-affecting.

So, I strongly believe an abstraction layer like the one you're proposing is certainly mandated. From your description, I like the IResource-based implementation because it explains the problem domain well and is immediately understandable by all Eclipse developers. My only initial concerns are these: 1) Does the IResource-based mapping truly cover all edge cases in the flexible project domain, and 2) Will the platform team support such an implementation. However, you seem to have both of these concerns already identified and are working to address them so I'll simply give you my support, and encourage you to let us know what you determine.

Best regards,
Todd E. Williams
VP - Technology
Genuitec, LLC
Office: 972-691-5717
Cell: 817-247-2034

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
Ext: (919) 543-8356
T/L: 441-8356

Back to the top