Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-2537

Refactor Solr modules structure



    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Won't Fix
    • None
    • 3.1.1
    • None
    • None


      Solr modules are nested in a non-standard archeotype (e.g. Solr Core module is in the src dir of Solr parent).
      Also, a workaround for avoiding maven dependencies between Solr Core and Testframework makes it impossible to add a depenency on Solr-3.2-SNAPHOST (Solr Search Server) since it's packaged as a war, to import EmbeddedSolrServer.java, for example. It has been discussed on the mailing list[1].

      I've, in the mlist, suggested to "create yet one more module for Tests which depend on Solr Core and on the Test Framework. The org burden of that extra module, versus the ease of building configuration, I believe, outweights."

      However I realize there's a major drawback in that, i.e. that Solr Core will build without passing the tests in the other module. There're 2 solutions:
      1. Make Solr Core a parent module that encompasses a thin Solr Core, the TestFramework module, and the Tests-only module;
      2. 'Downgrade' Testframework from being a fully-fledged module by moving the packages under Solr Core.
      2a. Move them under Solr Core test packages.
      2b. move them under Solr Core src

      To me 2a is most intuitive. Those that want a dependency on Solr TestFramework declare it with <classifier>tests</classifier>, which packages only the tests, and the Solr Core classes those require.[2][3]

      The same refactoring applies to lucuene.

      [1] http://mail-archives.apache.org/mod_mbox/lucene-solr-user/201105.mbox/%3c2D127F11DC79714E9B6A43AC9458147FBAD42EAD@suex07-mbx-03.ad.syr.edu%3e

      [2] http://maven.apache.org/guides/mini/guide-attached-tests.html
      [3] I've successfully used it before. https://code.google.com/p/memorizeasy/source/browse/MemoPlatform/persistenceui/pom.xml




            sarowe Steven Rowe
            simpatico Gabriele Kahlout
            0 Vote for this issue
            0 Start watching this issue