Justin Bertram created ARTEMIS-5974:
---------------------------------------
Summary: Replace FactoryFinder with Java ServiceLoader
Key: ARTEMIS-5974
URL: https://issues.apache.org/jira/browse/ARTEMIS-5974
Project: Artemis
Issue Type: Task
Reporter: Justin Bertram
Assignee: Justin Bertram
The {{artemis-cli}} module uses a custom
{{org.apache.activemq.artemis.utils.FactoryFinder}} implementation which can be
replaced by {{java.util.ServiceLoader}}.
Using {{ServiceLoader}} provides (among other things):
- Standard, well-understood service discovery mechanism
- Reduced maintenance burden
- Type safety (i.e., eliminates casting from {{Object}})
- Simpler service provider file format
- Consistency with the rest of the code-base
Old format: Properties files at
{{META-INF/services/org/apache/activemq/artemis/broker/<scheme>}} containing:
{noformat}
class=<fully.qualified.ClassName>{noformat}
New format: Plain text files at
{{META-INF/services/<fully.qualified.InterfaceName>}} containing:
{noformat}
<fully.qualified.ImplementationName>
<fully.qualified.ImplementationName>{noformat}
There will be no API changes or behavioral differences. The broker will
continue to discover and load factory implementations exactly as before, just
using the standard Java mechanism.
Existing tests will verify functionality and ensure there are no regressions.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]