On Fri, May 13, 2005 at 03:42:58PM -0700, Jeremy Boynes wrote:
> Aaron Mulder wrote:
> >On Fri, 13 May 2005, Jeremy Boynes wrote:
> >
> >>Because we do not maintain API or serialization compatibility.
> >
> >
> >     Okay, that makes sense.  I guess it's the serialized configuration
> >information that's a problem?  
> >[...]
>
> The lack of compatibility, however, is a problem in general as it means 
> you need to redeploy everything for each new version of Geronimo.
> 
[...]
> 
> Solving the compatibility problem will require the developers to pay 
> attention to versioning. We will need to require that at some point though.

Paying attention is an understatement.  In order to serialize data to and from 
class definitions, those classes cannot change in any significant way, ever.  
No refactoring, repackaging, reorganizing, no removing methods, no removing 
class variables.  This doesn't just apply to public APIs, but even the internal 
classes of each component.

Considering that at deploy time we are building and serializing Jetty web 
containers, Tomcat web containers, ActiveMQ queues/topics, OpenEJB ejb 
containers, Axis webservices, TranQL connectors and more, is it reasonable to 
ask or expect these projects basically not to change their code?

Clearly, projects will clean and improve their code, we can't and shouldn't try 
and stop them.  We want them to optimize and improve things.  As this change is 
going to occur, people *will* have to redeploy their apps as we support no 
other way to store configurations.

Serializing and deserializing server state for fast startup is a cool feature, 
but not something we are in any position to guarantee between releases of Axis, 
ActiveMQ, OpenEJB, Jetty, Tomcat, et. al.


-David

Reply via email to