ignoreJPAEntities
Description
With the help of this configuration toggle it is possible to remove all calls to a JPA entity from the sequence flow because entities are often only simple POJOs.
Example
In the following example there are three dependencies in the maven dependency hierarchy which build the classpath for all further generation:
<dependencies>
<dependency>
<groupId>de.elnarion.util</groupId>
<artifactId>plantuml-generator-util</artifactId>
<version>@project.version@</version>
<classifier>tests</classifier>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
From this classpath the sequence diagram is generated, but all jpa entities are ignored/removed. This is similar to the JUnit-tests of the PlantUML generator utility:
<plugin>
<artifactId>plantuml-generator-maven-plugin</artifactId>
<groupId>de.elnarion.maven</groupId>
<version>@project.version@</version>
<executions>
<execution>
<id>generate-simple-diagram</id>
<goals>
<goal>generateSequenceDiagram</goal>
</goals>
<phase>generate-test-sources</phase>
<configuration>
<outputFilename>testsequencediagram1.txt</outputFilename>
<startClass>de.elnarion.test.sequence.t0003.MovieService</startClass>
<startMethod>doSomeBusiness</startMethod>
<ignoreJPAEntities>true</ignoreJPAEntities>
</configuration>
</execution>
</executions>
</plugin>
which is rendered this way:
and produces this PlantUML diagram text:
@startuml
participant MovieService
participant MovieDAO
participant EntityManager
participant EntityTransaction
activate MovieService
MovieService -> MovieDAO : getMovie
activate MovieDAO
MovieDAO -> MovieDAO : getEntityManager
activate MovieDAO
MovieDAO --> MovieDAO
deactivate MovieDAO
MovieDAO -> EntityManager : find
activate EntityManager
EntityManager --> MovieDAO
deactivate EntityManager
MovieDAO -> EntityManager : detach
activate EntityManager
EntityManager --> MovieDAO
deactivate EntityManager
MovieDAO --> MovieService
deactivate MovieDAO
MovieService -> MovieDAO : saveMovie
activate MovieDAO
MovieDAO -> MovieDAO : getEntityManager
activate MovieDAO
MovieDAO --> MovieDAO
deactivate MovieDAO
MovieDAO -> EntityManager : getTransaction
activate EntityManager
EntityManager --> MovieDAO
deactivate EntityManager
MovieDAO -> EntityTransaction : begin
activate EntityTransaction
EntityTransaction --> MovieDAO
deactivate EntityTransaction
MovieDAO -> EntityManager : persist
activate EntityManager
EntityManager --> MovieDAO
deactivate EntityManager
MovieDAO -> EntityManager : getTransaction
activate EntityManager
EntityManager --> MovieDAO
deactivate EntityManager
MovieDAO -> EntityTransaction : commit
activate EntityTransaction
EntityTransaction --> MovieDAO
deactivate EntityTransaction
MovieDAO --> MovieService
deactivate MovieDAO
deactivate MovieService
@enduml
Without the parameter the diagram would look like this: