The new standalone "java -jar mifos.war" end-user server (see MIFOSX-1552 parent task and blog past linked from it) greatly simplify the first time set-up experience for non-technical Mifos users, as it completely removes the need to do ANY mysql and Tomcat etc. etc. set-up.
The biggest missing area is that this only covers the REST API back-end server. Ideally, Static Web Content for UIs such as the community-app should also as easily to be able to be served by the new standalone server. The focus here is for end-user, not for developers, as during development grunt serve will be what most people will continue to use.
According to http://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot and http://docs.spring.io/spring-boot/docs/1.2.0.RELEASE/reference/htmlsingle/#boot-features-spring-mvc-static-content Spring boot can serve any static content present in a folder called /static or /public in its classpath.
What's missing is that we probably should start introducing a mifos.sh + mifos.bat launch script, which wraps "java -jar mifos.war" and does something like (I haven't tested this myself yet) "java -jar mifos.war -cp web", or "java -cp mifos.war:web ..mainclass.." if -jar and -cp cannot be combined. If the Gradle build script producing the dist could then be extended to have a web/ folder in which static content can be dropped, we'd be cool.
This could also be of interest for the upcoming SDK and plug-ins concept, for which I had done some work with Avik Ganguly; our idea there was to have a plugins/ folder and have said TBC script add all *.jar in that folder to the CP.
|