Contexts & Dependency Injection for Java

CDI EG meeting 12/09/2013 notes on CDI 1.2 MR

Posted by Antoine Sabot-Durand on Dec 09, 2013 | Comments

The following people assisted this meeting :

  • Pete Muir (pm)

  • Jozef Hartinger (jh)

  • Martin Kouba (mk)

  • JJ Snyder (jj)

  • Antoine Sabot-Durand (asd)

Proposed Agenda

The following agenda was proposed

  1. Issues discussion : 6 issues where proposed

  2. Back on CDI-377 (automatic JSR-330 annotation processing problematic)

Issues discussion

The discussion around the proposed ticket was quite straight forward. The result is in the table below

Jira Description Decision Note

CDI-380

Clarify SessionScoped

in MR

We should be less descriptive and like for CDI-381 add a general statement telling that other spec/extensions can change the behavior of built-in scope

CDI-372

clarify behavior of implicit bean archive

in MR

The notion of Bean Archive is introduce in Chapter 12, we should do an introduction before

CDI-320

Clarify whether ProcessAnnotatedType should be fired for annotations

in MR

According to pm it shouldn’t and we should clarify this

CDI-318

@WithAnnotations types can appear on any supertype

in MR

Mainly Javadoc correction on @WithAnnotation

CDI-280

behavior of CDI bean @Specializes session bean is undefined

in MR

could benefit some clarification

CDI-220

Clarify interceptors are not associated with the result of a producer method/field

in MR

Back on CDI-377 (automatic JSR-330 annotation processing problematic)

This issue will be fixed in implementation and the sepc will mention something about recommendation to provide default exclusion list for most framework. We still have to discuss if we introduce a jar exclusion mechanism in the spec or this will be based on existing package exclusion.

Conclusion

We finished to deal with the list of Jira tickets we planned to introduce or not in MR. As we have a little more time it was decided to re-open the list for some more on next meeting

CDI EG meeting 12/02/2013 notes on CDI 1.2 MR

Posted by Antoine Sabot-Durand on Dec 02, 2013 | Comments

The following people assisted this meeting :

  • Pete Muir (pm)

  • Mark Struberg (ms)

  • Jozef Hartinger (jh)

  • Joseph Bergmark (jb)

  • Phil Zampino (pz) (Java EE EG member)

  • JJ Snyder (jj)

  • Antoine Sabot-Durand (asd)

Proposed Agenda

The following agenda was proposed

  1. Feed back on Java EE EG conf call we had on tuesday

  2. Issues discussion : 9 issues where proposed

Feedback on Java EE EG meeting

To sum up :

  • Java EE EG is ok with our MR roadmap :

    • 16th Dec - list of issues complete

    • 6th Jan - Maintenance review starts

    • 7th March - Maintenance review ends

    • 21st March - Maintenance ballot ends

  • According to JCP rules on update, we are going for CDI 1.2 (not 1.1.1)

  • Regarding ticket CDI-370 (Expand @RequestScoped and @SessionScoped to account for WebSocket) we agree that job should be done in Websocket Spec. So asd will work with Stuart Douglas to bring this point to the Websocket EG. The direct consequence for our MR is that CDI-370 is not in and should be closed after we check that Websocket EG got the point on their side.

  • We also talk about classloader issue that were raised during CDI-377 (automatic JSR-330 annotation processing problematic). EG members agreed that it’s a good point but very difficult to resolve. It could only be solve in a major EE release.

Issues discussion

The discussion around the proposed ticket was quite straight forward. The result is in the table below

Jira Description Decision Note

CDI-405

Reword the description of @RequestScoped and @ApplicationScoped in section 2.4.1

in MR

CDI-401

Clarify the meaning of "bean class local view"

in MR

CDI-398

Clarify that an array with a variable component type or parameterized component type containing wildcards is not a valid bean type

in MR

CDI-392

Clarify when the operations of BeanManager can be called

in MR

CDI-386

Two examples in section 5.2.4 contradict the rules of the same section

in MR

CDI-382

Clarify interceptors are not associated with the result of a producer method/field

in MR

CDI-381

Additional implementations of Request Context

in MR

we should add general statement telling that extension can change the behavior of built-in scope

CDI-379

Clarify life cycle of RequestScoped

out MR

each spec should detail how they stick to built-in scope

CDI-77

Clarify what happens when the user creates a unbound recursive injection with Dependent scoped beans

out MR

Container doesn’t have to support this : the ticket should be closed

Conclusion

EG has still 8 issues to discuss (inluding CDI-377). We should close the list as planned on mid-december.

CDI EG meeting 11/25/2013 notes on CDI 1.1.1 MR

Posted by Antoine Sabot-Durand on Nov 25, 2013 | Comments

