Sorry, wenn ich mich missverständlich ausgedrückt habe: Ich meinte nicht, dass man mit JSF2.2 CDI verwenden soll, sondern dass dies die Zukunft ist. Mit JSF 2.2 werden nur einige Änderung vor allem im Bereich CDI vorgenommen.
Natürlich ist das die Zukunft ohne Frage! CDI ist ja auch eine wunderschöne Sache aber bei dem derzeitigen Stand kannst du doch dem TO nicht einfach sagen das er die CDI/EJB - Annotationen nutzen soll!
Der will JSF lernen und da gehört derzeit noch einiges an Geraffel und Wissen dazu CDI und JSF in Einklang zu bringen. Es ist halt nicht Sinn der Sache auf andere Frameworks zurückgreifen zu müssen damit alles läuft. Wenn man weiss was man tut, und das wissen wir beide, dann kann man das ja auch nutzen aber ein Newcommer sollte sich erstmal auf das eine beschränken.
Meine Absicht war es ja auch nicht CDI aus JSF zu verbannen aber wie gesagt: Das gehört nicht hinter die View wenn man alle Möglichkeiten haben will die JSF so bietet. Der FacesContext hat mit CDI nicht viel am Hut, jedenfalls noch nicht.
Alles Andere in der dahinter liegenden Logik: OMG nimm CDI, was besseres gibt es da nicht. Auch wenn man in die Situation kommt ein eigenes Servlet schreiben zu müss: CDI warum nicht?
Meine Intention war es lediglich die Abgenzung zwischen diesen beiden Technologien deutlich zu machen. JSF 2 und vor allem JSF 2.2 bieten einiges an neuen Techniken und Annotationen um CDI so nahe wie möglich zu kommen und es auch einfacher zu integrieren. Dazu gehören auch die @EJB und die @Ressource Annotationen.
Das trifft halt auf die BackingBeans der Views zu, da gehören IMHO derzeit einfach keine CDI-Beans hin weil CDI nicht darauf ausgelegt ist JSF-Views in dem maße zu supporten.
Vielleicht haben wir auch einfach eine unterschiedliche Meinung darüber wie das MVC-Pattern zu implementieren ist aber ich grenze halt JSF mit den @ManagedBean als View von meinen EJB und anderen POJO's im Controller ab.
Es ist zwar ein wenig mehr Aufwand aber was hält mich davon ab aus einer Bean die die View repräsentiert kurz mal etwas in eine CDIB oder EJB zu schupsen? Von dort aus kann ich doch mit CDI arbeiten und ich kann mir sicher sein dass alles auf die View bezogen läuft ohne Neuimplementierung oder zuzügliche Frameworks.
Ich weiss nicht ob du verstehst worauf ich mit diesen Aussagen hinaus will. Vilt. drücke ich mich ja auch Missverständlich aus
BTW: Arquillian ist auch eine schöne Möglichkeit um reine JSF-Anwendungen ohne CDI zu testen. Ich denke sogar eine der Besten derzeit.