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]

Reply via email to