In this meeting we came back on CDI-370 : Expand @RequestScoped and @SessionScoped to account for WebSocket and added some other issues. The following people assisted this meeting :

  • Pete Muir (pm)

  • Mark Struberg (ms)

  • Jozef Hartinger (jh)

  • Joseph Bergmark (jb)

  • Arne Limburg (al)

  • Stuart Douglas (sd) (Websocket expert)

  • Phil Zampino (pz) (Java EE EG member)

  • Martin Kouba (mk)

  • JJ Snyder (jj)

  • Antoine Sabot-Durand (asd)

Proposed Agenda

The following agenda was proposed by asd

  1. Back on Websocket + RequestScoped issue : CDI-370 : Expand @RequestScoped and @SessionScoped to account for WebSocket Stuart Douglas will be our Guest Star to help us sort out if we can fix this issue on CDI side and if yes, if it’s doable in the MR timeframe

  2. If there’s time left let’s discuss the following point :

    • CDI-406 Make stereotypes bean defining annotations.

    • CDI-404 adding bean-defining annotations for Interceptor while setting bean-discovery-mode=« annotated »

    • CDI-389 Revert CDI-85

    • CDI-397 Clarify Section 6.6.3 regarding singletons

    • CDI-395 Public fields in extensions should not be allowed (also easy to decide)

Websocket case (CDI-370 : Expand @RequestScoped and @SessionScoped to account for WebSocket)

sd and pz gave their insight on the meaning of Requestscope and Sessionscope in Websocket perspective. It was roughly a synthesis of our discussion on the ML about the subject ms stressed the fact that implementing one of these solution on CDI impl side could bring performance issue. pm concluded by saying that we should check with Java EE EG if a websocket MR was planned. According to this answer we would statute on this issue

Other issues

CDI-406 Make stereotypes bean defining annotations

pm told there was no technical issue to fix this (no double scan). No one objected so the issue is added to the MR

CDI-389 Revert CDI-85

All agreed we can do the revert to CDI 1.0 regarding generic type. But pm stressed that we should have a big rework on this for CDI 2.0

CDI-397 Clarify Section 6.6.3 regarding singletons

asd told that we should go a little beyond and check all occurrences of "singleton" in the spec to clarify if it’s an singleton session bean or a singleton scope. As nobody objected the issue was added to the MR

CDI-395 Public fields in extensions should not be allowed

There was a long discussion on the subject mainly between pm, ms, al and jh. Conclusion is that it can bring more problem to correct this issue. pm suggested that we defer it. al pointed the fact that test on implementation can show that it’s not supported already. If it’s the case it could be safely added to the MR. So further investigation are needed

CDI EG meeting 11/18/2013 notes on CDI 1.1.1 MR

Posted by Antoine Sabot-Durand on Nov 18, 2013 | Comments

The goal of this 1st meeting was to organize the MR launching, and start discussing its content The following people assisted this meeting :

  • Pete Muir (pm)

  • Mark Struberg (ms)

  • Jozef Hartinger (jh)

  • Joseph Bergmark (jb)

  • Arne Limburg (al)

  • Antoine Sabot-Durand (asd)

Proposed Agenda

The following agenda was proposed by asd

  1. MR proposed roadmap

  2. Content of the proposed list

  3. Try to have a 1st decision on big tickets (tickets with great impact on implementation or spec)

    • CDI-377 : automatic JSR-330 annotation processing problematic

    • CDI-370 : Expand @RequestScoped and @SessionScoped to account for WebSocket

    • others

Proposed Roadmap

As we should run the MR in 60 days and that we cannot change its content after its start we proposed the following roadmap

  • 16th Dec - list of issues complete

  • 6th Jan - Maintenance review starts

  • 7th March - Maintenance review ends

  • 21st March - Maintenance ballot ends

This roadmap integrates the holidays constraints as well. It’ll be confirmed after the meeting pm and asd will have with the Java EE spec leads/Oracle on 11/26

Content of the proposed list

asd stressed on the fact that the long proposed list won’t probably fit in the MR but that would be nice to provide them a status. We decided to deal the most important ticket first.

list of tickets

CDI-377 : automatic JSR-330 annotation processing problematic

All the participant agreed that this ticket could be quite tricky. 2 scenario for solving it

  • Having an umbrella scanning mechanism : beyond CDI and off course the MR.pm took note of escalate this need to the JCP

  • in the meantime could investigate an exclusion in beans.xml. this solution is to be explored and if we have an agreement we could provide a fix in MR scope

CDI-370 : Expand @RequestScoped and @SessionScoped to account for WebSocket

A tricky issue as well. No one in the EG has a sufficient knowloedge of websocket sepc to statute ont in so pm propose to ask help to Matthias Wessendorf

Other tickets related to @RequestScoped clarification