-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
8.1.0.Beta
-
None
-
False
-
None
-
False
-
-
-
-
-
-
-
TL;DR
An application with explicit dependency on "org.apache.activemq.artemis" module that worked fine deployed to EAP 8.0 might not work when deployed to EAP 8.1 (you may get ClassNotFoundException)
More details:
In EAP 8.0 and previous versions, when some implementation class of ActiveMQ Artemis needed to be exposed to the deployment application, one had to add dependency on "org.apache.activemq.artemis" (eg. via META-INF/MANIFEST.MF or jboss-deployment-structure.xml)
In EAP 8.0, the module visibility was deprecated - which means functionally has no difference to private other than one warning message is replaced with other warning message. There is no intent to remove the module, the intent is just for users not to use it explicitly.
Between EAP 8.0 and 8.1, there were changes - there is now new public module that is designed to be used in user application, when needed. The new module is "org.apache.activemq.artemis.client". After this, users should not really depend directly on "org.apache.activemq.artemis" anymore.
But along with changes introducing this new module, the actual implementation of "org.apache.activemq.artemis" changed and some of what was exposed before is not exposed anymore.
This means that if your application depends on some of those no longer exposed classes you will get ClassNotFoundException.
Now the question is, (1) whether we want to keep the original "org.apache.activemq.artemis" module working as was before to keep some compatibility until users adopt the new module properly.
Or (2) whether we force them to make the change.
In either case the change needs to be documented properly at least in release notes and in migration guide.
- is related to
-
JBEAP-26208 (8.0.z) Create a org.apache.activemq.artemis.client to be depended upon by deployments
-
- New
-
-
JBEAP-25041 Mark the public org.apache.activemq.artemis.* modules as private, add a usage note.
-
- Closed
-