[jbosscache-dev] Let's make 3.0 backwards compatible
Brian Stansberry
brian.stansberry at redhat.com
Tue Aug 19 15:06:08 EDT 2008
Manik Surtani wrote:
>
> On 19 Aug 2008, at 16:49, Brian Stansberry wrote:
>
>> Jason T. Greene wrote:
>>> Manik Surtani wrote:
>>>>
>>>> On 19 Aug 2008, at 06:53, Bela Ban wrote:
>>>>
>>>>> First of all: I don't think there's a need to make 1.x compatible
>>>>> with 2.x and/or 3.x. The need is there to make 2.x compatible with
>>>>> 3.x.
>>>>
>>>> I don't know about that. There are still a lot of people who are on
>>>> AS 4.x and who won't switch to AS 5.0 for a while to come. Which
>>>> means they will be stuck on 1.x APIs. See the forum link that
>>>> sparked off this thread
>>> Thinking about the 4.x problem, API BC is just part of the problem.
>>> Behavioral differences in use by the AS clustering code and hibernate
>>> (i.e. AS4 clustering was not written for 3.x), as well as dependency
>>> differences (1.4.x uses a different jgroups).
>>
>> True enough. If the API BC issue were solved it's likely that 2.x at
>> least would work fine, but it would be completely untested.
>
> ... with the exception of the unit test suite, I suppose. This would be
> so in the case of the community version, but then again, that is the
> status of all JBoss.org projects. If it is ever used in an EAP, it
> *would* be tested as a part of the EAP productization process, correct?
>
I meant untested in the sense that no one is going to test it formally.
JBC 2.x or 3.x are never going to go in a formal AS 4.x or EAP 4.x
release. Well, never say never, but the 4.x branches are in bug-fix
mode. Perhaps someday JBoss will want to create a release that's more
than that, but I highly doubt it.
>>> The root of the problem here is that the AS is exposing it's
>>> internally used APIs, and thereby forcing them on users. If this was
>>> not the case (as it is on other container environments), then users
>>> could happily deploy JBC 3 on AS4.2, and still use EJB/HTTP clustering
>>> The SPI that Brian is planning helps, but it requires that the user
>>> change the AS clustering implementation, just to change the version
>>> of JBC he/she is using. This could impact other components that share
>>> deps (JBoss Messaging).
>>> The easiest way to fix this problem, which is done by everyone else,
>>> is to put all of the classes used by AS internally under a new
>>> namespace (package). It could also be done via a special classloader
>>> design, although that would be a massive change, since everyone uses
>>> the context loader for everything.
>>
>> This is one of the main things I want to talk about when we have our
>> AS meeting in Neuchatel the week before the Brno meeting. The AS needs
>> a general solution to this problem.
>
> Jarjar. :-) I really think it would work. It would make upgrading
> individual jars hard and may bloat the overall download size a bit, bit
> it nicely isolates things such that different subsystems may be tied to
> different versions of dependent libraries. Actually, upgrading needn't
> be that hard - e.g., all clustering code could be encapsulated in a
> single jboss-as-clustering-5.0.jar which includes jarjar'd versions of
> JBC, JGroups, other deps, as well as AS Clustering classes. Upgrading
> could involve a new jboss-as-clustering-5.1.jar which may include a new
> release of JBC, etc., without affecting other JBC users, whether they be
> end user apps or other subsystems.
>
We'll discuss this in Neuchatel. This kind of thing requires buy-in
from several projects, e.g. the hibernate integration is part of
Hibernate; the SFSB integration is part of EJB3. Both of which are meant
to work outside the AS (Hibernate for sure; EJB3 in as-yet-unrealized
theory.)
> Now this is slightly trickier in the JGroups case since the AS uses a
> shared transport, but as long as all components use compatible versions
> of JGroups then we're ok.
>
> Perhaps an alternative around OSGi style classloaders could be used
> instead, but IMO that makes things more troublesome and brittle.
>
>>
> Cheers,
> --
> Manik Surtani
> Lead, JBoss Cache
> manik at jboss.org
>
>
>
>
--
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry at redhat.com
More information about the jbosscache-dev
mailing list