I agree. I think we
need to clarify the problem with
EJB. Is it technical, as in
there's a lot of baggage/fat that
simply cannot be shed without
completely killing the tech?
Especially from an implementation
perspective?
Or is it more a problem of
perception, where a whole
generation of developers have
grown up hearing nothing but
horror stories from the days of
entity beans and thus, would
want to steer clear of EJB and
consequently, the platform
itself?
Personally I lean towards
"spring cleaning" the internals
of EJBs if it's a problem of the
former and leaving the
technology alone.
Why? Because it just works. A
single annotation does a lot of
heavy lifting on my behalf. And
that is cool. It's also easy to
teach newcomers.
From a business perspective,
I'd ask, which would add more
weight to portraying the
platform as modernising?
- A test spec/attempt to
standardize consuming AI on
the platform?
- Or killing EJBs?
If the goal is to portray the
platform as alive and
modernising, I think nothing is
more a testament than an
incubator spec that taps into
arguably the most hyped tech of
our time?
We may have different views
of the whole AI stuff, but if
Spring already has Spring AI,
Quarkus has native integration
with LangChaing4J, where's
Jakarta?
So though EJB may be a
polarising tech depending on who
you speak with, I think if the
goal of EE 12 is to show that
it's still a technology that is
evolving with the times, then
our target lies elsewhere.
Not necessarily EJB. At least
not this time.
I also think
that until now, EJBs are not
fully replacable with other
Jakarta EE constructs. And
thus we shouldn’t try to hide
EJBs from developers learning
Jakarta EE. In fact, teaching
developers about EJBs
simplifies things a lot. With
just a single @Stateless or
@Songleton annotation they get
transactions automatically,
can easily define timers,
concurrency is handled (no
state should be in stateless,
singletons are syncrhonized).
Yes, it’s
possible to rewrite EJBs with
other constructs but the
resulting code is much more
verbose and easy to get wrong
- timers in Concurrency
require to call a method to
trigger them, running a method
on startup is more verbose
compared to @Startup on a
singleton EJB,
ApplicationScoped CDI beans
are not thread safe unlike
Singleton EJBs, @RolesAllowed
only works on EJBs and not CDI
beans, etc.
Jakarta EE
still needs improvements to
fully replace EJB. And even
then it would be good to have
a single CDI annotation to
enable all the features of EJB
in a CDI bean. Until then,
it’s better to teach EJBs and
then explain how to use the
new concepts in Jakarta EE to
avoid EJBs for advanced
developers.
Ondro
Hi
all,
I completely agree with
that. EJBs are not bad per
se and should not be
abandoned.
Everyone is free to use
them or not.
Best regards,
Bernd
Am 28.10.24 um 14:54
schrieb Ralph Soika via
jakarta.ee-community:
> Hello,
>
> I became aware of
this discussion through
the topic "EJB -> CDI
migration" and would like
to briefly
> share my thoughts
about it.
> My fear here is to
"ban" EJBs as something
outdated, complicated and
unnecessary. But is that
right?
> I myself run with imixs.org
<https://www.imixs.org> a very large
Jakarta EE project. And my
opinion
> is that you should
always implement the
DataAccessLayer as also
complex ProcessingServices
in a
> stateless EJB in
order to make use of the
transaction capability.
> I do know that you
can also use CDI for data
access. But is it the
same?
>
> For example in my own
project (a BPMN workflow
engine) the DataAccess
Service as also the Engine
> itself is implemented
as a stateless EJB.
> A project that is
using the library just
need to inject the
WorkflowEngine. The user
does not have
> to think about
transactions or EJBs at
this moment. The app
developer can now extend
the engine
> behavior by
implementing so called
'Plug-Ins' as simple CDI
beans. Such a CDI bean is
a kind of
> adapter class that
can for example react on
specific CDI Events in the
processing life-cycle. And
of
> course the developer
can again inject the
DataService form the
Workflow Engine to create
new data.
>
> The point is that if
something goes totally
wrong, the default
transaction manager takes
care about
> the rollback over all
layers.
>
> And this all comes
for free just because of
using the stateless local
EJB pattern. For the
developer
> there is no need to
think about EJBs at all.
>
> I may be wrong here,
but I would always advise
a developer to implement
the data access layer via
> EJBs to keep the rest
of the application as lean
as possible.
> Therefore, in my
opinion, EJBs play an
important role. A tutorial
should not hide its
concepts.
>
> Best regards
>
> Ralph
>
> On 28.10.24 14:21,
Reza Rahman via
jakarta.ee-community
wrote:
>> I think the
Tutorial refactoring work
could easily be tagged
“good first issue” and
“help wanted”.
>> We have a
shockingly low number of
those across EE4J
projects.
>>
----------------------------------------------------------------------------------------------------
>> *From:* Kito Mann
<kito.mann@xxxxxxxxxxx>
>> *Sent:* Sunday,
October 27, 2024 11:50 PM
>> *To:* jakarta.ee-spec@xxxxxxxxxxx <jakarta.ee-spec@xxxxxxxxxxx>;
Jakarta EE community
discussions
>> <jakarta.ee-community@xxxxxxxxxxx>;
jakarta.ee-marketing@xxxxxxxxxxx
<jakarta.ee-
>> marketing@xxxxxxxxxxx>; Reza Rahman
<reza_rahman@xxxxxxxx>
>> *Cc:* Jakarta EE
Ambassadors <jakartaee-ambassadors@xxxxxxxxxxxxxxxx>;
juneau001@xxxxxxxxx
>> <juneau001@xxxxxxxxx>; Kito Mann
<kito.mann@xxxxxxxxxx>
>> *Subject:* Re:
EJB -> CDI migration
(was Re: Defining Jakarta
EE 12 Scope in Program
Plan)
>> I love all three
of these ideas:
>>
>> 1. EJB -> CDI
Migration Guide
>> 2. New EJB ->
CDI Migration talk
>> 3. Updating the
Jakarta EE Tutorial to
remove EJB when possible
>>
>> (3) is
non-trivial since a lot of
work needs to be done
upgrading/rewriting the
examples in
>> general, but that
doesn’t mean I can’t at
least break that work down
into the issue
tracker. Also,
>> the intro (which
I rewrote) specifically
does not mention EJB.
>>
>> I’d like to add
another: Writing an
OpenRewrite for migrating
from EJB->CDI.
>>
>> ___
>>
>> Kito D. Mann <https://kitomann.com> |
@kito99@mastodon.social
<https://mastodon.social/@kito99>|
>> LinkedIn <https://www.linkedin.com/in/kitomann/>
>> Java Champion |
Google Developer Expert
Alumni
>> Expert consulting
and training: Cloud
architecture and
modernization,
Java/Jakarta EE, Web
>> Components,
Angular, Mobile Web
>> Virtua, Inc. |
virtua.tech <http://virtua.tech>
>> +1 203-998-0403
>>
>> * Enterprise
development, front and
back. Listen to Stackd
Podcast <http://stackdpodcast.com/>.
>> * Speak at
conferences? Check out
SpeakerTrax <https://speakertrax.com>.
>> On Oct 27, 2024
at 2:46 PM -0400, Reza
Rahman <reza_rahman@xxxxxxxx>, wrote:
>>
>> I am moving
comments on my Jakarta EE
12 Google Doc
>> (https://docs.google.com/document/d/1U2qEqF9K969t5b3YuX4cwex5LJPvF3bt1w27cdKNpDM/edit?usp=sharing)
>> to Jakarta EE
mailing lists when
possible. The problem with
Google Docs
>> comments is
that they do not scale
very well, aren't very
readable on
>> smaller
devices, and do not
archive well. I will do so
one email per
>> comment. The
person commenting is
copied.
>>
>> Context: Why
does replacing EJB matter?
>>
>> Josh Juneau
(Community): Are there any
comprehensive tutorials on
how to
>> utilize CDI
rather than EJB for
querying entities? It
seems like these
>> tutorials
need to be made front and
center in an effort to
help steer
>> people to CDI
and to show that EJB is no
longer needed in many
cases.
>>
>> Reza Rahman
(Microsoft): Good point.
As of Jakarta EE 11, it is
indeed
>> possible to
just use CDI now for basic
CRUD in a transactional
and
>> thread safe
manner with Jakarta
Persistence. The same for
EJB
>> @Asynchronous
and @Schedule. At the bare
minimum, this is worthy of
an
>> Eclipse
Foundation newsletter
article and/or JakartaOne
talk. The
>> material
could cover where EJB is
not needed any more and
where it is
>> still needed.
The title could be
something attention
grabbing like -
>> "EJB is Dead,
Long-Live CDI and Jakarta
EE". We could also ensure
a
>> revised
Jakarta EE 11 Tutorial can
avoid using EJB when
possible. Maybe
>> Kito could
comment on this?
Additionally, the
Marketing Committee has
>> been
sponsoring some guides.
Could we consider already
starting an EJB
>> migration
guide?
>>
>> On 10/22/2024
5:30 AM, Reza Rahman
wrote:
>>
>> Hi folks,
>>
>> I would
like to see if we can
define clear, compelling,
and specific
>> scope for
Jakarta EE 12 as part of
the Steering Committee
Program
>> Plan:
>> https://docs.google.com/presentation/d/1xUNDHMP_qTHH1wA3m0yCmWVf_sHp41Qd7Opq3FhgINs/edit?
>>
usp=sharing.
>> I believe
this is of critical
importance at this
juncture. If I did
>> not think
so, I would not bother
trying. I have detailed
all the
>> rationale
here:
>> https://docs.google.com/document/d/1U2qEqF9K969t5b3YuX4cwex5LJPvF3bt1w27cdKNpDM/edit?
>>
usp=sharing.
>> For those
that recall, something
very similar was done for
Jakarta EE
>> 11, so
this isn't exactly without
precedent.
>>
>> I would
like to see if this can be
done in the following
couple of
>> weeks,
when the Program Plan is
due.
>>
>> Thanks,
>>
>> Reza
>>
>>
>> Reza Rahman
>>
>> Principal Program
Manager
>>
>> Java on Azure at
Microsoft
>>
>> reza.rahman@xxxxxxxxxxxxx
>>
>> +1 717 329 8149
>>
>>
>>
_______________________________________________
>>
jakarta.ee-community
mailing list
>> jakarta.ee-community@xxxxxxxxxxx
>> To unsubscribe
from this list,
visithttps://www.eclipse.org/mailman/listinfo/jakarta.ee-community
> --
>
> *Imixs Software
Solutions GmbH*
> *Web:* www.imixs.com
<http://www.imixs.com> *Phone:* +49
(0)89-452136 16
> *Timezone:*
Europe/Berlin - CET/CEST
> *Office:*
Frei-Otto-Str. 4, 80797
München
> Registergericht:
Amtsgericht München, HRB
136045
> Geschäftsführer: Gaby
Heinle u. Ralph Soika
>
> *Imixs* is an open
source company, read more:
www.imixs.org
<http://www.imixs.org>
>
>
>
_______________________________________________
> jakarta.ee-community
mailing list
> jakarta.ee-community@xxxxxxxxxxx
> To unsubscribe from
this list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
--
Prof. Dr. Bernd Müller
Ostfalia
Hochschule für angewandte
Wissenschaften
- Hochschule
Braunschweig/Wolfenbüttel
-
Fakultät Informatik
Salzdahlumer Straße 46/48
38302 Wolfenbüttel
Tel +49 5331 939 31160
Fax +49 5331 939 31004
Web www.ostfalia.de
/ www.pdbm.de
_______________________________________________
jakarta.ee-community
mailing list
jakarta.ee-community@xxxxxxxxxxx
To unsubscribe from this
list, visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
_______________________________________________
jakarta.ee-community mailing
list
jakarta.ee-community@xxxxxxxxxxx
To unsubscribe from this list,
visit https://www.eclipse.org/mailman/listinfo/jakarta.ee-community
_______________________________________________