[jbosscache-dev] Let's make 3.0 backwards compatible
Brian Stansberry
brian.stansberry at redhat.com
Tue Aug 19 11:49:01 EDT 2008
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.
> 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.
> We just might not have a simple solution to deploying on 4.2, besides
> ripping out the clustering modules.
>
>> We could but that would mean some sort of package renaming or class
>> renaming (e.g., o.j.c.Cache -> o.j.c.Cache3 or o.j.c.3.Cache) and
>> o.j.c.Cache remains 2.x compatible. Either way, very ugly for anyone
>> who wants to use 3.x APIs directly.
>>
>> Specifically, interfaces that have changed include:
>>
>> - Cache
>> - Fqn
>> - EvictionConfig
>> - Region/RegionManager
>> - EvictionAlgorithm
>>
>
> IMO, we can just make this stuff BC for the 3.x release.
>
--
Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
brian.stansberry at redhat.com
More information about the jbosscache-dev
mailing list