This Bash script and patch together eliminate solr/src/ and move everything under it up one level, except for solr/src/java/, solr/src/test/ and solr/src/test-files/, which are moved under a new directory solr/core/:
- I merged solr/src/common/ into the solrj/ directory, and moved all o.a.s.client.solrj and o.a.s.common tests from the core tests to solrj/src/test/; and
- I merged src/webapp/src/ into the core/src/java/ directory.
The philosophy at work here is to keep all sources used to build an artifact under a single directory.
Compilation and testing works, though the core<->solrj dependencies are unusual: non-test core depends on non-test solrj, but solrj tests depend on core tests. (The IntelliJ and Maven builds need fudging to make this work, since their dependency mechanisms are not fine-grained enough to directly support this setup - these changes are also included in the patch.)
I haven't committed this to the branch because it's fairly radical, and I'd like to make sure nobody objects, but also because tracking trunk changes will become much harder after this change is committed to the branch.
Robert, would you please review?