proposing the depreciation of java.beans.beancontext.*

Laurence Cable larry.cable at oracle.com
Thu Sep 21 23:48:52 UTC 2023


Hi Phillip, inline ...

On 9/21/23 4:16 PM, Philip Race wrote:
> Hi Larry,
>
> Deprecation happens either because there is a preferred replacement or 
> because something
> is dangerous or obsolete. This is a slightly blurred case, since it 
> seems to be obsoleted by
> a preferred pattern that doesn't involve a JDK replacement API.
>
> I guess the first question I have is do you mean just "deprecate" and 
> provide pointers, or
> do you mean "deprecate for removal". The latter needs more 
> consideration, like

I mean the latter - eventual removal, return some bytes for better usage 
since its my opinion beancontext is long past being obsolete... its 
pretty much only of historical/archeological interest at this point in 
time! :)

>
> (1) Is any actively supported software still using this ?

I intend to perform some corpus searches to determine this (to the 
degree possible)

> (2) How hard would it be for them to migrate to something else ? And 
> how reasonable is it to expect them to do so?

I would anticipate that any code written after the onset of Spring, 
Guice etc would have already abandoned beancontext!

> (3) What's the ripple effect in the JDK ? Does it impact the 
> java.beans package too in some ways ?

AFIAK/recall the beancontext and beans pkgs are effectively independent 
of each other ... at least in the dependency 'direction' of beans -> 
beancontext.

I do not recall any other packages (e.g awt) using it, but a search of 
the JDK will confirm this.

beancontext did not really gain any significant adoption that I was 
aware of, once DI/IoT became the de facto model for component/bean 
assembly with Spring and that percolated down into SE from EE,
along with OSGi (which also had overlap in the area of service/interface 
brokerage)

Rgds

- Larry

>
> -phil.
>
>
> On 9/20/23 5:18 PM, Laurence Cable wrote:
>> The BeanContext.* package was added (by me) quite early in the 
>> lifetime of java beans (1.2); based loosely on some of the concepts 
>> of the opendoc component framework,
>> it was intended to provide a "container" for JavaBeans components to 
>> collaborate with each other by exposing both their presence (within a 
>> context)
>> and to provide/consume 'services' expressed as interfaces.
>>
>> (we even demoed this functionality in the "beanbox" for those that 
>> recall that)
>>
>> This package pre-dated the invention/discovery of Inversion of 
>> Control and (annotation based) Dependency Injection by a good number 
>> of years; and as those latter design patterns
>> and their implementations became popular, Bean Context did not 
>> evolve, and I would argue, became rapidly irrelevant if not actually 
>> an anti-pattern!
>>
>> Now some 25 yrs later, it is probably beyond definition as an 
>> anachronism and long overdue to be depreciated from the JDK.
>>
>> Therefore I would like to propose doing so, and open the discussion 
>> regarding this here.
>>
>> Regards
>>
>> - Larry
>



More information about the client-libs-dev mailing list