Solr
  1. Solr
  2. SOLR-436

Make SolrServer an abstract superclass rather then an interface

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.3
    • Fix Version/s: 1.3
    • Component/s: clients - java
    • Labels:
      None

      Description

      To allow more flexability in the future, SolrServer should be an abstract super class

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        38d 49m 1 Ryan McKinley 23/Jan/08 19:33
        Resolved Resolved Closed Closed
        1933d 15h 6m 1 Uwe Schindler 10/May/13 10:39
        Uwe Schindler made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Hide
        Alexander Ramos Jardim added a comment -

        As I said on the mailing list, I don't think interfaces should be turned to abstract classes. This is a wrong design decision from a pure programming view point as interfaces should expose what abstract classes implements. They are complements and not competitors.
        I think we should have a SolrServer interface and an AbstractSolrServer that implements it.
        Methods should be added to AbstractSolrServer on minor releases, and on each major release, the interface signature should be changed to expose them in an adequate manner.

        Show
        Alexander Ramos Jardim added a comment - As I said on the mailing list, I don't think interfaces should be turned to abstract classes. This is a wrong design decision from a pure programming view point as interfaces should expose what abstract classes implements. They are complements and not competitors. I think we should have a SolrServer interface and an AbstractSolrServer that implements it. Methods should be added to AbstractSolrServer on minor releases, and on each major release, the interface signature should be changed to expose them in an adequate manner.
        Hide
        Ryan McKinley added a comment -

        Even if we are the only implementation, how do you add functions after a release? Is it just that the standard compatibility rules would not apply?

        Show
        Ryan McKinley added a comment - Even if we are the only implementation, how do you add functions after a release? Is it just that the standard compatibility rules would not apply?
        Ryan McKinley made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Hide
        Yonik Seeley added a comment -

        I don't think the abstract class / interface issue matters as much when we are going to be the only implementers of the interface.

        Show
        Yonik Seeley added a comment - I don't think the abstract class / interface issue matters as much when we are going to be the only implementers of the interface.
        Ryan McKinley made changes -
        Assignee Ryan McKinley [ ryantxu ]
        Ryan McKinley made changes -
        Field Original Value New Value
        Attachment SOLR-436-AbstractSolrj.patch [ 12373861 ]
        Hide
        Ryan McKinley added a comment -

        moves BaseSolrServer to the SolrServer implementaion

        Show
        Ryan McKinley added a comment - moves BaseSolrServer to the SolrServer implementaion
        Ryan McKinley created issue -

          People

          • Assignee:
            Ryan McKinley
            Reporter:
            Ryan McKinley
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development