[ 
https://issues.apache.org/jira/browse/ACCUMULO-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14288490#comment-14288490
 ] 

Christopher Tubbs commented on ACCUMULO-3514:
---------------------------------------------

What this change would involve is each implementing service would implement an 
interface. We'd make sure that interface has a method on it, called 
"getKeyword" or "commandName" or similar, as well as some sort of "run" method. 
The start jar, would use these methods to determine if it found one appropriate 
to the command-line args, and run it. If it can't find one, it will fall back 
on the dynamic classloading, reflection to get and execute the main method, as 
we do now. The big difference is that because the discovery of the available 
commands would be dynamic, we don't have to keep maintaining string literals to 
refer to these classes, or worry that refactoring would break the hard-coded 
fully-qualified class names (because there won't be any).

> Use Java ServiceLoader to identify classes that are launchable by start
> -----------------------------------------------------------------------
>
>                 Key: ACCUMULO-3514
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3514
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: start
>            Reporter: Christopher Tubbs
>            Assignee: Christopher Tubbs
>             Fix For: 1.7.0
>
>
> This is similar to the goals of ACCUMULO-1496, but it should be possible to 
> do it more efficiently with an annotation processor and Java's ServiceLoader. 
> If successful, this would supersede ACCUMULO-1496.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to