Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deprecate Application Client Container (ACC) #1015

Open
m-reza-rahman opened this issue Jan 3, 2025 · 6 comments
Open

Deprecate Application Client Container (ACC) #1015

m-reza-rahman opened this issue Jan 3, 2025 · 6 comments
Labels
EE12 Issues being targetd for Jakarta EE 12

Comments

@m-reza-rahman
Copy link

The ACC was never really that popular and it's primary target use cases - remote EJB and Applets - are long out of favor. It should be deprecated to keep the platform lightweight, agile, and forward looking.

There are already many better alternatives for many years now. Just some of them:

  • Not using Java SE clients in the first place and use JavaScript clients instead.
  • Using REST, WebSocket, etc instead.
  • Using vendor specific remote JNDI client libraries.
@ivargrimstad ivargrimstad added the EE12 Issues being targetd for Jakarta EE 12 label Jan 5, 2025
@hs536
Copy link

hs536 commented Jan 8, 2025

Several superior alternatives to appclient exist, but migrating to them requires a significant application rewrite. Many of our customers (Fujitsu's) rely on appclient as their EJB client; deprecating it would therefore impose considerable migration risks and costs on them.

@hantsy
Copy link

hantsy commented Jan 8, 2025

If we deprecate the Application Client, will we discard the JNDI lookup in all Jakarta EE specs?

In my memory, in client codes, we can look up a remote component by JDNI in the initial context. If we finally remove application clients, I am unsure if JDNI is still useful on the server side. CDI injection by type or name is a better choice for developers.

We should clean up the JNDI use cases to use CDI qualifiers and names as first-class citizens.

  • DataSourceDefinition
  • Jakarta Persistence persitence.xml DataSource element.
  • JMSDestinationDefitition/JMSConnectionFactory
  • Concurrency ManagedExecutorservice, ManagedScheduledExecutorService, ManagedThreadFactory, etc.
  • Use @Inject to replace @Resource everywhere, completely remove @Resource usage in the EE12.

@m-reza-rahman
Copy link
Author

If we deprecate the Application Client, will we discard the JNDI lookup in all Jakarta EE specs?

ACC has nothing to do with the use of JNDI on the server-side. It is purely a client-side construct.

@m-reza-rahman
Copy link
Author

Several superior alternatives to appclient exist, but migrating to them requires a significant application rewrite.

None of this is unlike other deprecation decisions we have already made in the platform such as SOAP or CORBA. Indeed both are still more popular than the ACC. Just because something is deprecated or even removed does not mean a given vendor cannot still continue to support it, pretty much indefinitely. Indeed I imagine this is what some older runtimes would do. It simply means vendors can make the choice to discontinue it if they so wish.

@hs536
Copy link

hs536 commented Jan 9, 2025

None of this is unlike other deprecation decisions we have already made in the platform such as SOAP or CORBA.

If I'm not mistaken, SOAP remains in the spec as Jakarta Enterprise Web Services, and CORBA also remains as "Optional" spec. Was this a proposal to make appclient "Optional" within the spec, rather than "Deprecated"?

@m-reza-rahman
Copy link
Author

m-reza-rahman commented Jan 9, 2025

Either way is fine. Functionally, there is little difference. SOAP is slated to be removed in EE 11: https://jakarta.ee/specifications/platform/11/jakarta-platform-spec-11.0-m4#changes-in-jakarta-ee-11. Even back in the Java EE days, we tried to keep the platform fresh and relevant by deprecating old, outdated stuff like Entity Beans and JAX-RPC. It's a good bet there are applications that still use all these things and certainly vendors that still support them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EE12 Issues being targetd for Jakarta EE 12
Projects
None yet
Development

No branches or pull requests

4 participants