Hi all,

As you know, a new concept of Application will be introduced in beta 19.
This will reinforce the separation of concern between these two roles:
 - Application developer: writes domain specific and portable applications
(Java knowledge)
 - Application deployer : configures containers and deploys applications
into them (not necessarily Java knowledge : need to support XML
configuration and admin UI in the future).

For this purpose, new classes are introduced such as VirtualHost and
Application, in the org.restlet packages. An application describes itself,
its properties (name, author, root Restlet, etc.) but doesn't know in
advance its deployment context such as the IP address/port, the host name,
root URI/path, etc. All these aspects are now managed by the container via
its connectors, its virtual hosts and deployed applications.

This means that classes such as HostRouter, LogFilter and StatusFilter will
no longer need to be directly used from the com.noelios.restlet package.
BTW, they were moved into the hidden com.noelios.restlet.impl package,
sometimes renamed/refactored too. 

As a result of those changes, the old way of building a Restlet container
configuration no longer applies, and that the fluent builder package is
seriously broken. I have the feeling that even though the concept of fluent
API is really cool and powerful, it won't be as useful as before. Once the
container XML configuration and the WAR packaging will be fully supported
(most likely in beta 20), it will probably not be needed anymore. 

For now, I prefer to remove the com.noelios.restlet.builder package from
beta 19 instead of delaying the release even more in order to fix/refactor
it. Let's take time to think about whether we actually want to restore it in
beta 20 or not. If someone (I'm thinking about Lars and Yuri who co-proposed
this approach) is still attached to it after discussion, we could convert it
into an optional extension. 

I'm truly sorry for all those harsh API changes coming in beta 19. I fully
understand the pain for people with existing code base but I believe that
this final round of refactorings will give us a simpler and more powerful
Restlet 1.0 API, and will be very beneficial for the project on the middle
term. After beta 19, we'll be much more cautious about API breaking changes,
following the "@Deprecated" annotation usage proposition from Pyiush.

Any comment?

Best regards,
Jerome Louvel
--
Noelios Consulting
http://www.noelios.com
phone: (+33) 147 573 053
cellular: (+33) 685 142 112

Reply via email to