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

Christopher Tubbs commented on ACCUMULO-3019:
---------------------------------------------

ServerConfiguration isn't the only non-public API item that is passed to 
pluggable components. We really need to make interfaces for our pluggable 
components, to make it easier to identify and implement (and to prevent leakage 
of non-public API into them). I'm hoping this can be done as part of 
ACCUMULO-2589 (or as follow-on actions, as we identify the pluggable 
components).

We should avoid putting context-specific items into the API of pluggable 
components. For instance, instead of giving a balancer a ServerConfiguration 
parameter, we can give it a Configuration object called serverConf. That would 
separate the plugin implementation from the internal objects Accumulo uses, and 
the appropriate framework can decide how much or how little configuration to 
actually pass in the generic Configuration object (for instance, plugins 
shouldn't be getting shared secrets from the server configuration).

> Fix ServerConfiguration deprecation
> -----------------------------------
>
>                 Key: ACCUMULO-3019
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3019
>             Project: Accumulo
>          Issue Type: Sub-task
>          Components: master, tserver
>            Reporter: Eric Newton
>            Assignee: Eric Newton
>             Fix For: 1.7.0
>
>
> The deprecation of ServerConfiguration causes two problems:
> 1) eclipse is showing me ~300 warnings, so I'm missing other warnings in the 
> noise
> 2) ServerConfiguration is passed to some plug-ins (Balancer, at least), so 
> any existing plug-ins are broken by the change.
> In the past, I would have been fine with just switching to the new class 
> {{ServerConfigurationFactory}} but a growing user base and petabytes of 
> existing systems gives me pause.
> Instead, I'm thinking we hoist the most popular methods to an abstract 
> ServerConfiguration, and provide ServerConfiguationFactory as the 
> implementation.  This way the extensions continue to work.
> I'm still not sure what to do about static calls to get the SiteConfiguration.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to