Aggregator POMs

The framework provides a number of "aggregator" POMs that act as a convenient way to aggregate together various common dependencies.

For example, when writing unit tests for your domain app, it can simply depend on the isis-mavendeps-unittests artifact (rather than have to reference all of JUnit, AssertJ, Spring Boot, Hamcrest, Mockito and so on).

Currently five aggregator POMs are provided.

Webapp

The isis-mavendeps-webapp aggregates the main runtime dependencies of a production webapp. Note however that it does not include the runtime dependencies for either JDO or JPA; these have their own "mavendeps" POM, discussed below.

To use, add the following :

pom.xml
<dependencies>
    <dependency>
        <groupId>org.apache.isis.mavendeps</groupId>
        <artifactId>isis-mavendeps-webapp</artifactId>
        <type>pom</type>
    </dependency>
</dependencies>

For convenience, it includes all of the current components available:

If you don’t need any of these (for example, you’ll probably only want one security implementation), then you can exclude the others.

Also, remember that adding the class onto the classpath does not make that functionality available (Apache Isis does not currently leverage Spring Boot’s auto configuration capabilities). So, you must also add in the appropriate IsisModuleXxx to your application’s top-level @Configuration (aka "app manifest"). For example, see the AppManifest for the SimpleApp starter app.

Testing

Three aggregator POMs are provided to support unit testing, integ testing or running BDD (Cucumber) specs.

To use them when unit testing, add:

pom.xml
<dependencies>
    <dependency>
        <groupId>org.apache.isis.mavendeps</groupId>
        <artifactId>isis-mavendeps-unittests</artifactId>
        <type>pom</type>
        <scope>test</scope>
    </dependency>
</dependencies>

For integration testing, add:

pom.xml
<dependencies>
    <dependency>
        <groupId>org.apache.isis.mavendeps</groupId>
        <artifactId>isis-mavendeps-integtests</artifactId>
        <type>pom</type>
        <scope>test</scope>
    </dependency>
</dependencies>

The table below summarises the dependencies that each of these aggregator POMs brings in.

Table 1. Dependencies of the Aggregator POM for Tests
Dependency mavendeps- unittests mavendeps- integtests

Apache Isis
unit test support

Y

Apache Isis
integ test support

Y

Apache Isis
Applib

Y

Y

Apache Isis
Bypass security

Y

Apache Isis
Fake Data

Y

Y

Apache Isis
Fixture Scripts

Y

Y

Y

Y

Y

Y

Hamcrest (core + library)

Y

Y

Y

Y

Y

Y

Y

Y

Y

PicoContainer
(for JMock2 extensions)

Y

Y

Y

Y