Vadim Gritsenko wrote:


URL interpretation

?


SourceResolver and company


It proved to be very valuable extension point

I'm not negating that, however the way it is currently implemented makes it difficult to use at times. Again there are different ways of skinning this particular cat that would be more efficient.

I do recall why we didn't try to use Java's own URL "component" framework. It really wasn't due to complexity of getting the URLStreamHandlers to communicate with Cocoon. It was due to the fact that some web containers like BEA WebLogic and IBM WebSphere preset the static instance of URLStreamHandlerFactory, making it impossible for us to override it. I don't recall if we tested extending where the URLStreamHandlers are located using the "|java.protocol.handler.pkgs" system property.

The advantage of using Java's extension mechanism here is that we would be able to use our cocoon:// URLs inside of FOP and any other library that relies on URLs. If we don't rely on components for the core of Cocoon, then we have more flexibility on improving this point.
|

It is very simplistic view of the world to declare that only P/G/T deserve to be components. I'd even go as far as claim that P/G/T are implemented by cocoon users the *least* often compared to other interfaces.


Well, as da Vinci said, "Simplicity is the ultimate sophistication". The key point of the decomponentization process is to reduce the number of extension points to the absolute practical minimum.

By being brave about what we leave out, it forces us to think differently about other aspects of the system. I'm thinking way forward here.


Just don't throw out baby in the heat of fight for simplification :)


Right. Although just because something is an extension point does not mean it has to necessarily be a component.