I am working on an application for a friend of mine. Boy am I learning a lot. The coming weeks I want to share some stuff that I have learned. For now I will just give you a few of the frameworks that I have used.
I want to thank Matt Raible for his Book SpringLive and his light version of AppFuse, 'Equinox'. This has helped me a lot. I think it is also time for a review of his book.
Lets start with discussing the environment. I use my laptop to develop the application. For development I use Jdk5, eclipse 3.1 and I have bought the plugin myeclipseide. This plugin helps me with the style sheets, java script, but most of all, with creating the descriptor files and the domain layer for hibernate. You connect via jdbc to mysql and hsqldb. This is done via the database plugin of myeclipseide. Then you select the tables you want to work with and generate the complete domain layer and *.hbm.xml files. There are abstract classes for the generated files and subclasses that contain your custom code. You can use the myeclipseide for creating the framework of your application, and you can also use equinox. Actually I used a cobination. I did not like the way equinox configures tests. For some reason I could not get this to work in eclipse as well as for ant. I prefer a seperate folder for all test files, including resources. Disadvantage is the duplication of config files, but that is my problem. Again use Myeclipseide for running your tomcat web server (version 5.5.9). Ofcourse you can use the ant file to start/stop and deploy your application in tomcat. I prefer myeclipse. I do use ant to generate a war file for the deployment server. I also use ant to startup the hsqldb database and for running the create and fill sql script. This makes it easy to unit test your application. But more about this later.
What are some of the issues that I need to resolve for the application?
Transactions over multiple datasources
Synchronisation from webdatabase and new domain model in the backoffice
Generation of multiple documents, invoice, order approval, packing list, etc
Authentication and authorization, use of multiple roles in the application