Skip to main content

[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

It's important to be aware that with the Platform 3.1 API freeze next week, there will be no platform support in the way of abstract base classes for IResource in that time frame.  This means that it won't be practical to implement or extend IResource in any plug-in based on version 3.1 of the platform.  These interfaces can and frequently do have methods added, which would break any implementors outside the platform.  

Furthermore, from the experience of seeing several parties attempt to abstract basic function from IResource, it is very difficult to define such an abstract layer in a way that satisfies a sufficiently broad group of clients for it to be worthwhile.  Every degree of new flexibility afforded to implementors of IResource amounts to a new degree of pain or uncertainty for clients using IResource that want to make assumptions about their location and behaviour. For example, clients of your implementation of IResource would be broken if they called IContainer.getLocation().toFile(), and discovered that the contents on disk don't match what IContainer.members() tells them should be there.

Having said that, the goal of abstracting away the complexity of your implementation from clients sounds good.  Every implementation detail you can hide from your clients improves your ability to make changes in the future - clearly an important consideration for version 1.0 of the web tools platform.  However, IResource doesn't look like the right abstraction to hide behind at this point.

Back to the top