A few weeks ago, we decided to aim for the integration of Felix 4 into our 1.4 release, and I have finally managed to get this integration to work. It involved a couple of changes to our project structure and the way we build it, and I am outlining these below so they become public knowledge. The changes have been committed to MH-8728 and subtasks and are ready to be merged into 1.4, given that developers feel confident moving forward.
Directory structure ============== The Matterhorn checkout (trunk) now contains additional directories or existing ones with updated contents: 1) /bin The bin directory stays the same, but gained felix.jar, which represents the felix framework. The start scripts have been adjusted as well, and the service init script has been moved to /docs/scripts/init (feel free to move this back if you dislike this change. The intention was to make initial starting of Matterhorn as easy and as little confusing as possible). 2) /etc This is now a merge of former /etc and /conf, and leads to a single place to go to if looking for configuration. So instead of /conf/system.properties, you'll go to /etc/system.properties. Also not that the /load directory has been moved here, what what was formerly /load is now /etc/load. 3) /lib We used to have /matterhorn and /ext, and with the integration of Felix 4, we got another top level directory called /bundle. I moved all these libraries into subdirectories of /lib, so there is now /lib/matterhorn (former /matterhorn), /lib/ext (former /ext) and /lib/felix (new Felix /bundle directory). 4) /work Work used to be here before, but I configured /felix-cache to go there by default, too. This leaves us with a rather simple top level directory structure which looks like this: /bin /docs /etc /inbox /lib /logs /modules pom.xml README.txt /shared-resources /work And I hope it is something people can agree to. If you feel strongly about this or that directory, its name or its location, please speak up. I tried to hard keep it simple and clear for newcomers, and at the same time consolidate configuration, libraries, work directories and code. Build process ========== In order to reflect the changes in the library directories, the build option to you know so well "-DdeployTo" had to change a little bit: You know have to specify the root of the Matterhorn installation you'd like to deploy to instead of its /matterhorn subdirectory. In short: -DdeployTo<felix.home> instead of -DdeployTo<felix.home>/matterhorn This will automatically move external libraries into /lib/ext and matterhorn libraries to /lib/matterhorn. Optional ibraries and points of integration =============================== While going throught the libraries and making sure they work well with Felix 4, I noticed once again a number of dependencies that are not needed out of the box and that (in my opinion) should not be part of the default installation but be documented on the wiki to be included when needed. The problem basically is that they need a proper configuration for them in order to start without errors, and I don't think it's a good idea to have default configurations that point to existing institutional resources (such as the LDAP / CAS configuration pointing to UCB etc.). Following is the list of dependencies that I excluded by default: - openid login - ldap provider - cas authentication All of the items below are available as build profiles, so if one needs support for CAS, they can simply call "mvn install -Pcas". Documentation =========== I will update the documentation (installation process, build instructions etc.) over the next few days as soon as I got green lights from all of you (or at least no red lights). Please provide feedback on whether you're happy with the changes outlined above, and if not, what alternatives you would be suggesting. If people do like the changes, I propose to move them into 1.4 asap as previosly discussed on list. Thanks, Tobias _______________________________________________ Matterhorn mailing list [email protected] http://lists.opencastproject.org/mailman/listinfo/matterhorn To unsubscribe please email [email protected] _______________________________________________
