I have a big decision to make for a system that's going to production. My project is composed by two sub-projects: One little one which we will develop in-house using Spring + Hibernate + Oracle, which I have business classes domain that are part of this specific module. Another -- big one -- which has to integrate with the first one, will be developed by a software company (using the same software architecture + JSF). Additionally, the both sub-projects have to access a legacy database and I already have the map files for the Hibernate generated by Middlegen.
My questions are:
1. What's the best strategy to integrate software that has been developing in house with a project that WILL be developed in an outsourcing company (I am using strategy Pattern and Spring, of course, but I am not sure that what I have done can fix all the issues that I could face in the near future)?
2. What's the best strategy for the both projects be able to access the map files generated by the Middlegen (POJOs classes), that are from the legacy database that I cannot touch (natural primary keys by the way)? Would be an option use only the DAOs -- wired in the Spring -- for the POJOs classes and both projects accessing these DAOs or is there other better option?
I would like to join what I have read in the Spring documentation and books with your real world experience.
Thank you so much for any comment.