I've seen a few slide presentations on best practices for multiproject
organization, but I was wondering if there is one that is endorsed by
the maven team/community?

I am working on a project that will provide a centralized hub of data
services (JMS, SOAP, JSP) for integrating multiple external systems
within my company (and possibly from our customers). I am using
Spring+Hibernate for our persistence. I have the project set up
something like this:

da-core
    Domain objects, common business logic, utilities, etc...
    Contains basic unit tests.
    Builds da-core.jar
da-hibernate
    Hibernate mappings for the domain objects in src/main/resources
    DAO interfaces and implementations.
    Integration tests.
    Spring configs for data source, session factory, and DAOs
(src/main/resources).
    Dependency on da-core.
    Builds da-hibernate.jar
da-sds-client
    Interfaces and implementations for client applications wanting to
interact with the system.
    Dependency on da-core and da-hibernate.
    Integration tests for the services.
    Builds da-sds-client.jar
da-<appname>-loader
    Command line application that loads a data file provided by some
external system.
    Dependencies on everything above.
    Integration and unit tests for loader logic and behavior.
da-<appname>-service
    JMS or SOAP service for request/response interaction with external systems.
    Dependency on da-core and da-hibernate.
    Integration tests.

Obviously, I can break things down into smaller pieces, and in some
places, I have. What I want to know is, how can I set things up so
that my automated build does not run the integration tests (because
they take so damn long) and I can schedule integration tests for
certain times during the day. The motivation behind this is that this
project is under heavy development with a lot of checkin activity. I
want a quick response when a developer breaks business logic, and
periodic checks for when they break something related to
Hibernate/JMS/SOAP.

One approach I've seen is to create *-acceptance projects to contain
the integration tests. For example, da-hibernate-acceptance. I would
end up with no tests in da-hibernate, and only tests in
da-hibernate-acceptance. Is this common? With this setup, I can
exclude the *-acceptance projects from the continuous build, and
include them on the scheduled builds.
    

Thanks,
-- 
Craig McDaniel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to