Hi, I have a couple best practices questions.  My project setup is a parent 
with two modules, I'll call them core and container.  The core module has all 
the core logic.  The container module depends on it and packages everything up 
via the assembly plugin for distribution.  The core is environment-independent, 
no property filters, and the container module is environment dependent with 
properties files filtered for environment specific things (install directory, 
db connections, ports, etc.).

Now I throw in an applicationContext.xml for Spring with many of beans 
dependant on environment specific database information.  Since the Application 
Context is specific and really required by the core logic, I would first think 
that the file belongs in my core module, but that then breaks the 
environment-independent aspect of the core, so maybe the container module would 
be better?

On the other hand, my database-related beans and the related Application 
Context definitions might be better served living in a third "datbase" module.  
I could then keep the core entity classes environment-independent and have the 
new module depend on the core.

Second question: In my container module, I reproduce many of the dependencies 
found in the core module scoped at runtime so that they can be included in my 
assembly.  To avoid this duplication, would it may be better to have the core 
module produce a jar-with-dependenices and have only that be part of the 
assembly?  What would be the best or recommended practice here?

Whew.. 
Thanks for any thoughts and insights in advance.


      

Reply via email to