[
https://issues.apache.org/jira/browse/SOLR-724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12625390#action_12625390
]
Mark Miller commented on SOLR-724:
----------------------------------
I agree with Henri.
Having these methods public ties core properties to the CoreDescriptor for no
apparent good reason. This has the possibility of being an annoyance down the
road. Unless specifically needed, why create this burden? Keeping the link
between core properties and the descriptor package private allows for more
flexibility in the future - and will keep users happier - we don't want to have
to deprecate and change user exposed APIs if we can help it.
bq. My understanding was that till a use-case exists, we shouldn't publicly
expose the method ( and it's been quite a hard lesson... )
I think this is a great rule of thumb, and should be the guiding principal
here. Whats the use case that this solves beyond what using the resource loader
provides? The benefit should clearly outweigh having to maintain/support the
public API.
bq. Another question to ask before making things public is that can the user
can alter some state in a way that can affect the functionality. If it is
purely a read-only state I guess it should be OK
I think it goes further than this - there is a public link between the
descriptor and the core properties. Its not a huge issue obviously, but there
should be good reason for publicly linking two classes I think - the fact that
the implementation contains the linked class privately doesn't seem like a very
good reason.
- Mark
> CoreDescriptor.{get,set}CoreProperties should probably not be public (but
> package private)
> ------------------------------------------------------------------------------------------
>
> Key: SOLR-724
> URL: https://issues.apache.org/jira/browse/SOLR-724
> Project: Solr
> Issue Type: Bug
> Affects Versions: 1.3
> Reporter: Henri Biestro
> Priority: Minor
>
> Exposing them precludes being ever able to fill the CoreDescriptor with
> property expressions.
> Since a 'public' method can not be removed easily, this is a future problem.
> Besides, as is, their is no reason for them to be public.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.