info: java: update workspace
authorFerry Huberts <ferry.huberts@pelagic.nl>
Fri, 16 Aug 2019 21:04:12 +0000 (23:04 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Fri, 16 Aug 2019 21:05:33 +0000 (23:05 +0200)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
18 files changed:
lib/info.java/.gradle-wrapper/gradle-wrapper.properties
lib/info.java/BUILDING
lib/info.java/Makefile
lib/info.java/cnf/findbugs/findbugs.exclude.xml [deleted file]
lib/info.java/cnf/gradle/custom/javaProject-post.gradle
lib/info.java/cnf/gradle/dependencies/README
lib/info.java/cnf/gradle/dependencies/com.github.spotbugs/spotbugs-gradle-plugin-2.0.0.jar [new file with mode: 0644]
lib/info.java/cnf/gradle/doc/BUILDING-GRADLE.md
lib/info.java/cnf/gradle/doc/CHANGELOG.md
lib/info.java/cnf/gradle/doc/template.dot
lib/info.java/cnf/gradle/doc/template.svg
lib/info.java/cnf/gradle/template/findbugs.gradle [deleted file]
lib/info.java/cnf/gradle/template/jacoco.gradle
lib/info.java/cnf/gradle/template/javaProject.gradle
lib/info.java/cnf/gradle/template/spotbugs.gradle [new file with mode: 0644]
lib/info.java/cnf/spotbugs/spotbugs.exclude.xml [moved from lib/info.java/cnf/findbugs/findbugs.include.xml with 100% similarity]
lib/info.java/cnf/spotbugs/spotbugs.include.xml [new file with mode: 0644]
lib/info.java/gradlew

index b0acbdc..ef9a9e0 100644 (file)
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
index 1a0ccfe..96adb2a 100644 (file)
@@ -45,4 +45,4 @@ Building on a build server
       -PCI -Djsse.enableSNIExtension=false \
       build \
       release \
       -PCI -Djsse.enableSNIExtension=false \
       build \
       release \
-      findbugs
+      spotbugs
index 54f7844..a4f2e46 100644 (file)
@@ -67,7 +67,7 @@ java:
       build \
       javadoc \
       release \
       build \
       javadoc \
       release \
-      findbugs
+      spotbugs
 
 clean:
        @./gradlew \
 
 clean:
        @./gradlew \
diff --git a/lib/info.java/cnf/findbugs/findbugs.exclude.xml b/lib/info.java/cnf/findbugs/findbugs.exclude.xml
deleted file mode 100644 (file)
index 31b34f6..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<FindBugsFilter>
-    <Match>
-        <Class name="org.olsr.v1.info.proxy.api.InfoResult" />
-        <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
-    </Match>
-</FindBugsFilter>
index ad5a443..360d89f 100644 (file)
@@ -1,7 +1,7 @@
 assert(project != rootProject   )
 assert(hasProperty('sourceSets'))
 
 assert(project != rootProject   )
 assert(hasProperty('sourceSets'))
 
-findbugs {
+spotbugs {
   effort      = "max" /* min, default, max  */
   reportLevel = "low" /* low, medium , high */
 }
   effort      = "max" /* min, default, max  */
   reportLevel = "low" /* low, medium , high */
 }
index 3bd1817..cefd696 100644 (file)
@@ -6,3 +6,13 @@ This directory contains JAR file dependencies that are intended
 ONLY FOR BUILT-TIME usage by the Gradle build.
 
 None are intended to be used as bundles in any project.
 ONLY FOR BUILT-TIME usage by the Gradle build.
 
 None are intended to be used as bundles in any project.
+
+
+Get the jars here:
+
+biz.aQute.bnd.gradle : https://plugins.gradle.org/m2/biz/aQute/bnd/biz.aQute.bnd.gradle/
+                       https://search.maven.org/search?q=a:biz.aQute.bnd.gradle
+biz.aQute.bndlib     : https://search.maven.org/search?q=a:biz.aQute.bndlib
+biz.aQute.repository : https://search.maven.org/search?q=a:biz.aQute.repository
+biz.aQute.resolve    : https://search.maven.org/search?q=a:biz.aQute.resolve
+com.github.spotbugs  : https://plugins.gradle.org/m2/gradle/plugin/com/github/spotbugs/spotbugs-gradle-plugin/
diff --git a/lib/info.java/cnf/gradle/dependencies/com.github.spotbugs/spotbugs-gradle-plugin-2.0.0.jar b/lib/info.java/cnf/gradle/dependencies/com.github.spotbugs/spotbugs-gradle-plugin-2.0.0.jar
new file mode 100644 (file)
index 0000000..b186e62
Binary files /dev/null and b/lib/info.java/cnf/gradle/dependencies/com.github.spotbugs/spotbugs-gradle-plugin-2.0.0.jar differ
index dcb38d2..28e2d99 100644 (file)
@@ -23,7 +23,7 @@ setup that is delivered by Bndtools itself.
 
 Among other things it has the following extra features:
 
 
 Among other things it has the following extra features:
 
-* Support for FindBugs
+* Support for SpotBugs
 * Support for JUnit code coverage reports through Jacoco
 * An easily customisable setup
 * Documentation
 * Support for JUnit code coverage reports through Jacoco
 * An easily customisable setup
 * Documentation
@@ -107,12 +107,12 @@ Contributions are welcome!
     * [distClean](#BuildTasksDistClean)
     * [distcleanNeeded](#BuildTasksDistCleanNeeded)
   * [Java Projects](#BuildTasksJavaProjects)
     * [distClean](#BuildTasksDistClean)
     * [distcleanNeeded](#BuildTasksDistCleanNeeded)
   * [Java Projects](#BuildTasksJavaProjects)
-    * [Findbugs](#BuildTasksFindbugs)
-      * [findbugsMain](#BuildTasksFindbugsMain)
-      * [findbugsTest](#BuildTasksFindbugsTest)
-      * [findbugs](#BuildTasksfindbugs)
-      * [findbugstest](#BuildTasksfindbugstest)
-      * [Settings](#FindbugsSettings)
+    * [Spotbugs](#BuildTasksSpotbugs)
+      * [spotbugsMain](#BuildTasksSpotbugsMain)
+      * [spotbugsTest](#BuildTasksSpotbugsTest)
+      * [spotbugs](#BuildTasksSpotbugs)
+      * [spotbugstest](#BuildTasksSpotbugstest)
+      * [Settings](#SpotbugsSettings)
     * [Jacoco](#BuildTasksJacoco)
       * [Settings](#BuildTasksJacocoSettings)
     * [javadoc](#BuildTasksJavadoc)
     * [Jacoco](#BuildTasksJacoco)
       * [Settings](#BuildTasksJacocoSettings)
     * [javadoc](#BuildTasksJavadoc)
@@ -123,7 +123,7 @@ Contributions are welcome!
       * [Settings](#BuildTasksRootProjectSettings)
 * [Build Options](#BuildOptions)
   * [Bnd Projects](#BuildOptionsBndProjects)
       * [Settings](#BuildTasksRootProjectSettings)
 * [Build Options](#BuildOptions)
   * [Bnd Projects](#BuildOptionsBndProjects)
-  * [Findbugs](#BuildOptionsFindbugs)
+  * [Spotbugs](#BuildOptionsSpotbugs)
 * [Customising The Build](#CustomisingTheBuild)
   * [Gradle](#CustomisingTheBuildGradle)
   * [Bnd](#CustomisingTheBuildBnd)
 * [Customising The Build](#CustomisingTheBuild)
   * [Gradle](#CustomisingTheBuildGradle)
   * [Bnd](#CustomisingTheBuildBnd)
@@ -537,7 +537,7 @@ The build has the following flow:
 
       * The javaDoc task is setup.
 
 
       * The javaDoc task is setup.
 
-      * The findbugs tasks are setup.
+      * The spotbugs tasks are setup.
 
       * The jacoco task is setup.
 
 
       * The jacoco task is setup.
 
@@ -793,60 +793,60 @@ This section discusses tasks that are added to all Java projects (which
 includes Bnd projects).
 
 
 includes Bnd projects).
 
 
-### <a name="BuildTasksFindbugs"/>Findbugs
+### <a name="BuildTasksSpotbugs"/>Spotbugs
 
 
-The findbugs plugin is applied to all Java projects. This plugin adds the
-tasks ```findbugsMain``` and ```findbugsTest```.
+The spotbugs plugin is applied to all Java projects. This plugin adds the
+tasks ```spotbugsMain``` and ```spotbugsTest```.
 
 
-These two tasks are disabled by default since running findbugs is an
+These two tasks are disabled by default since running spotbugs is an
 expensive operation and is not needed for most builds. Enabling these tasks
 is discussed below.
 
 expensive operation and is not needed for most builds. Enabling these tasks
 is discussed below.
 
-**Note**: The reports that are generated by the findbugs tasks will only have
+**Note**: The reports that are generated by the spotbugs tasks will only have
 line numbers when the tasks are run on a build that produces artefacts with
 debug information.
 
 line numbers when the tasks are run on a build that produces artefacts with
 debug information.
 
-#### <a name="BuildTasksFindbugsMain"/>findbugsMain
+#### <a name="BuildTasksSpotbugsMain"/>spotbugsMain
 
 
-This task will run findbugs on the main source code.
+This task will run spotbugs on the main source code.
 
 
-#### <a name="BuildTasksFindbugsTest"/>findbugsTest
+#### <a name="BuildTasksSpotbugsTest"/>spotbugsTest
 
 
-This task will run findbugs on the test source code.
+This task will run spotbugs on the test source code.
 
 
-#### <a name="BuildTasksfindbugs"/>findbugs
+#### <a name="BuildTasksSpotbugs"/>spotbugs
 
 
-Specifying this (virtual) task will **enable** the ```findbugsMain``` task.
+Specifying this (virtual) task will **enable** the ```spotbugsMain``` task.
 
 **Note**: It is still required to specify a task that has a dependency on
 
 **Note**: It is still required to specify a task that has a dependency on
-the ```findbugsMain``` task to actually run it. The tasks ```check```
+the ```spotbugsMain``` task to actually run it. The tasks ```check```
 and ```build``` are examples of such a task.
 
 and ```build``` are examples of such a task.
 
-#### <a name="BuildTasksfindbugstest"/>findbugstest
+#### <a name="BuildTasksSpotbugstest"/>spotbugstest
 
 
-Specifying this (virtual) task will **enable** the ```findbugsTest``` task.
+Specifying this (virtual) task will **enable** the ```spotbugsTest``` task.
 
 **Note**: it is still required to specify a task that has a dependency on
 
 **Note**: it is still required to specify a task that has a dependency on
-the ```findbugsTest``` task to actually run it. The tasks ```check```
+the ```spotbugsTest``` task to actually run it. The tasks ```check```
 and ```build``` are examples of such a task.
 
 and ```build``` are examples of such a task.
 
-#### <a name="FindbugsSettings"/>Settings
+#### <a name="SpotbugsSettings"/>Settings
 
 
-* &nbsp;```findbugsReportXML```: The name of the property that must be defined
+* &nbsp;```spotbugsReportXML```: The name of the property that must be defined
                                  in order to generate XML reports instead of
                                  in order to generate XML reports instead of
-                                 HTML reports (since the findbugs plugin can't
+                                 HTML reports (since the spotbugs plugin can't
                                  create them both at the same time). Defaults
                                  to **CI**.
 
                                  create them both at the same time). Defaults
                                  to **CI**.
 
-* &nbsp;```findbugsIgnoreFailures```: **true** to ignore findbugs warning (to
+* &nbsp;```spotbugsIgnoreFailures```: **true** to ignore spotbugs warning (to
                                       **not** fail the build). Defaults
                                       to **true**.
 
                                       **not** fail the build). Defaults
                                       to **true**.
 
-* &nbsp;```findbugsIncludesFile```: The file with include rules. Defaults
-                                    to ```${rootProject.rootDir}/${rootProject.bnd_cnf}/findbugs/findbugs.include.xml```.
+* &nbsp;```spotbugsIncludesFile```: The file with include rules. Defaults
+                                    to ```${rootProject.rootDir}/${rootProject.bnd_cnf}/spotbugs/spotbugs.include.xml```.
 
 
-* &nbsp;```findbugsExcludesFile```: The file with exclude rules. Defaults
-                                    to ```{rootProject.rootDir}/${rootProject.bnd_cnf}/findbugs/findbugs.exclude.xml```.
+* &nbsp;```spotbugsExcludesFile```: The file with exclude rules. Defaults
+                                    to ```{rootProject.rootDir}/${rootProject.bnd_cnf}/spotbugs/spotbugs.exclude.xml```.
 
 The defaults for the settings can be overridden by defining the settings in
 the project's ```build-settings.gradle``` file.
 
 The defaults for the settings can be overridden by defining the settings in
 the project's ```build-settings.gradle``` file.
@@ -1128,9 +1128,9 @@ the project's ```build-settings.gradle``` file.
   * Absence of the ```-releaserepo``` instruction in any of the Bnd files.
 
 
   * Absence of the ```-releaserepo``` instruction in any of the Bnd files.
 
 
-## <a name="BuildOptionsFindbugs"/>Findbugs
+## <a name="BuildOptionsSpotbugs"/>Spotbugs
 
 
-The findbugs tasks will - by default - generate HTML reports, but can be
+The spotbugs tasks will - by default - generate HTML reports, but can be
 instructed to generate XML reports by setting the ```CI``` Gradle system
 property (```-PCI``` on the command line).
 
 instructed to generate XML reports by setting the ```CI``` Gradle system
 property (```-PCI``` on the command line).
 
@@ -1181,7 +1181,7 @@ see [Java Projects](#BuildTasksJavaProjects).
 
 The ```build-settings.gradle``` file shown below can be used as the basis.
 This will setup the Java project with the default Bnd layout and add tasks
 
 The ```build-settings.gradle``` file shown below can be used as the basis.
 This will setup the Java project with the default Bnd layout and add tasks
-that are relevant to a Java project (```javadoc```, ```findbugs...```, etc.).
+that are relevant to a Java project (```javadoc```, ```spotbugs...```, etc.).
 
 ```
 /*
 
 ```
 /*
@@ -1281,7 +1281,7 @@ screenshot):
 
 * build timeout plugin
 * build-name-setter
 
 * build timeout plugin
 * build-name-setter
-* FindBugs Plug-in
+* Warnings Next Generation Plug-in
 * Git Parameter Plug-In
 * GIT plugin
 * Gradle plugin
 * Git Parameter Plug-In
 * GIT plugin
 * Gradle plugin
index 8bd89de..46c3df4 100644 (file)
@@ -9,7 +9,9 @@ This workspace is compatible with all bndtools versions since 3.3.0.REL.
 
 # Changes since bndtools 4.2.0 release
 
 
 # Changes since bndtools 4.2.0 release
 
-* this: -
+* Replace findbugs by spotbugs.
+  Everything 'findbugs' is renamed to 'spotbugs', except for the
+  XML tags in the ```<cnf>/spotbugs/spotbugs.*.xml``` files.
 
 # Changes since bndtools 4.1.0 release
 
 
 # Changes since bndtools 4.1.0 release
 
@@ -36,7 +38,7 @@ This workspace is compatible with all bndtools versions since 3.3.0.REL.
 
 # Changes since bndtools 3.3.0 release
 
 
 # Changes since bndtools 3.3.0 release
 
-* Fix typos in cnf/ext/repositories.bnd
+* Fix typos in ```<cnf>/ext/repositories.bnd```
 
 * update build.bnd
   Main update is to compile with debug information for non-batch builds.
 
 * update build.bnd
   Main update is to compile with debug information for non-batch builds.
@@ -163,8 +165,8 @@ Below the changes that affect users are detailed.
   when they're invoked and the scope they affect.
 * Default tasks are no longer set up.
 * The build dependencies cache directory is no longer configurable and is fixed
   when they're invoked and the scope they affect.
 * Default tasks are no longer set up.
 * The build dependencies cache directory is no longer configurable and is fixed
-  to ```cnf/cache```.
-* The build properties in ```cnf/build.gradle.properties``` were moved
+  to ```<cnf>/cache```.
+* The build properties in ```<cnf>/build.gradle.properties``` were moved
   to ```gradle.properties```.
 * Build dependencies now only support '*.uri' properties (configured
   in ```gradle.properties```), support for the '*.location' properties was
   to ```gradle.properties```.
 * Build dependencies now only support '*.uri' properties (configured
   in ```gradle.properties```), support for the '*.location' properties was
@@ -172,7 +174,7 @@ Below the changes that affect users are detailed.
   name-change. It is also no longer needed to list the bnd jar in these
   properties because it is defined in the ```gradle.properties``` file.
 * The template now automatically applies the
   name-change. It is also no longer needed to list the bnd jar in these
   properties because it is defined in the ```gradle.properties``` file.
 * The template now automatically applies the
-  buildscript ```cnf/gradle/template/javaProject.gradle``` to projects that
+  buildscript ```<cnf>/gradle/template/javaProject.gradle``` to projects that
   hava applied the Gradle Java plugin.
 * The bindex and repoindex properties for the jar and the main class are no
   longer configurable.
   hava applied the Gradle Java plugin.
 * The bindex and repoindex properties for the jar and the main class are no
   longer configurable.
@@ -203,8 +205,8 @@ Below the changes that affect users are detailed.
     to ```javadoc...```.
   * The ```gradleBuildFindbugs...``` properties were renamed
     to ```findbugs...```.
     to ```javadoc...```.
   * The ```gradleBuildFindbugs...``` properties were renamed
     to ```findbugs...```.
-* The findbugs include and exclude files were moved from ```cnf```
-  to ```cnf/findbugs```.
+* The findbugs include and exclude files were moved from ```<cnf>```
+  to ```<cnf>/findbugs```.
 * The official bnd plugin as delivered by the bnd project is now used. This adds
   support for all features that it implements, like setting the Java 8 compiler
   profile (through ```javac.profile``` in a bnd file).
 * The official bnd plugin as delivered by the bnd project is now used. This adds
   support for all features that it implements, like setting the Java 8 compiler
   profile (through ```javac.profile``` in a bnd file).
@@ -236,7 +238,7 @@ bndTestSrcBinDir
 bndTargetDir
 ```
 
 bndTargetDir
 ```
 
-* The file ```cnf/gradle/bndLayout.gradle``` was removed. Projects usings it
+* The file ```<cnf>/gradle/bndLayout.gradle``` was removed. Projects usings it
   should manually setup their source sets
   (as described [here](BUILDING-GRADLE.md#AddingJavaProjectsToTheBuild)).
 * The property ```in.ant``` is no longer set to indicate a headless build.
   should manually setup their source sets
   (as described [here](BUILDING-GRADLE.md#AddingJavaProjectsToTheBuild)).
 * The property ```in.ant``` is no longer set to indicate a headless build.
@@ -244,8 +246,8 @@ bndTargetDir
   For example: setting a different release repository in the gradle build can
   be accomplished by
   setting ```-releaserepo:${if;${driver;gradle};ReleaseCI;Release}``` in the
   For example: setting a different release repository in the gradle build can
   be accomplished by
   setting ```-releaserepo:${if;${driver;gradle};ReleaseCI;Release}``` in the
-  file ```cnf/ext/repositories.bnd```.
+  file ```<cnf>/ext/repositories.bnd```.
 * The ```jsr14``` compiler target is no longer directly supported.
   Refer to the official bnd plugin for details.
 * Some task dependencies were adjusted, see
 * The ```jsr14``` compiler target is no longer directly supported.
   Refer to the official bnd plugin for details.
 * Some task dependencies were adjusted, see
-  the ```cnf/gradle/doc/template.svg``` diagram for details.
+  the ```<cnf>/gradle/doc/template.svg``` diagram for details.
index f6e62ff..0c630cf 100644 (file)
@@ -101,8 +101,8 @@ digraph GradleSetup {
     subgraph cluster110 {
       label="";
       style=invis;
     subgraph cluster110 {
       label="";
       style=invis;
-      findbugsMain         [shape=box, style=filled, fillcolor=orange   , label="findbugsMain"        ]
-      findbugsTest         [shape=box, style=filled, fillcolor=orange   , label="findbugsTest"        ]
+      spotbugsMain         [shape=box, style=filled, fillcolor=orange   , label="spotbugsMain"        ]
+      spotbugsTest         [shape=box, style=filled, fillcolor=orange   , label="spotbugsTest"        ]
     }
 
     javadoc                [shape=box, style=filled, fillcolor=orange   , label="javadoc"             ]
     }
 
     javadoc                [shape=box, style=filled, fillcolor=orange   , label="javadoc"             ]
@@ -150,10 +150,10 @@ digraph GradleSetup {
     clean                  -> cleanNeeded
     cleanNeeded            -> cleanNeeded        [color=red   ]
 
     clean                  -> cleanNeeded
     cleanNeeded            -> cleanNeeded        [color=red   ]
 
-    assemble               -> findbugsMain
-    test                   -> findbugsTest
-    findbugsMain           -> check              [color=green ]
-    findbugsTest           -> check              [color=green ]
+    assemble               -> spotbugsMain
+    test                   -> spotbugsTest
+    spotbugsMain           -> check              [color=green ]
+    spotbugsTest           -> check              [color=green ]
     test                   -> jacocoTestReport   [color=magenta]
     check                  -> jacocoTestReport   [color=magenta]
   }
     test                   -> jacocoTestReport   [color=magenta]
     check                  -> jacocoTestReport   [color=magenta]
   }
index 699b7b0..d85a607 100644 (file)
@@ -4,16 +4,16 @@
 <!-- Generated by graphviz version 2.40.1 (0)
  -->
 <!-- Title: GradleSetup Pages: 1 -->
 <!-- Generated by graphviz version 2.40.1 (0)
  -->
 <!-- Title: GradleSetup Pages: 1 -->
-<svg width="1712pt" height="752pt"
- viewBox="0.00 0.00 1712.00 752.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1450pt" height="752pt"
+ viewBox="0.00 0.00 1450.00 752.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 748)">
 <title>GradleSetup</title>
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 748)">
 <title>GradleSetup</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-748 1708,-748 1708,4 -4,4"/>
-<text text-anchor="middle" x="76.5" y="-728.8" font-family="Times,serif" font-size="14.00" fill="#000000">Gradle Build Setup</text>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-748 1446,-748 1446,4 -4,4"/>
+<text text-anchor="middle" x="64" y="-728.8" font-family="Times,serif" font-size="14.00" fill="#000000">Gradle Build Setup</text>
 <g id="clust1" class="cluster">
 <title>cluster1</title>
 <g id="clust1" class="cluster">
 <title>cluster1</title>
-<polygon fill="#d3d3d3" stroke="#000000" points="8,-8 8,-713 1428,-713 1428,-8 8,-8"/>
-<text text-anchor="middle" x="116.5" y="-15.8" font-family="Times,serif" font-size="14.00" fill="#000000">Java Projects / Bnd Projects</text>
+<polygon fill="#d3d3d3" stroke="#000000" points="8,-8 8,-713 1202,-713 1202,-8 8,-8"/>
+<text text-anchor="middle" x="95.5" y="-15.8" font-family="Times,serif" font-size="14.00" fill="#000000">Java Projects / Bnd Projects</text>
 </g>
 <g id="clust2" class="cluster">
 <title>cluster101</title>
 </g>
 <g id="clust2" class="cluster">
 <title>cluster101</title>
 </g>
 <g id="clust12" class="cluster">
 <title>cluster2</title>
 </g>
 <g id="clust12" class="cluster">
 <title>cluster2</title>
-<polygon fill="#d3d3d3" stroke="#000000" points="1436,-387 1436,-622 1696,-622 1696,-387 1436,-387"/>
-<text text-anchor="middle" x="1486" y="-394.8" font-family="Times,serif" font-size="14.00" fill="#000000">All Projects</text>
+<polygon fill="#d3d3d3" stroke="#000000" points="1210,-387 1210,-622 1434,-622 1434,-387 1210,-387"/>
+<text text-anchor="middle" x="1251.5" y="-394.8" font-family="Times,serif" font-size="14.00" fill="#000000">All Projects</text>
 </g>
 <g id="clust13" class="cluster">
 <title>cluster201</title>
 </g>
 <g id="clust14" class="cluster">
 <title>cluster3</title>
 </g>
 <g id="clust13" class="cluster">
 <title>cluster201</title>
 </g>
 <g id="clust14" class="cluster">
 <title>cluster3</title>
-<polygon fill="#d3d3d3" stroke="#000000" points="1483,-630 1483,-705 1649,-705 1649,-630 1483,-630"/>
-<text text-anchor="middle" x="1536" y="-637.8" font-family="Times,serif" font-size="14.00" fill="#000000">Root Project</text>
+<polygon fill="#d3d3d3" stroke="#000000" points="1246,-630 1246,-705 1398,-705 1398,-630 1246,-630"/>
+<text text-anchor="middle" x="1290.5" y="-637.8" font-family="Times,serif" font-size="14.00" fill="#000000">Root Project</text>
 </g>
 <!-- compileJava -->
 <g id="node1" class="node">
 <title>compileJava</title>
 </g>
 <!-- compileJava -->
 <g id="node1" class="node">
 <title>compileJava</title>
-<polygon fill="#e0ffff" stroke="#000000" points="698,-697 594,-697 594,-661 698,-661 698,-697"/>
-<text text-anchor="middle" x="646" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">compileJava</text>
+<polygon fill="#e0ffff" stroke="#000000" points="604.5,-697 517.5,-697 517.5,-661 604.5,-661 604.5,-697"/>
+<text text-anchor="middle" x="561" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">compileJava</text>
 </g>
 <!-- classes -->
 <g id="node3" class="node">
 <title>classes</title>
 </g>
 <!-- classes -->
 <g id="node3" class="node">
 <title>classes</title>
-<polygon fill="#e0ffff" stroke="#000000" points="537,-606 469,-606 469,-570 537,-570 537,-606"/>
-<text text-anchor="middle" x="503" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">classes</text>
+<polygon fill="#e0ffff" stroke="#000000" points="468,-606 414,-606 414,-570 468,-570 468,-606"/>
+<text text-anchor="middle" x="441" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">classes</text>
 </g>
 <!-- compileJava&#45;&gt;classes -->
 <g id="edge1" class="edge">
 <title>compileJava&#45;&gt;classes</title>
 </g>
 <!-- compileJava&#45;&gt;classes -->
 <g id="edge1" class="edge">
 <title>compileJava&#45;&gt;classes</title>
-<path fill="none" stroke="#000000" d="M625.6214,-660.8935C614.1264,-651.1339 599.2489,-639.2349 585,-630 572.9031,-622.1599 559.1606,-614.6345 546.4304,-608.174"/>
-<polygon fill="#000000" stroke="#000000" points="547.8898,-604.9909 537.3778,-603.6687 544.7709,-611.2577 547.8898,-604.9909"/>
+<path fill="none" stroke="#000000" d="M543.1017,-660.8828C533.1617,-651.2332 520.3413,-639.4418 508,-630 498.3019,-622.5804 487.2549,-615.2464 476.967,-608.8343"/>
+<polygon fill="#000000" stroke="#000000" points="478.5318,-605.6887 468.1745,-603.4578 474.88,-611.6607 478.5318,-605.6887"/>
 </g>
 <!-- processResources -->
 <g id="node2" class="node">
 <title>processResources</title>
 </g>
 <!-- processResources -->
 <g id="node2" class="node">
 <title>processResources</title>
-<polygon fill="#e0ffff" stroke="#000000" points="576,-697 430,-697 430,-661 576,-661 576,-697"/>
-<text text-anchor="middle" x="503" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">processResources</text>
+<polygon fill="#e0ffff" stroke="#000000" points="499,-697 383,-697 383,-661 499,-661 499,-697"/>
+<text text-anchor="middle" x="441" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">processResources</text>
 </g>
 <!-- processResources&#45;&gt;classes -->
 <g id="edge2" class="edge">
 <title>processResources&#45;&gt;classes</title>
 </g>
 <!-- processResources&#45;&gt;classes -->
 <g id="edge2" class="edge">
 <title>processResources&#45;&gt;classes</title>
-<path fill="none" stroke="#000000" d="M503,-660.5848C503,-647.9209 503,-630.8558 503,-616.4541"/>
-<polygon fill="#000000" stroke="#000000" points="506.5001,-616.0772 503,-606.0773 499.5001,-616.0773 506.5001,-616.0772"/>
+<path fill="none" stroke="#000000" d="M441,-660.5848C441,-647.9209 441,-630.8558 441,-616.4541"/>
+<polygon fill="#000000" stroke="#000000" points="444.5001,-616.0772 441,-606.0773 437.5001,-616.0773 444.5001,-616.0772"/>
 </g>
 <!-- jar -->
 <g id="node4" class="node">
 <title>jar</title>
 </g>
 <!-- jar -->
 <g id="node4" class="node">
 <title>jar</title>
-<polygon fill="#00ffff" stroke="#000000" points="634,-534 580,-534 580,-498 634,-498 634,-534"/>
-<text text-anchor="middle" x="607" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">jar</text>
+<polygon fill="#00ffff" stroke="#000000" points="551,-534 497,-534 497,-498 551,-498 551,-534"/>
+<text text-anchor="middle" x="524" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">jar</text>
 </g>
 <!-- classes&#45;&gt;jar -->
 <g id="edge4" class="edge">
 <title>classes&#45;&gt;jar</title>
 </g>
 <!-- classes&#45;&gt;jar -->
 <g id="edge4" class="edge">
 <title>classes&#45;&gt;jar</title>
-<path fill="none" stroke="#000000" d="M529.2436,-569.8314C542.2995,-560.7927 558.2535,-549.7476 572.3047,-540.0198"/>
-<polygon fill="#000000" stroke="#000000" points="574.5351,-542.7326 580.7648,-534.1628 570.5506,-536.9773 574.5351,-542.7326"/>
+<path fill="none" stroke="#000000" d="M461.9444,-569.8314C472.0691,-561.0485 484.3777,-550.3712 495.3548,-540.8489"/>
+<polygon fill="#000000" stroke="#000000" points="497.8019,-543.3595 503.0623,-534.1628 493.2149,-538.0718 497.8019,-543.3595"/>
 </g>
 <!-- compileTestJava -->
 <g id="node5" class="node">
 <title>compileTestJava</title>
 </g>
 <!-- compileTestJava -->
 <g id="node5" class="node">
 <title>compileTestJava</title>
-<polygon fill="#e0ffff" stroke="#000000" points="504,-534 370,-534 370,-498 504,-498 504,-534"/>
-<text text-anchor="middle" x="437" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">compileTestJava</text>
+<polygon fill="#e0ffff" stroke="#000000" points="431,-534 321,-534 321,-498 431,-498 431,-534"/>
+<text text-anchor="middle" x="376" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">compileTestJava</text>
 </g>
 <!-- classes&#45;&gt;compileTestJava -->
 <g id="edge3" class="edge">
 <title>classes&#45;&gt;compileTestJava</title>
 </g>
 <!-- classes&#45;&gt;compileTestJava -->
 <g id="edge3" class="edge">
 <title>classes&#45;&gt;compileTestJava</title>
-<path fill="none" stroke="#000000" d="M486.3454,-569.8314C478.5886,-561.3694 469.2198,-551.1489 460.739,-541.8971"/>
-<polygon fill="#000000" stroke="#000000" points="463.2162,-539.4198 453.8788,-534.4133 458.0561,-544.1499 463.2162,-539.4198"/>
+<path fill="none" stroke="#000000" d="M424.5978,-569.8314C416.9585,-561.3694 407.7317,-551.1489 399.3793,-541.8971"/>
+<polygon fill="#000000" stroke="#000000" points="401.9221,-539.4906 392.6231,-534.4133 396.7262,-544.1813 401.9221,-539.4906"/>
 </g>
 <!-- test -->
 <g id="node8" class="node">
 <title>test</title>
 </g>
 <!-- test -->
 <g id="node8" class="node">
 <title>test</title>
-<polygon fill="#e0ffff" stroke="#000000" points="138,-371 84,-371 84,-335 138,-335 138,-371"/>
-<text text-anchor="middle" x="111" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">test</text>
+<polygon fill="#e0ffff" stroke="#000000" points="129,-371 75,-371 75,-335 129,-335 129,-371"/>
+<text text-anchor="middle" x="102" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">test</text>
 </g>
 <!-- classes&#45;&gt;test -->
 <g id="edge5" class="edge">
 <title>classes&#45;&gt;test</title>
 </g>
 <!-- classes&#45;&gt;test -->
 <g id="edge5" class="edge">
 <title>classes&#45;&gt;test</title>
-<path fill="none" stroke="#000000" d="M468.739,-585.52C386.8442,-579.293 184.8353,-562.0548 162,-542 115.6047,-501.254 109.3756,-423.1475 109.6689,-381.2334"/>
-<polygon fill="#000000" stroke="#000000" points="113.1696,-381.2273 109.8715,-371.1589 106.171,-381.0864 113.1696,-381.2273"/>
+<path fill="none" stroke="#000000" d="M413.7825,-587.3739C349.213,-585.3267 189.3063,-576.782 151,-542 105.4051,-500.5999 99.8477,-422.7677 100.4634,-381.068"/>
+<polygon fill="#000000" stroke="#000000" points="103.9627,-381.141 100.7422,-371.0475 96.9654,-380.9463 103.9627,-381.141"/>
 </g>
 <!-- uploadArchives -->
 <g id="node9" class="node">
 <title>uploadArchives</title>
 </g>
 <!-- uploadArchives -->
 <g id="node9" class="node">
 <title>uploadArchives</title>
-<polygon fill="#e0ffff" stroke="#000000" points="671,-462 543,-462 543,-426 671,-426 671,-462"/>
-<text text-anchor="middle" x="607" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">uploadArchives</text>
+<polygon fill="#e0ffff" stroke="#000000" points="577.5,-462 470.5,-462 470.5,-426 577.5,-426 577.5,-462"/>
+<text text-anchor="middle" x="524" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">uploadArchives</text>
 </g>
 <!-- jar&#45;&gt;uploadArchives -->
 <g id="edge8" class="edge">
 <title>jar&#45;&gt;uploadArchives</title>
 </g>
 <!-- jar&#45;&gt;uploadArchives -->
 <g id="edge8" class="edge">
 <title>jar&#45;&gt;uploadArchives</title>
-<path fill="none" stroke="#000000" d="M607,-497.8314C607,-490.131 607,-480.9743 607,-472.4166"/>
-<polygon fill="#000000" stroke="#000000" points="610.5001,-472.4132 607,-462.4133 603.5001,-472.4133 610.5001,-472.4132"/>
+<path fill="none" stroke="#000000" d="M524,-497.8314C524,-490.131 524,-480.9743 524,-472.4166"/>
+<polygon fill="#000000" stroke="#000000" points="527.5001,-472.4132 524,-462.4133 520.5001,-472.4133 527.5001,-472.4132"/>
 </g>
 <!-- assemble -->
 <g id="node10" class="node">
 <title>assemble</title>
 </g>
 <!-- assemble -->
 <g id="node10" class="node">
 <title>assemble</title>
-<polygon fill="#e0ffff" stroke="#000000" points="772.5,-462 689.5,-462 689.5,-426 772.5,-426 772.5,-462"/>
-<text text-anchor="middle" x="731" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">assemble</text>
+<polygon fill="#e0ffff" stroke="#000000" points="664,-462 596,-462 596,-426 664,-426 664,-462"/>
+<text text-anchor="middle" x="630" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">assemble</text>
 </g>
 <!-- jar&#45;&gt;assemble -->
 <g id="edge9" class="edge">
 <title>jar&#45;&gt;assemble</title>
 </g>
 <!-- jar&#45;&gt;assemble -->
 <g id="edge9" class="edge">
 <title>jar&#45;&gt;assemble</title>
-<path fill="none" stroke="#000000" d="M634.2123,-500.1993C650.8768,-490.5231 672.4988,-477.9685 691.0782,-467.1804"/>
-<polygon fill="#000000" stroke="#000000" points="693.0292,-470.0949 699.9196,-462.0467 689.5142,-464.0413 693.0292,-470.0949"/>
+<path fill="none" stroke="#000000" d="M550.7483,-497.8314C564.0553,-488.7927 580.316,-477.7476 594.6375,-468.0198"/>
+<polygon fill="#000000" stroke="#000000" points="596.9547,-470.677 603.2603,-462.1628 593.0215,-464.8864 596.9547,-470.677"/>
 </g>
 <!-- testClasses -->
 <g id="node7" class="node">
 <title>testClasses</title>
 </g>
 <!-- testClasses -->
 <g id="node7" class="node">
 <title>testClasses</title>
-<polygon fill="#e0ffff" stroke="#000000" points="312.5,-462 213.5,-462 213.5,-426 312.5,-426 312.5,-462"/>
-<text text-anchor="middle" x="263" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">testClasses</text>
+<polygon fill="#e0ffff" stroke="#000000" points="271.5,-462 194.5,-462 194.5,-426 271.5,-426 271.5,-462"/>
+<text text-anchor="middle" x="233" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">testClasses</text>
 </g>
 <!-- compileTestJava&#45;&gt;testClasses -->
 <g id="edge6" class="edge">
 <title>compileTestJava&#45;&gt;testClasses</title>
 </g>
 <!-- compileTestJava&#45;&gt;testClasses -->
 <g id="edge6" class="edge">
 <title>compileTestJava&#45;&gt;testClasses</title>
-<path fill="none" stroke="#000000" d="M393.0925,-497.8314C369.7176,-488.159 340.7903,-476.1891 316.1532,-465.9944"/>
-<polygon fill="#000000" stroke="#000000" points="317.1702,-462.6275 306.5918,-462.038 314.4937,-469.0956 317.1702,-462.6275"/>
+<path fill="none" stroke="#000000" d="M339.9151,-497.8314C321.2011,-488.4089 298.1568,-476.8062 278.26,-466.7883"/>
+<polygon fill="#000000" stroke="#000000" points="279.5792,-463.5339 269.0734,-462.1628 276.4311,-469.7861 279.5792,-463.5339"/>
 </g>
 <!-- processTestResources -->
 <g id="node6" class="node">
 <title>processTestResources</title>
 </g>
 <!-- processTestResources -->
 <g id="node6" class="node">
 <title>processTestResources</title>
-<polygon fill="#e0ffff" stroke="#000000" points="351.5,-534 174.5,-534 174.5,-498 351.5,-498 351.5,-534"/>
-<text text-anchor="middle" x="263" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">processTestResources</text>
+<polygon fill="#e0ffff" stroke="#000000" points="303,-534 163,-534 163,-498 303,-498 303,-534"/>
+<text text-anchor="middle" x="233" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">processTestResources</text>
 </g>
 <!-- processTestResources&#45;&gt;testClasses -->
 <g id="edge7" class="edge">
 <title>processTestResources&#45;&gt;testClasses</title>
 </g>
 <!-- processTestResources&#45;&gt;testClasses -->
 <g id="edge7" class="edge">
 <title>processTestResources&#45;&gt;testClasses</title>
-<path fill="none" stroke="#000000" d="M263,-497.8314C263,-490.131 263,-480.9743 263,-472.4166"/>
-<polygon fill="#000000" stroke="#000000" points="266.5001,-472.4132 263,-462.4133 259.5001,-472.4133 266.5001,-472.4132"/>
+<path fill="none" stroke="#000000" d="M233,-497.8314C233,-490.131 233,-480.9743 233,-472.4166"/>
+<polygon fill="#000000" stroke="#000000" points="236.5001,-472.4132 233,-462.4133 229.5001,-472.4133 236.5001,-472.4132"/>
 </g>
 <!-- testClasses&#45;&gt;test -->
 <g id="edge10" class="edge">
 <title>testClasses&#45;&gt;test</title>
 </g>
 <!-- testClasses&#45;&gt;test -->
 <g id="edge10" class="edge">
 <title>testClasses&#45;&gt;test</title>
-<path fill="none" stroke="#000000" d="M232.6059,-425.8035C207.8839,-411.0029 172.9453,-390.0857 146.8574,-374.4673"/>
-<polygon fill="#000000" stroke="#000000" points="148.4079,-371.3163 138.0302,-369.1825 144.8122,-377.3222 148.4079,-371.3163"/>
+<path fill="none" stroke="#000000" d="M206.805,-425.8035C186.6346,-411.792 158.573,-392.2988 136.5624,-377.009"/>
+<polygon fill="#000000" stroke="#000000" points="138.3593,-373.9956 128.1496,-371.165 134.3656,-379.7446 138.3593,-373.9956"/>
 </g>
 <!-- check -->
 <g id="node12" class="node">
 <title>check</title>
 </g>
 <!-- check -->
 <g id="node12" class="node">
 <title>check</title>
-<polygon fill="#00ffff" stroke="#000000" points="383.5,-227 324.5,-227 324.5,-191 383.5,-191 383.5,-227"/>
-<text text-anchor="middle" x="354" y="-205.3" font-family="Times,serif" font-size="14.00" fill="#000000">check</text>
+<polygon fill="#00ffff" stroke="#000000" points="342,-227 288,-227 288,-191 342,-191 342,-227"/>
+<text text-anchor="middle" x="315" y="-205.3" font-family="Times,serif" font-size="14.00" fill="#000000">check</text>
 </g>
 <!-- test&#45;&gt;check -->
 <g id="edge14" class="edge">
 <title>test&#45;&gt;check</title>
 </g>
 <!-- test&#45;&gt;check -->
 <g id="edge14" class="edge">
 <title>test&#45;&gt;check</title>
-<path fill="none" stroke="#000000" d="M83.8097,-341.9858C69.163,-334.4811 52.413,-322.9811 44,-307 33.2342,-286.5496 28.5046,-272.1469 44,-255 83.3152,-211.4945 244.1627,-241.5817 314.1963,-228.0082"/>
-<polygon fill="#000000" stroke="#000000" points="315.3509,-231.3292 324.2351,-225.5568 313.6903,-224.529 315.3509,-231.3292"/>
+<path fill="none" stroke="#000000" d="M74.7535,-338.8186C63.0032,-331.1264 50.4864,-320.4232 44,-307 33.9446,-286.191 28.634,-272.2629 44,-255 77.7482,-217.0856 216.6287,-240.9759 278.056,-228.1539"/>
+<polygon fill="#000000" stroke="#000000" points="279.136,-231.4885 287.9039,-225.5409 277.3407,-224.7226 279.136,-231.4885"/>
 </g>
 </g>
-<!-- findbugsTest -->
+<!-- spotbugsTest -->
 <g id="node28" class="node">
 <g id="node28" class="node">
-<title>findbugsTest</title>
-<polygon fill="#ffa500" stroke="#000000" points="166,-299 56,-299 56,-263 166,-263 166,-299"/>
-<text text-anchor="middle" x="111" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">findbugsTest</text>
+<title>spotbugsTest</title>
+<polygon fill="#ffa500" stroke="#000000" points="148,-299 56,-299 56,-263 148,-263 148,-299"/>
+<text text-anchor="middle" x="102" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">spotbugsTest</text>
 </g>
 </g>
-<!-- test&#45;&gt;findbugsTest -->
+<!-- test&#45;&gt;spotbugsTest -->
 <g id="edge37" class="edge">
 <g id="edge37" class="edge">
-<title>test&#45;&gt;findbugsTest</title>
-<path fill="none" stroke="#000000" d="M111,-334.8314C111,-327.131 111,-317.9743 111,-309.4166"/>
-<polygon fill="#000000" stroke="#000000" points="114.5001,-309.4132 111,-299.4133 107.5001,-309.4133 114.5001,-309.4132"/>
+<title>test&#45;&gt;spotbugsTest</title>
+<path fill="none" stroke="#000000" d="M102,-334.8314C102,-327.131 102,-317.9743 102,-309.4166"/>
+<polygon fill="#000000" stroke="#000000" points="105.5001,-309.4132 102,-299.4133 98.5001,-309.4133 105.5001,-309.4132"/>
 </g>
 <!-- jacocoTestReport -->
 <g id="node34" class="node">
 <title>jacocoTestReport</title>
 </g>
 <!-- jacocoTestReport -->
 <g id="node34" class="node">
 <title>jacocoTestReport</title>
-<polygon fill="#ffa500" stroke="#000000" points="232,-155 90,-155 90,-119 232,-119 232,-155"/>
-<text text-anchor="middle" x="161" y="-133.3" font-family="Times,serif" font-size="14.00" fill="#000000">jacocoTestReport</text>
+<polygon fill="#ffa500" stroke="#000000" points="201,-155 85,-155 85,-119 201,-119 201,-155"/>
+<text text-anchor="middle" x="143" y="-133.3" font-family="Times,serif" font-size="14.00" fill="#000000">jacocoTestReport</text>
 </g>
 <!-- test&#45;&gt;jacocoTestReport -->
 <g id="edge40" class="edge">
 <title>test&#45;&gt;jacocoTestReport</title>
 </g>
 <!-- test&#45;&gt;jacocoTestReport -->
 <g id="edge40" class="edge">
 <title>test&#45;&gt;jacocoTestReport</title>
-<path fill="none" stroke="#ff00ff" d="M83.9211,-345.3294C65.4321,-338.5221 42.3122,-326.5535 31,-307 19.4268,-286.9954 21.6422,-276.1319 31,-255 49.1625,-213.9852 89.4035,-181.1312 120.3369,-160.6093"/>
-<polygon fill="#ff00ff" stroke="#ff00ff" points="122.2867,-163.5165 128.7888,-155.1515 118.4893,-157.636 122.2867,-163.5165"/>
+<path fill="none" stroke="#ff00ff" d="M74.6812,-343.0665C58.8473,-335.7306 40.2599,-324.0329 31,-307 19.9615,-286.6955 22.4349,-276.4654 31,-255 46.5575,-216.0105 81.8011,-182.5202 108.6288,-161.2855"/>
+<polygon fill="#ff00ff" stroke="#ff00ff" points="110.8725,-163.9751 116.6534,-155.0964 106.5974,-158.4322 110.8725,-163.9751"/>
 </g>
 <!-- assemble&#45;&gt;compileJava -->
 <g id="edge22" class="edge">
 <title>assemble&#45;&gt;compileJava</title>
 </g>
 <!-- assemble&#45;&gt;compileJava -->
 <g id="edge22" class="edge">
 <title>assemble&#45;&gt;compileJava</title>
-<path fill="none" stroke="#ff0000" d="M724.4491,-462.1113C709.6564,-503.0087 673.5892,-602.724 655.9896,-651.3817"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="652.6388,-650.3559 652.5287,-660.9502 659.2214,-652.7369 652.6388,-650.3559"/>
+<path fill="none" stroke="#ff0000" d="M624.6822,-462.1113C612.6992,-502.9231 583.5184,-602.3071 569.1991,-651.0756"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="565.7588,-650.3691 566.2997,-660.9502 572.4753,-652.3413 565.7588,-650.3691"/>
 </g>
 <!-- testOSGi -->
 <g id="node11" class="node">
 <title>testOSGi</title>
 </g>
 <!-- testOSGi -->
 <g id="node11" class="node">
 <title>testOSGi</title>
-<polygon fill="#00ffff" stroke="#000000" points="432,-299 350,-299 350,-263 432,-263 432,-299"/>
-<text text-anchor="middle" x="391" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">testOSGi</text>
+<polygon fill="#00ffff" stroke="#000000" points="378,-299 310,-299 310,-263 378,-263 378,-299"/>
+<text text-anchor="middle" x="344" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">testOSGi</text>
 </g>
 <!-- assemble&#45;&gt;testOSGi -->
 <g id="edge12" class="edge">
 <title>assemble&#45;&gt;testOSGi</title>
 </g>
 <!-- assemble&#45;&gt;testOSGi -->
 <g id="edge12" class="edge">
 <title>assemble&#45;&gt;testOSGi</title>
-<path fill="none" stroke="#000000" d="M720.3778,-425.7648C711.4718,-412.3906 697.4244,-395.1921 680,-387 637.7374,-367.1301 511.7376,-399.9501 470,-379 439.9593,-363.9211 417.4991,-331.5856 404.3545,-308.1726"/>
-<polygon fill="#000000" stroke="#000000" points="407.2777,-306.2188 399.4564,-299.0719 401.1137,-309.5363 407.2777,-306.2188"/>
+<path fill="none" stroke="#000000" d="M621.726,-425.8714C614.5837,-412.5545 602.9004,-395.381 587,-387 552.5616,-368.8477 446.0713,-397.8322 412,-379 384.4059,-363.7479 365.5821,-331.9749 354.8568,-308.7265"/>
+<polygon fill="#000000" stroke="#000000" points="357.9716,-307.114 350.7541,-299.3578 351.5595,-309.922 357.9716,-307.114"/>
 </g>
 <!-- release -->
 <g id="node14" class="node">
 <title>release</title>
 </g>
 <!-- release -->
 <g id="node14" class="node">
 <title>release</title>
-<polygon fill="#00ffff" stroke="#000000" points="601,-371 533,-371 533,-335 601,-335 601,-371"/>
-<text text-anchor="middle" x="567" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">release</text>
+<polygon fill="#00ffff" stroke="#000000" points="520,-371 466,-371 466,-335 520,-335 520,-371"/>
+<text text-anchor="middle" x="493" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">release</text>
 </g>
 <!-- assemble&#45;&gt;release -->
 <g id="edge23" class="edge">
 <title>assemble&#45;&gt;release</title>
 </g>
 <!-- assemble&#45;&gt;release -->
 <g id="edge23" class="edge">
 <title>assemble&#45;&gt;release</title>
-<path fill="none" stroke="#000000" d="M719.6466,-425.9088C710.5404,-412.9745 696.5687,-396.276 680,-387 662.6568,-377.2904 655.1555,-384.3036 636,-379 627.7533,-376.7167 619.1089,-373.8532 610.8368,-370.8681"/>
-<polygon fill="#000000" stroke="#000000" points="611.9359,-367.5427 601.3431,-367.3355 609.4947,-374.1032 611.9359,-367.5427"/>
+<path fill="none" stroke="#000000" d="M620.8033,-425.8485C613.3895,-413.0581 601.7754,-396.5668 587,-387 573.6058,-378.3275 567.1472,-384.0178 552,-379 544.6948,-376.58 537.0582,-373.5847 529.7949,-370.4975"/>
+<polygon fill="#000000" stroke="#000000" points="530.7513,-367.0948 520.1881,-366.2763 527.9353,-373.5034 530.7513,-367.0948"/>
 </g>
 <!-- testrunX -->
 <g id="node16" class="node">
 <title>testrunX</title>
 </g>
 <!-- testrunX -->
 <g id="node16" class="node">
 <title>testrunX</title>
-<polygon fill="#00ffff" stroke="#000000" points="1399.5,-371 1266.5,-371 1262.5,-367 1262.5,-335 1395.5,-335 1399.5,-339 1399.5,-371"/>
-<polyline fill="none" stroke="#000000" points="1395.5,-367 1262.5,-367 "/>
-<polyline fill="none" stroke="#000000" points="1395.5,-367 1395.5,-335 "/>
-<polyline fill="none" stroke="#000000" points="1395.5,-367 1399.5,-371 "/>
-<text text-anchor="middle" x="1331" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">testrun.&lt;name&gt;</text>
+<polygon fill="#00ffff" stroke="#000000" points="1174,-371 1072,-371 1068,-367 1068,-335 1170,-335 1174,-339 1174,-371"/>
+<polyline fill="none" stroke="#000000" points="1170,-367 1068,-367 "/>
+<polyline fill="none" stroke="#000000" points="1170,-367 1170,-335 "/>
+<polyline fill="none" stroke="#000000" points="1170,-367 1174,-371 "/>
+<text text-anchor="middle" x="1121" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">testrun.&lt;name&gt;</text>
 </g>
 <!-- assemble&#45;&gt;testrunX -->
 <g id="edge29" class="edge">
 <title>assemble&#45;&gt;testrunX</title>
 </g>
 <!-- assemble&#45;&gt;testrunX -->
 <g id="edge29" class="edge">
 <title>assemble&#45;&gt;testrunX</title>
-<path fill="none" stroke="#000000" d="M772.5138,-441.6959C861.6571,-436.1273 1077.6107,-419.3053 1254,-379 1260.1382,-377.5974 1266.4761,-375.8938 1272.7577,-374.0367"/>
-<polygon fill="#000000" stroke="#000000" points="1274.024,-377.3088 1282.5455,-371.0132 1271.9579,-370.6206 1274.024,-377.3088"/>
+<path fill="none" stroke="#000000" d="M664.2495,-441.69C737.7512,-436.1102 915.5823,-419.2678 1059,-379 1063.3528,-377.7779 1067.8077,-376.3303 1072.2343,-374.7536"/>
+<polygon fill="#000000" stroke="#000000" points="1073.7088,-377.9382 1081.8289,-371.1327 1071.2372,-371.389 1073.7088,-377.9382"/>
 </g>
 <!-- runX -->
 <g id="node17" class="node">
 <title>runX</title>
 </g>
 <!-- runX -->
 <g id="node17" class="node">
 <title>runX</title>
-<polygon fill="#00ffff" stroke="#000000" points="1244.5,-371 1139.5,-371 1135.5,-367 1135.5,-335 1240.5,-335 1244.5,-339 1244.5,-371"/>
-<polyline fill="none" stroke="#000000" points="1240.5,-367 1135.5,-367 "/>
-<polyline fill="none" stroke="#000000" points="1240.5,-367 1240.5,-335 "/>
-<polyline fill="none" stroke="#000000" points="1240.5,-367 1244.5,-371 "/>
-<text text-anchor="middle" x="1190" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">run.&lt;name&gt;</text>
+<polygon fill="#00ffff" stroke="#000000" points="1049.5,-371 966.5,-371 962.5,-367 962.5,-335 1045.5,-335 1049.5,-339 1049.5,-371"/>
+<polyline fill="none" stroke="#000000" points="1045.5,-367 962.5,-367 "/>
+<polyline fill="none" stroke="#000000" points="1045.5,-367 1045.5,-335 "/>
+<polyline fill="none" stroke="#000000" points="1045.5,-367 1049.5,-371 "/>
+<text text-anchor="middle" x="1006" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">run.&lt;name&gt;</text>
 </g>
 <!-- assemble&#45;&gt;runX -->
 <g id="edge28" class="edge">
 <title>assemble&#45;&gt;runX</title>
 </g>
 <!-- assemble&#45;&gt;runX -->
 <g id="edge28" class="edge">
 <title>assemble&#45;&gt;runX</title>
-<path fill="none" stroke="#000000" d="M772.6023,-440.2323C845.3408,-432.9674 999.8993,-414.5096 1126,-379 1130.5924,-377.7068 1135.3029,-376.1877 1139.984,-374.5441"/>
-<polygon fill="#000000" stroke="#000000" points="1141.336,-377.7759 1149.504,-371.028 1138.9107,-371.2095 1141.336,-377.7759"/>
+<path fill="none" stroke="#000000" d="M664.2312,-440.0565C724.0353,-432.5229 850.9018,-413.6667 953,-379 956.3027,-377.8786 959.6638,-376.5959 963.0096,-375.2146"/>
+<polygon fill="#000000" stroke="#000000" points="964.5917,-378.3424 972.3365,-371.1127 961.7736,-371.9347 964.5917,-378.3424"/>
 </g>
 <!-- resolveX -->
 <g id="node18" class="node">
 <title>resolveX</title>
 </g>
 <!-- resolveX -->
 <g id="node18" class="node">
 <title>resolveX</title>
-<polygon fill="#00ffff" stroke="#000000" points="1117,-371 985,-371 981,-367 981,-335 1113,-335 1117,-339 1117,-371"/>
-<polyline fill="none" stroke="#000000" points="1113,-367 981,-367 "/>
-<polyline fill="none" stroke="#000000" points="1113,-367 1113,-335 "/>
-<polyline fill="none" stroke="#000000" points="1113,-367 1117,-371 "/>
-<text text-anchor="middle" x="1049" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">resolve.&lt;name&gt;</text>
+<polygon fill="#00ffff" stroke="#000000" points="944,-371 840,-371 836,-367 836,-335 940,-335 944,-339 944,-371"/>
+<polyline fill="none" stroke="#000000" points="940,-367 836,-367 "/>
+<polyline fill="none" stroke="#000000" points="940,-367 940,-335 "/>
+<polyline fill="none" stroke="#000000" points="940,-367 944,-371 "/>
+<text text-anchor="middle" x="890" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">resolve.&lt;name&gt;</text>
 </g>
 <!-- assemble&#45;&gt;resolveX -->
 <g id="edge26" class="edge">
 <title>assemble&#45;&gt;resolveX</title>
 </g>
 <!-- assemble&#45;&gt;resolveX -->
 <g id="edge26" class="edge">
 <title>assemble&#45;&gt;resolveX</title>
-<path fill="none" stroke="#000000" d="M772.5883,-433.6214C820.8012,-421.3961 902.5392,-400.072 972,-379 976.9367,-377.5024 982.0338,-375.9022 987.145,-374.2593"/>
-<polygon fill="#000000" stroke="#000000" points="988.5295,-377.4894 996.9528,-371.063 986.3604,-370.8339 988.5295,-377.4894"/>
+<path fill="none" stroke="#000000" d="M664.0731,-433.5853C703.5558,-421.3266 770.4375,-399.9715 827,-379 830.6403,-377.6503 834.3825,-376.2194 838.1405,-374.7504"/>
+<polygon fill="#000000" stroke="#000000" points="839.4652,-377.9903 847.4658,-371.0447 836.8801,-371.4851 839.4652,-377.9903"/>
 </g>
 <!-- exportX -->
 <g id="node20" class="node">
 <title>exportX</title>
 </g>
 <!-- exportX -->
 <g id="node20" class="node">
 <title>exportX</title>
-<polygon fill="#00ffff" stroke="#000000" points="962.5,-371 835.5,-371 831.5,-367 831.5,-335 958.5,-335 962.5,-339 962.5,-371"/>
-<polyline fill="none" stroke="#000000" points="958.5,-367 831.5,-367 "/>
-<polyline fill="none" stroke="#000000" points="958.5,-367 958.5,-335 "/>
-<polyline fill="none" stroke="#000000" points="958.5,-367 962.5,-371 "/>
-<text text-anchor="middle" x="897" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">export.&lt;name&gt;</text>
+<polygon fill="#00ffff" stroke="#000000" points="818,-371 718,-371 714,-367 714,-335 814,-335 818,-339 818,-371"/>
+<polyline fill="none" stroke="#000000" points="814,-367 714,-367 "/>
+<polyline fill="none" stroke="#000000" points="814,-367 814,-335 "/>
+<polyline fill="none" stroke="#000000" points="814,-367 818,-371 "/>
+<text text-anchor="middle" x="766" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">export.&lt;name&gt;</text>
 </g>
 <!-- assemble&#45;&gt;exportX -->
 <g id="edge24" class="edge">
 <title>assemble&#45;&gt;exportX</title>
 </g>
 <!-- assemble&#45;&gt;exportX -->
 <g id="edge24" class="edge">
 <title>assemble&#45;&gt;exportX</title>
-<path fill="none" stroke="#000000" d="M764.1936,-425.8035C790.4039,-411.4352 827.1295,-391.3025 855.3189,-375.8493"/>
-<polygon fill="#000000" stroke="#000000" points="857.0608,-378.8858 864.1472,-371.0097 853.6959,-372.7476 857.0608,-378.8858"/>
+<path fill="none" stroke="#000000" d="M657.1948,-425.8035C678.2277,-411.73 707.5257,-392.1262 730.4214,-376.8063"/>
+<polygon fill="#000000" stroke="#000000" points="732.4877,-379.635 738.8524,-371.165 728.5949,-373.8172 732.4877,-379.635"/>
 </g>
 <!-- runbundlesX -->
 <g id="node22" class="node">
 <title>runbundlesX</title>
 </g>
 <!-- runbundlesX -->
 <g id="node22" class="node">
 <title>runbundlesX</title>
-<polygon fill="#00ffff" stroke="#000000" points="813.5,-371 652.5,-371 648.5,-367 648.5,-335 809.5,-335 813.5,-339 813.5,-371"/>
-<polyline fill="none" stroke="#000000" points="809.5,-367 648.5,-367 "/>
-<polyline fill="none" stroke="#000000" points="809.5,-367 809.5,-335 "/>
-<polyline fill="none" stroke="#000000" points="809.5,-367 813.5,-371 "/>
-<text text-anchor="middle" x="731" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">runbundles.&lt;name&gt;</text>
+<polygon fill="#00ffff" stroke="#000000" points="696,-371 568,-371 564,-367 564,-335 692,-335 696,-339 696,-371"/>
+<polyline fill="none" stroke="#000000" points="692,-367 564,-367 "/>
+<polyline fill="none" stroke="#000000" points="692,-367 692,-335 "/>
+<polyline fill="none" stroke="#000000" points="692,-367 696,-371 "/>
+<text text-anchor="middle" x="630" y="-349.3" font-family="Times,serif" font-size="14.00" fill="#000000">runbundles.&lt;name&gt;</text>
 </g>
 <!-- assemble&#45;&gt;runbundlesX -->
 <g id="edge30" class="edge">
 <title>assemble&#45;&gt;runbundlesX</title>
 </g>
 <!-- assemble&#45;&gt;runbundlesX -->
 <g id="edge30" class="edge">
 <title>assemble&#45;&gt;runbundlesX</title>
-<path fill="none" stroke="#000000" d="M731,-425.5848C731,-412.9209 731,-395.8558 731,-381.4541"/>
-<polygon fill="#000000" stroke="#000000" points="734.5001,-381.0772 731,-371.0773 727.5001,-381.0773 734.5001,-381.0772"/>
+<path fill="none" stroke="#000000" d="M630,-425.5848C630,-412.9209 630,-395.8558 630,-381.4541"/>
+<polygon fill="#000000" stroke="#000000" points="633.5001,-381.0772 630,-371.0773 626.5001,-381.0773 633.5001,-381.0772"/>
 </g>
 <!-- build -->
 <g id="node24" class="node">
 <title>build</title>
 </g>
 <!-- build -->
 <g id="node24" class="node">
 <title>build</title>
-<polygon fill="#e0ffff" stroke="#000000" points="973,-155 919,-155 919,-119 973,-119 973,-155"/>
-<text text-anchor="middle" x="946" y="-133.3" font-family="Times,serif" font-size="14.00" fill="#000000">build</text>
+<polygon fill="#e0ffff" stroke="#000000" points="829,-155 775,-155 775,-119 829,-119 829,-155"/>
+<text text-anchor="middle" x="802" y="-133.3" font-family="Times,serif" font-size="14.00" fill="#000000">build</text>
 </g>
 <!-- assemble&#45;&gt;build -->
 <g id="edge11" class="edge">
 <title>assemble&#45;&gt;build</title>
 </g>
 <!-- assemble&#45;&gt;build -->
 <g id="edge11" class="edge">
 <title>assemble&#45;&gt;build</title>
-<path fill="none" stroke="#000000" d="M772.5225,-443.2109C913.7049,-440.1041 1368.8587,-426.4551 1412,-379 1449.0719,-338.2212 1445.8503,-298.4902 1412,-255 1358.6548,-186.4631 1084.0214,-151.3715 983.1869,-140.645"/>
-<polygon fill="#000000" stroke="#000000" points="983.4614,-137.1547 973.152,-139.5974 982.7345,-144.1169 983.4614,-137.1547"/>
+<path fill="none" stroke="#000000" d="M664.327,-442.5889C780.1336,-437.481 1151.1523,-418.1589 1186,-379 1222.6372,-337.8302 1218.7497,-299.3248 1186,-255 1143.9338,-198.066 927.127,-157.228 839.1553,-142.7584"/>
+<polygon fill="#000000" stroke="#000000" points="839.5175,-139.2714 829.0861,-141.1252 838.3967,-146.1811 839.5175,-139.2714"/>
 </g>
 </g>
-<!-- findbugsMain -->
+<!-- spotbugsMain -->
 <g id="node27" class="node">
 <g id="node27" class="node">
-<title>findbugsMain</title>
-<polygon fill="#ffa500" stroke="#000000" points="299.5,-299 184.5,-299 184.5,-263 299.5,-263 299.5,-299"/>
-<text text-anchor="middle" x="242" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">findbugsMain</text>
+<title>spotbugsMain</title>
+<polygon fill="#ffa500" stroke="#000000" points="264,-299 166,-299 166,-263 264,-263 264,-299"/>
+<text text-anchor="middle" x="215" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">spotbugsMain</text>
 </g>
 </g>
-<!-- assemble&#45;&gt;findbugsMain -->
+<!-- assemble&#45;&gt;spotbugsMain -->
 <g id="edge36" class="edge">
 <g id="edge36" class="edge">
-<title>assemble&#45;&gt;findbugsMain</title>
-<path fill="none" stroke="#000000" d="M720.3964,-425.7249C711.5006,-412.3292 697.4575,-395.1213 680,-387 653.0894,-374.4811 441.5633,-387.0646 413,-379 359.9488,-364.0214 305.9475,-329.0841 273.2019,-305.2405"/>
-<polygon fill="#000000" stroke="#000000" points="275.0696,-302.2686 264.9484,-299.1363 270.9072,-307.8966 275.0696,-302.2686"/>
+<title>assemble&#45;&gt;spotbugsMain</title>
+<path fill="none" stroke="#000000" d="M621.7503,-425.8251C614.621,-412.4834 602.9434,-395.2991 587,-387 564.7119,-375.3983 384.9039,-386.7434 361,-379 314.7424,-364.0155 269.5284,-329.7408 241.9659,-305.9803"/>
+<polygon fill="#000000" stroke="#000000" points="244.1592,-303.2483 234.3356,-299.2799 239.5403,-308.5083 244.1592,-303.2483"/>
 </g>
 <!-- testOSGi&#45;&gt;check -->
 <g id="edge13" class="edge">
 <title>testOSGi&#45;&gt;check</title>
 </g>
 <!-- testOSGi&#45;&gt;check -->
 <g id="edge13" class="edge">
 <title>testOSGi&#45;&gt;check</title>
-<path fill="none" stroke="#000000" d="M381.6633,-262.8314C377.5757,-254.8771 372.6896,-245.369 368.1691,-236.5723"/>
-<polygon fill="#000000" stroke="#000000" points="371.1461,-234.7078 363.4624,-227.4133 364.9201,-237.9074 371.1461,-234.7078"/>
+<path fill="none" stroke="#000000" d="M336.6821,-262.8314C333.5124,-254.9617 329.73,-245.5712 326.2187,-236.8533"/>
+<polygon fill="#000000" stroke="#000000" points="329.3992,-235.3815 322.4165,-227.4133 322.9061,-237.9968 329.3992,-235.3815"/>
 </g>
 <!-- checkNeeded -->
 <g id="node13" class="node">
 <title>checkNeeded</title>
 </g>
 <!-- checkNeeded -->
 <g id="node13" class="node">
 <title>checkNeeded</title>
-<polygon fill="#00ffff" stroke="#000000" points="439.5,-155 324.5,-155 324.5,-119 439.5,-119 439.5,-155"/>
-<text text-anchor="middle" x="382" y="-133.3" font-family="Times,serif" font-size="14.00" fill="#000000">checkNeeded</text>
+<polygon fill="#00ffff" stroke="#000000" points="381.5,-155 288.5,-155 288.5,-119 381.5,-119 381.5,-155"/>
+<text text-anchor="middle" x="335" y="-133.3" font-family="Times,serif" font-size="14.00" fill="#000000">checkNeeded</text>
 </g>
 <!-- check&#45;&gt;checkNeeded -->
 <g id="edge15" class="edge">
 <title>check&#45;&gt;checkNeeded</title>
 </g>
 <!-- check&#45;&gt;checkNeeded -->
 <g id="edge15" class="edge">
 <title>check&#45;&gt;checkNeeded</title>
-<path fill="none" stroke="#000000" d="M361.0656,-190.8314C364.126,-182.9617 367.7779,-173.5712 371.1682,-164.8533"/>
-<polygon fill="#000000" stroke="#000000" points="374.4768,-166.0019 374.8393,-155.4133 367.9527,-163.4647 374.4768,-166.0019"/>
+<path fill="none" stroke="#000000" d="M320.0468,-190.8314C322.2094,-183.0463 324.7853,-173.7729 327.1848,-165.1347"/>
+<polygon fill="#000000" stroke="#000000" points="330.581,-165.9852 329.8852,-155.4133 323.8364,-164.1117 330.581,-165.9852"/>
 </g>
 <!-- check&#45;&gt;build -->
 <g id="edge17" class="edge">
 <title>check&#45;&gt;build</title>
 </g>
 <!-- check&#45;&gt;build -->
 <g id="edge17" class="edge">
 <title>check&#45;&gt;build</title>
-<path fill="none" stroke="#000000" d="M383.7631,-205.3802C482.5831,-193.3615 799.6917,-154.7942 908.7477,-141.5307"/>
-<polygon fill="#000000" stroke="#000000" points="909.4302,-144.9736 918.9345,-140.2918 908.585,-138.0248 909.4302,-144.9736"/>
+<path fill="none" stroke="#000000" d="M342.2268,-204.9747C424.5726,-192.8003 671.0847,-156.355 765.0566,-142.4619"/>
+<polygon fill="#000000" stroke="#000000" points="765.5846,-145.9219 774.9651,-140.9969 764.5608,-138.9972 765.5846,-145.9219"/>
 </g>
 <!-- check&#45;&gt;jacocoTestReport -->
 <g id="edge41" class="edge">
 <title>check&#45;&gt;jacocoTestReport</title>
 </g>
 <!-- check&#45;&gt;jacocoTestReport -->
 <g id="edge41" class="edge">
 <title>check&#45;&gt;jacocoTestReport</title>
-<path fill="none" stroke="#ff00ff" d="M324.4671,-193.0089C322.9667,-192.3087 321.4719,-191.6348 320,-191 291.504,-178.7112 259.2145,-167.3054 231.2134,-158.173"/>
-<polygon fill="#ff00ff" stroke="#ff00ff" points="232.0928,-154.7791 221.5012,-155.0398 229.9437,-161.4411 232.0928,-154.7791"/>
+<path fill="none" stroke="#ff00ff" d="M287.7437,-192.856C286.4872,-192.2124 285.2353,-191.5905 284,-191 258.9459,-179.0237 230.4819,-167.7122 205.7205,-158.5661"/>
+<polygon fill="#ff00ff" stroke="#ff00ff" points="206.666,-155.1854 196.0721,-155.0419 204.2643,-161.7605 206.666,-155.1854"/>
 </g>
 <!-- checkNeeded&#45;&gt;checkNeeded -->
 <g id="edge16" class="edge">
 <title>checkNeeded&#45;&gt;checkNeeded</title>
 </g>
 <!-- checkNeeded&#45;&gt;checkNeeded -->
 <g id="edge16" class="edge">
 <title>checkNeeded&#45;&gt;checkNeeded</title>
-<path fill="none" stroke="#ff0000" d="M439.6071,-149.7584C450.1239,-148.1434 457.5,-143.8906 457.5,-137 457.5,-132.5857 454.4728,-129.2539 449.5321,-127.0048"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="450.1795,-123.552 439.6071,-124.2416 448.302,-130.2955 450.1795,-123.552"/>
+<path fill="none" stroke="#ff0000" d="M381.6737,-150.1366C391.988,-148.9023 399.5,-144.5234 399.5,-137 399.5,-132.1803 396.4171,-128.6511 391.4894,-126.4125"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="392.2324,-122.9894 381.6737,-123.8634 390.4728,-129.7646 392.2324,-122.9894"/>
 </g>
 <!-- releaseNeeded -->
 <g id="node15" class="node">
 <title>releaseNeeded</title>
 </g>
 <!-- releaseNeeded -->
 <g id="node15" class="node">
 <title>releaseNeeded</title>
-<polygon fill="#00ffff" stroke="#000000" points="606,-299 482,-299 482,-263 606,-263 606,-299"/>
-<text text-anchor="middle" x="544" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">releaseNeeded</text>
+<polygon fill="#00ffff" stroke="#000000" points="522,-299 424,-299 424,-263 522,-263 522,-299"/>
+<text text-anchor="middle" x="473" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">releaseNeeded</text>
 </g>
 <!-- release&#45;&gt;releaseNeeded -->
 <g id="edge32" class="edge">
 <title>release&#45;&gt;releaseNeeded</title>
 </g>
 <!-- release&#45;&gt;releaseNeeded -->
 <g id="edge32" class="edge">
 <title>release&#45;&gt;releaseNeeded</title>
-<path fill="none" stroke="#000000" d="M561.1961,-334.8314C558.7092,-327.0463 555.7469,-317.7729 552.9875,-309.1347"/>
-<polygon fill="#000000" stroke="#000000" points="556.2591,-307.874 549.882,-299.4133 549.591,-310.0041 556.2591,-307.874"/>
+<path fill="none" stroke="#000000" d="M487.9532,-334.8314C485.7906,-327.0463 483.2147,-317.7729 480.8152,-309.1347"/>
+<polygon fill="#000000" stroke="#000000" points="484.1636,-308.1117 478.1148,-299.4133 477.419,-309.9852 484.1636,-308.1117"/>
 </g>
 <!-- releaseNeeded&#45;&gt;releaseNeeded -->
 <g id="edge33" class="edge">
 <title>releaseNeeded&#45;&gt;releaseNeeded</title>
 </g>
 <!-- releaseNeeded&#45;&gt;releaseNeeded -->
 <g id="edge33" class="edge">
 <title>releaseNeeded&#45;&gt;releaseNeeded</title>
-<path fill="none" stroke="#ff0000" d="M606.0546,-293.6027C616.6554,-291.8806 624,-287.6797 624,-281 624,-276.7208 620.9858,-273.4589 616.0322,-271.2144"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="616.6294,-267.7462 606.0546,-268.3973 614.7273,-274.4829 616.6294,-267.7462"/>
+<path fill="none" stroke="#ff0000" d="M522.0804,-294.0641C532.4858,-292.7375 540,-288.3828 540,-281 540,-276.2704 536.9162,-272.7835 531.964,-270.5394"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="532.6421,-267.0987 522.0804,-267.9359 530.859,-273.8678 532.6421,-267.0987"/>
 </g>
 <!-- resolve -->
 <g id="node19" class="node">
 <title>resolve</title>
 </g>
 <!-- resolve -->
 <g id="node19" class="node">
 <title>resolve</title>
-<polygon fill="#00ffff" stroke="#000000" points="1083,-299 1015,-299 1015,-263 1083,-263 1083,-299"/>
-<text text-anchor="middle" x="1049" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">resolve</text>
+<polygon fill="#00ffff" stroke="#000000" points="918.5,-299 861.5,-299 861.5,-263 918.5,-263 918.5,-299"/>
+<text text-anchor="middle" x="890" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">resolve</text>
 </g>
 <!-- resolveX&#45;&gt;resolve -->
 <g id="edge27" class="edge">
 <title>resolveX&#45;&gt;resolve</title>
 </g>
 <!-- resolveX&#45;&gt;resolve -->
 <g id="edge27" class="edge">
 <title>resolveX&#45;&gt;resolve</title>
-<path fill="none" stroke="#000000" d="M1049,-334.8314C1049,-327.131 1049,-317.9743 1049,-309.4166"/>
-<polygon fill="#000000" stroke="#000000" points="1052.5001,-309.4132 1049,-299.4133 1045.5001,-309.4133 1052.5001,-309.4132"/>
+<path fill="none" stroke="#000000" d="M890,-334.8314C890,-327.131 890,-317.9743 890,-309.4166"/>
+<polygon fill="#000000" stroke="#000000" points="893.5001,-309.4132 890,-299.4133 886.5001,-309.4133 893.5001,-309.4132"/>
 </g>
 <!-- export -->
 <g id="node21" class="node">
 <title>export</title>
 </g>
 <!-- export -->
 <g id="node21" class="node">
 <title>export</title>
-<polygon fill="#00ffff" stroke="#000000" points="928.5,-299 865.5,-299 865.5,-263 928.5,-263 928.5,-299"/>
-<text text-anchor="middle" x="897" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">export</text>
+<polygon fill="#00ffff" stroke="#000000" points="793,-299 739,-299 739,-263 793,-263 793,-299"/>
+<text text-anchor="middle" x="766" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">export</text>
 </g>
 <!-- exportX&#45;&gt;export -->
 <g id="edge25" class="edge">
 <title>exportX&#45;&gt;export</title>
 </g>
 <!-- exportX&#45;&gt;export -->
 <g id="edge25" class="edge">
 <title>exportX&#45;&gt;export</title>
-<path fill="none" stroke="#000000" d="M897,-334.8314C897,-327.131 897,-317.9743 897,-309.4166"/>
-<polygon fill="#000000" stroke="#000000" points="900.5001,-309.4132 897,-299.4133 893.5001,-309.4133 900.5001,-309.4132"/>
+<path fill="none" stroke="#000000" d="M766,-334.8314C766,-327.131 766,-317.9743 766,-309.4166"/>
+<polygon fill="#000000" stroke="#000000" points="769.5001,-309.4132 766,-299.4133 762.5001,-309.4133 769.5001,-309.4132"/>
 </g>
 <!-- runbundles -->
 <g id="node23" class="node">
 <title>runbundles</title>
 </g>
 <!-- runbundles -->
 <g id="node23" class="node">
 <title>runbundles</title>
-<polygon fill="#00ffff" stroke="#000000" points="780,-299 682,-299 682,-263 780,-263 780,-299"/>
-<text text-anchor="middle" x="731" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">runbundles</text>
+<polygon fill="#00ffff" stroke="#000000" points="670.5,-299 589.5,-299 589.5,-263 670.5,-263 670.5,-299"/>
+<text text-anchor="middle" x="630" y="-277.3" font-family="Times,serif" font-size="14.00" fill="#000000">runbundles</text>
 </g>
 <!-- runbundlesX&#45;&gt;runbundles -->
 <g id="edge31" class="edge">
 <title>runbundlesX&#45;&gt;runbundles</title>
 </g>
 <!-- runbundlesX&#45;&gt;runbundles -->
 <g id="edge31" class="edge">
 <title>runbundlesX&#45;&gt;runbundles</title>
-<path fill="none" stroke="#000000" d="M731,-334.8314C731,-327.131 731,-317.9743 731,-309.4166"/>
-<polygon fill="#000000" stroke="#000000" points="734.5001,-309.4132 731,-299.4133 727.5001,-309.4133 734.5001,-309.4132"/>
+<path fill="none" stroke="#000000" d="M630,-334.8314C630,-327.131 630,-317.9743 630,-309.4166"/>
+<polygon fill="#000000" stroke="#000000" points="633.5001,-309.4132 630,-299.4133 626.5001,-309.4133 633.5001,-309.4132"/>
 </g>
 <!-- buildDependents -->
 <g id="node25" class="node">
 <title>buildDependents</title>
 </g>
 <!-- buildDependents -->
 <g id="node25" class="node">
 <title>buildDependents</title>
-<polygon fill="#e0ffff" stroke="#000000" points="935,-83 797,-83 797,-47 935,-47 935,-83"/>
-<text text-anchor="middle" x="866" y="-61.3" font-family="Times,serif" font-size="14.00" fill="#000000">buildDependents</text>
+<polygon fill="#e0ffff" stroke="#000000" points="790,-83 676,-83 676,-47 790,-47 790,-83"/>
+<text text-anchor="middle" x="733" y="-61.3" font-family="Times,serif" font-size="14.00" fill="#000000">buildDependents</text>
 </g>
 <!-- build&#45;&gt;buildDependents -->
 <g id="edge18" class="edge">
 <title>build&#45;&gt;buildDependents</title>
 </g>
 <!-- build&#45;&gt;buildDependents -->
 <g id="edge18" class="edge">
 <title>build&#45;&gt;buildDependents</title>
-<path fill="none" stroke="#000000" d="M925.8126,-118.8314C916.1486,-110.1337 904.4204,-99.5783 893.9184,-90.1265"/>
-<polygon fill="#000000" stroke="#000000" points="895.9553,-87.251 886.1809,-83.1628 891.2725,-92.454 895.9553,-87.251"/>
+<path fill="none" stroke="#000000" d="M784.5884,-118.8314C776.479,-110.3694 766.6844,-100.1489 757.818,-90.8971"/>
+<polygon fill="#000000" stroke="#000000" points="760.0921,-88.2115 750.646,-83.4133 755.0382,-93.0549 760.0921,-88.2115"/>
 </g>
 <!-- buildNeeded -->
 <g id="node26" class="node">
 <title>buildNeeded</title>
 </g>
 <!-- buildNeeded -->
 <g id="node26" class="node">
 <title>buildNeeded</title>
-<polygon fill="#e0ffff" stroke="#000000" points="1079,-83 971,-83 971,-47 1079,-47 1079,-83"/>
-<text text-anchor="middle" x="1025" y="-61.3" font-family="Times,serif" font-size="14.00" fill="#000000">buildNeeded</text>
+<polygon fill="#e0ffff" stroke="#000000" points="916,-83 826,-83 826,-47 916,-47 916,-83"/>
+<text text-anchor="middle" x="871" y="-61.3" font-family="Times,serif" font-size="14.00" fill="#000000">buildNeeded</text>
 </g>
 <!-- build&#45;&gt;buildNeeded -->
 <g id="edge20" class="edge">
 <title>build&#45;&gt;buildNeeded</title>
 </g>
 <!-- build&#45;&gt;buildNeeded -->
 <g id="edge20" class="edge">
 <title>build&#45;&gt;buildNeeded</title>
-<path fill="none" stroke="#000000" d="M965.935,-118.8314C975.4783,-110.1337 987.0599,-99.5783 997.4306,-90.1265"/>
-<polygon fill="#000000" stroke="#000000" points="1000.038,-92.4857 1005.0713,-83.1628 995.3228,-87.3121 1000.038,-92.4857"/>
+<path fill="none" stroke="#000000" d="M819.4116,-118.8314C827.521,-110.3694 837.3156,-100.1489 846.182,-90.8971"/>
+<polygon fill="#000000" stroke="#000000" points="848.9618,-93.0549 853.354,-83.4133 843.9079,-88.2115 848.9618,-93.0549"/>
 </g>
 <!-- buildDependents&#45;&gt;buildDependents -->
 <g id="edge19" class="edge">
 <title>buildDependents&#45;&gt;buildDependents</title>
 </g>
 <!-- buildDependents&#45;&gt;buildDependents -->
 <g id="edge19" class="edge">
 <title>buildDependents&#45;&gt;buildDependents</title>
-<path fill="none" stroke="#ffff00" d="M935.2746,-77.3102C945.8314,-75.4315 953,-71.3281 953,-65 953,-60.946 950.058,-57.8051 945.1679,-55.5772"/>
-<polygon fill="#ffff00" stroke="#ffff00" points="945.8547,-52.1317 935.2746,-52.6898 943.8935,-58.8514 945.8547,-52.1317"/>
+<path fill="none" stroke="#ffff00" d="M790.2256,-77.7584C800.6727,-76.1434 808,-71.8906 808,-65 808,-60.5857 804.9929,-57.2539 800.0848,-55.0048"/>
+<polygon fill="#ffff00" stroke="#ffff00" points="800.7992,-51.5702 790.2256,-52.2416 798.9101,-58.3105 800.7992,-51.5702"/>
 </g>
 <!-- buildNeeded&#45;&gt;buildNeeded -->
 <g id="edge21" class="edge">
 <title>buildNeeded&#45;&gt;buildNeeded</title>
 </g>
 <!-- buildNeeded&#45;&gt;buildNeeded -->
 <g id="edge21" class="edge">
 <title>buildNeeded&#45;&gt;buildNeeded</title>
-<path fill="none" stroke="#ff0000" d="M1079.0073,-77.8993C1089.5286,-76.4013 1097,-72.1016 1097,-65 1097,-60.4506 1093.9337,-57.051 1088.9636,-54.8012"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="1089.5748,-51.3406 1079.0073,-52.1007 1087.7423,-58.0965 1089.5748,-51.3406"/>
+<path fill="none" stroke="#ff0000" d="M916.0205,-78.2025C926.3858,-77.0649 934,-72.6641 934,-65 934,-60.0902 930.8751,-56.5196 925.904,-54.2883"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="926.5726,-50.8474 916.0205,-51.7975 924.8619,-57.6352 926.5726,-50.8474"/>
 </g>
 </g>
-<!-- findbugsMain&#45;&gt;check -->
+<!-- spotbugsMain&#45;&gt;check -->
 <g id="edge38" class="edge">
 <g id="edge38" class="edge">
-<title>findbugsMain&#45;&gt;check</title>
-<path fill="none" stroke="#00ff00" d="M270.2623,-262.8314C284.4552,-253.7074 301.8282,-242.539 317.0636,-232.7449"/>
-<polygon fill="#00ff00" stroke="#00ff00" points="319.2276,-235.5146 325.7467,-227.1628 315.4422,-229.6263 319.2276,-235.5146"/>
+<title>spotbugsMain&#45;&gt;check</title>
+<path fill="none" stroke="#00ff00" d="M240.2342,-262.8314C252.788,-253.7927 268.1283,-242.7476 281.6391,-233.0198"/>
+<polygon fill="#00ff00" stroke="#00ff00" points="283.7036,-235.8463 289.7739,-227.1628 279.6134,-230.1655 283.7036,-235.8463"/>
 </g>
 </g>
-<!-- findbugsTest&#45;&gt;check -->
+<!-- spotbugsTest&#45;&gt;check -->
 <g id="edge39" class="edge">
 <g id="edge39" class="edge">
-<title>findbugsTest&#45;&gt;check</title>
-<path fill="none" stroke="#00ff00" d="M152.2365,-262.8789C159.7219,-259.9837 167.5263,-257.2166 175,-255 234.7303,-237.285 255.9378,-247.6288 314.4594,-228.6982"/>
-<polygon fill="#00ff00" stroke="#00ff00" points="315.8379,-231.9266 324.1838,-225.3999 313.5894,-225.2975 315.8379,-231.9266"/>
+<title>spotbugsTest&#45;&gt;check</title>
+<path fill="none" stroke="#00ff00" d="M137.3147,-262.8847C143.7606,-259.9889 150.5037,-257.22 157,-255 208.5965,-237.3675 227.9374,-246.7588 278.4045,-228.9012"/>
+<polygon fill="#00ff00" stroke="#00ff00" points="279.7,-232.1536 287.8452,-225.3781 277.2525,-225.5953 279.7,-232.1536"/>
 </g>
 <!-- javadoc -->
 <g id="node29" class="node">
 <title>javadoc</title>
 </g>
 <!-- javadoc -->
 <g id="node29" class="node">
 <title>javadoc</title>
-<polygon fill="#ffa500" stroke="#000000" points="1070.5,-697 999.5,-697 999.5,-661 1070.5,-661 1070.5,-697"/>
-<text text-anchor="middle" x="1035" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">javadoc</text>
+<polygon fill="#ffa500" stroke="#000000" points="907.5,-697 846.5,-697 846.5,-661 907.5,-661 907.5,-697"/>
+<text text-anchor="middle" x="877" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">javadoc</text>
 </g>
 <!-- clean -->
 <g id="node30" class="node">
 <title>clean</title>
 </g>
 <!-- clean -->
 <g id="node30" class="node">
 <title>clean</title>
-<polygon fill="#00ffff" stroke="#000000" points="1396.5,-697 1341.5,-697 1341.5,-661 1396.5,-661 1396.5,-697"/>
-<text text-anchor="middle" x="1369" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">clean</text>
+<polygon fill="#00ffff" stroke="#000000" points="1176,-697 1122,-697 1122,-661 1176,-661 1176,-697"/>
+<text text-anchor="middle" x="1149" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">clean</text>
 </g>
 <!-- cleanNeeded -->
 <g id="node31" class="node">
 <title>cleanNeeded</title>
 </g>
 <!-- cleanNeeded -->
 <g id="node31" class="node">
 <title>cleanNeeded</title>
-<polygon fill="#00ffff" stroke="#000000" points="1402,-606 1292,-606 1292,-570 1402,-570 1402,-606"/>
-<text text-anchor="middle" x="1347" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">cleanNeeded</text>
+<polygon fill="#00ffff" stroke="#000000" points="1175.5,-606 1086.5,-606 1086.5,-570 1175.5,-570 1175.5,-606"/>
+<text text-anchor="middle" x="1131" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">cleanNeeded</text>
 </g>
 <!-- clean&#45;&gt;cleanNeeded -->
 <g id="edge34" class="edge">
 <title>clean&#45;&gt;cleanNeeded</title>
 </g>
 <!-- clean&#45;&gt;cleanNeeded -->
 <g id="edge34" class="edge">
 <title>clean&#45;&gt;cleanNeeded</title>
-<path fill="none" stroke="#000000" d="M1364.548,-660.5848C1361.4564,-647.7967 1357.2797,-630.5207 1353.7768,-616.0313"/>
-<polygon fill="#000000" stroke="#000000" points="1357.1223,-614.9748 1351.3703,-606.0773 1350.3183,-616.6197 1357.1223,-614.9748"/>
+<path fill="none" stroke="#000000" d="M1145.3574,-660.5848C1142.8279,-647.7967 1139.4107,-630.5207 1136.5447,-616.0313"/>
+<polygon fill="#000000" stroke="#000000" points="1139.9497,-615.208 1134.5757,-606.0773 1133.0828,-616.5664 1139.9497,-615.208"/>
 </g>
 <!-- cleanAll -->
 <g id="node35" class="node">
 <title>cleanAll</title>
 </g>
 <!-- cleanAll -->
 <g id="node35" class="node">
 <title>cleanAll</title>
-<polygon fill="#ffa500" stroke="#000000" points="1534.5,-606 1479.5,-606 1479.5,-570 1534.5,-570 1534.5,-606"/>
-<text text-anchor="middle" x="1507" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">clean</text>
+<polygon fill="#ffa500" stroke="#000000" points="1298,-606 1244,-606 1244,-570 1298,-570 1298,-606"/>
+<text text-anchor="middle" x="1271" y="-584.3" font-family="Times,serif" font-size="14.00" fill="#000000">clean</text>
 </g>
 <!-- clean&#45;&gt;cleanAll -->
 <g id="edge42" class="edge">
 <title>clean&#45;&gt;cleanAll</title>
 </g>
 <!-- clean&#45;&gt;cleanAll -->
 <g id="edge42" class="edge">
 <title>clean&#45;&gt;cleanAll</title>
-<path fill="none" stroke="#0000ff" d="M1396.5947,-660.8035C1417.9369,-646.73 1447.6657,-627.1262 1470.8982,-611.8063"/>
-<polygon fill="#0000ff" stroke="#0000ff" points="1473.0316,-614.592 1479.4531,-606.165 1469.178,-608.7481 1473.0316,-614.592"/>
+<path fill="none" stroke="#0000ff" d="M1173.3953,-660.8035C1192.0968,-646.854 1218.0825,-627.4712 1238.5397,-612.2122"/>
+<polygon fill="#0000ff" stroke="#0000ff" points="1240.7239,-614.9495 1246.647,-606.165 1236.5386,-609.3384 1240.7239,-614.9495"/>
 </g>
 <!-- cleanNeeded&#45;&gt;cleanNeeded -->
 <g id="edge35" class="edge">
 <title>cleanNeeded&#45;&gt;cleanNeeded</title>
 </g>
 <!-- cleanNeeded&#45;&gt;cleanNeeded -->
 <g id="edge35" class="edge">
 <title>cleanNeeded&#45;&gt;cleanNeeded</title>
-<path fill="none" stroke="#ff0000" d="M1402.0733,-600.854C1412.5741,-599.3159 1420,-595.0313 1420,-588 1420,-583.4956 1416.9524,-580.1184 1412.0011,-577.8684"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="1412.6429,-574.4153 1402.0733,-575.146 1410.7917,-581.166 1412.6429,-574.4153"/>
+<path fill="none" stroke="#ff0000" d="M1175.6631,-601.2025C1185.9463,-600.0649 1193.5,-595.6641 1193.5,-588 1193.5,-583.0902 1190.3999,-579.5196 1185.4682,-577.2883"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="1186.2171,-573.8674 1175.6631,-574.7975 1184.4935,-580.6519 1186.2171,-573.8674"/>
 </g>
 <!-- cleanAllNeeded -->
 <g id="node36" class="node">
 <title>cleanAllNeeded</title>
 </g>
 <!-- cleanAllNeeded -->
 <g id="node36" class="node">
 <title>cleanAllNeeded</title>
-<polygon fill="#ffa500" stroke="#000000" points="1562,-534 1452,-534 1452,-498 1562,-498 1562,-534"/>
-<text text-anchor="middle" x="1507" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">cleanNeeded</text>
+<polygon fill="#ffa500" stroke="#000000" points="1315.5,-534 1226.5,-534 1226.5,-498 1315.5,-498 1315.5,-534"/>
+<text text-anchor="middle" x="1271" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">cleanNeeded</text>
 </g>
 <!-- cleanNeeded&#45;&gt;cleanAllNeeded -->
 <g id="edge43" class="edge">
 <title>cleanNeeded&#45;&gt;cleanAllNeeded</title>
 </g>
 <!-- cleanNeeded&#45;&gt;cleanAllNeeded -->
 <g id="edge43" class="edge">
 <title>cleanNeeded&#45;&gt;cleanAllNeeded</title>
-<path fill="none" stroke="#0000ff" d="M1387.3748,-569.8314C1408.6787,-560.2446 1434.9983,-548.4008 1457.5211,-538.2655"/>
-<polygon fill="#0000ff" stroke="#0000ff" points="1459.2326,-541.3334 1466.9156,-534.038 1456.3601,-534.95 1459.2326,-541.3334"/>
+<path fill="none" stroke="#0000ff" d="M1166.3279,-569.8314C1184.6493,-560.4089 1207.2102,-548.8062 1226.6895,-538.7883"/>
+<polygon fill="#0000ff" stroke="#0000ff" points="1228.3912,-541.8489 1235.6834,-534.1628 1225.1898,-535.6239 1228.3912,-541.8489"/>
 </g>
 <!-- echo -->
 <g id="node32" class="node">
 <title>echo</title>
 </g>
 <!-- echo -->
 <g id="node32" class="node">
 <title>echo</title>
-<polygon fill="#00ffff" stroke="#000000" points="359,-697 305,-697 305,-661 359,-661 359,-697"/>
-<text text-anchor="middle" x="332" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">echo</text>
+<polygon fill="#00ffff" stroke="#000000" points="318,-697 264,-697 264,-661 318,-661 318,-697"/>
+<text text-anchor="middle" x="291" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">echo</text>
 </g>
 <!-- bndproperties -->
 <g id="node33" class="node">
 <title>bndproperties</title>
 </g>
 <!-- bndproperties -->
 <g id="node33" class="node">
 <title>bndproperties</title>
-<polygon fill="#00ffff" stroke="#000000" points="181,-697 63,-697 63,-661 181,-661 181,-697"/>
-<text text-anchor="middle" x="122" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">bndproperties</text>
+<polygon fill="#00ffff" stroke="#000000" points="150.5,-697 55.5,-697 55.5,-661 150.5,-661 150.5,-697"/>
+<text text-anchor="middle" x="103" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">bndproperties</text>
 </g>
 <!-- cleanAll&#45;&gt;cleanAllNeeded -->
 <g id="edge44" class="edge">
 <title>cleanAll&#45;&gt;cleanAllNeeded</title>
 </g>
 <!-- cleanAll&#45;&gt;cleanAllNeeded -->
 <g id="edge44" class="edge">
 <title>cleanAll&#45;&gt;cleanAllNeeded</title>
-<path fill="none" stroke="#000000" d="M1507,-569.8314C1507,-562.131 1507,-552.9743 1507,-544.4166"/>
-<polygon fill="#000000" stroke="#000000" points="1510.5001,-544.4132 1507,-534.4133 1503.5001,-544.4133 1510.5001,-544.4132"/>
+<path fill="none" stroke="#000000" d="M1271,-569.8314C1271,-562.131 1271,-552.9743 1271,-544.4166"/>
+<polygon fill="#000000" stroke="#000000" points="1274.5001,-544.4132 1271,-534.4133 1267.5001,-544.4133 1274.5001,-544.4132"/>
 </g>
 <!-- distclean -->
 <g id="node37" class="node">
 <title>distclean</title>
 </g>
 <!-- distclean -->
 <g id="node37" class="node">
 <title>distclean</title>
-<polygon fill="#ffa500" stroke="#000000" points="1680,-534 1598,-534 1598,-498 1680,-498 1680,-534"/>
-<text text-anchor="middle" x="1639" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">distclean</text>
+<polygon fill="#ffa500" stroke="#000000" points="1418,-534 1352,-534 1352,-498 1418,-498 1418,-534"/>
+<text text-anchor="middle" x="1385" y="-512.3" font-family="Times,serif" font-size="14.00" fill="#000000">distclean</text>
 </g>
 <!-- cleanAll&#45;&gt;distclean -->
 <g id="edge45" class="edge">
 <title>cleanAll&#45;&gt;distclean</title>
 </g>
 <!-- cleanAll&#45;&gt;distclean -->
 <g id="edge45" class="edge">
 <title>cleanAll&#45;&gt;distclean</title>
-<path fill="none" stroke="#000000" d="M1534.6715,-572.9064C1552.7154,-563.0643 1576.6085,-550.0317 1596.976,-538.9222"/>
-<polygon fill="#000000" stroke="#000000" points="1598.6531,-541.9943 1605.7561,-534.133 1595.3011,-535.849 1598.6531,-541.9943"/>
+<path fill="none" stroke="#000000" d="M1298.0164,-570.937C1312.7939,-561.6038 1331.3302,-549.8967 1347.4903,-539.6904"/>
+<polygon fill="#000000" stroke="#000000" points="1349.5987,-542.4984 1356.1847,-534.1992 1345.8608,-536.5799 1349.5987,-542.4984"/>
 </g>
 <!-- cleanAllNeeded&#45;&gt;cleanAllNeeded -->
 <g id="edge46" class="edge">
 <title>cleanAllNeeded&#45;&gt;cleanAllNeeded</title>
 </g>
 <!-- cleanAllNeeded&#45;&gt;cleanAllNeeded -->
 <g id="edge46" class="edge">
 <title>cleanAllNeeded&#45;&gt;cleanAllNeeded</title>
-<path fill="none" stroke="#ff0000" d="M1562.0733,-528.854C1572.5741,-527.3159 1580,-523.0313 1580,-516 1580,-511.4956 1576.9524,-508.1184 1572.0011,-505.8684"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="1572.6429,-502.4153 1562.0733,-503.146 1570.7917,-509.166 1572.6429,-502.4153"/>
+<path fill="none" stroke="#ff0000" d="M1315.6631,-529.2025C1325.9463,-528.0649 1333.5,-523.6641 1333.5,-516 1333.5,-511.0902 1330.3999,-507.5196 1325.4682,-505.2883"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="1326.2171,-501.8674 1315.6631,-502.7975 1324.4935,-508.6519 1326.2171,-501.8674"/>
 </g>
 <!-- distcleanNeeded -->
 <g id="node38" class="node">
 <title>distcleanNeeded</title>
 </g>
 <!-- distcleanNeeded -->
 <g id="node38" class="node">
 <title>distcleanNeeded</title>
-<polygon fill="#ffa500" stroke="#000000" points="1625.5,-462 1488.5,-462 1488.5,-426 1625.5,-426 1625.5,-462"/>
-<text text-anchor="middle" x="1557" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">distcleanNeeded</text>
+<polygon fill="#ffa500" stroke="#000000" points="1368,-462 1258,-462 1258,-426 1368,-426 1368,-462"/>
+<text text-anchor="middle" x="1313" y="-440.3" font-family="Times,serif" font-size="14.00" fill="#000000">distcleanNeeded</text>
 </g>
 <!-- cleanAllNeeded&#45;&gt;distcleanNeeded -->
 <g id="edge47" class="edge">
 <title>cleanAllNeeded&#45;&gt;distcleanNeeded</title>
 </g>
 <!-- cleanAllNeeded&#45;&gt;distcleanNeeded -->
 <g id="edge47" class="edge">
 <title>cleanAllNeeded&#45;&gt;distcleanNeeded</title>
-<path fill="none" stroke="#000000" d="M1519.6171,-497.8314C1525.3172,-489.6232 1532.1663,-479.7606 1538.4359,-470.7323"/>
-<polygon fill="#000000" stroke="#000000" points="1541.3838,-472.6234 1544.213,-462.4133 1535.6342,-468.6306 1541.3838,-472.6234"/>
+<path fill="none" stroke="#000000" d="M1281.5984,-497.8314C1286.2877,-489.7925 1291.9028,-480.1666 1297.0798,-471.2918"/>
+<polygon fill="#000000" stroke="#000000" points="1300.2434,-472.8146 1302.2589,-462.4133 1294.1969,-469.2875 1300.2434,-472.8146"/>
 </g>
 <!-- distclean&#45;&gt;distcleanNeeded -->
 <g id="edge48" class="edge">
 <title>distclean&#45;&gt;distcleanNeeded</title>
 </g>
 <!-- distclean&#45;&gt;distcleanNeeded -->
 <g id="edge48" class="edge">
 <title>distclean&#45;&gt;distcleanNeeded</title>
-<path fill="none" stroke="#000000" d="M1618.3079,-497.8314C1608.3052,-489.0485 1596.145,-478.3712 1585.3001,-468.8489"/>
-<polygon fill="#000000" stroke="#000000" points="1587.5092,-466.1308 1577.6854,-462.1628 1582.8906,-471.3909 1587.5092,-466.1308"/>
+<path fill="none" stroke="#000000" d="M1366.8314,-497.8314C1358.2848,-489.2848 1347.9443,-478.9443 1338.6198,-469.6198"/>
+<polygon fill="#000000" stroke="#000000" points="1340.9592,-467.0095 1331.4133,-462.4133 1336.0095,-471.9592 1340.9592,-467.0095"/>
 </g>
 <!-- distcleanNeeded&#45;&gt;distcleanNeeded -->
 <g id="edge49" class="edge">
 <title>distcleanNeeded&#45;&gt;distcleanNeeded</title>
 </g>
 <!-- distcleanNeeded&#45;&gt;distcleanNeeded -->
 <g id="edge49" class="edge">
 <title>distcleanNeeded&#45;&gt;distcleanNeeded</title>
-<path fill="none" stroke="#ff0000" d="M1625.5253,-456.372C1636.2134,-454.5224 1643.5,-450.3984 1643.5,-444 1643.5,-439.801 1640.3619,-436.5816 1635.1838,-434.3416"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="1636.0993,-430.9634 1625.5253,-431.628 1634.2058,-437.7025 1636.0993,-430.9634"/>
+<path fill="none" stroke="#ff0000" d="M1368.0733,-456.854C1378.5741,-455.3159 1386,-451.0313 1386,-444 1386,-439.4956 1382.9524,-436.1184 1378.0011,-433.8684"/>
+<polygon fill="#ff0000" stroke="#ff0000" points="1378.6429,-430.4153 1368.0733,-431.146 1376.7917,-437.166 1378.6429,-430.4153"/>
 </g>
 <!-- init -->
 <g id="node39" class="node">
 <title>init</title>
 </g>
 <!-- init -->
 <g id="node39" class="node">
 <title>init</title>
-<polygon fill="#e0ffff" stroke="#000000" points="1641,-697 1587,-697 1587,-661 1641,-661 1641,-697"/>
-<text text-anchor="middle" x="1614" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">init</text>
+<polygon fill="#e0ffff" stroke="#000000" points="1390,-697 1336,-697 1336,-661 1390,-661 1390,-697"/>
+<text text-anchor="middle" x="1363" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">init</text>
 </g>
 <!-- wrapper -->
 <g id="node40" class="node">
 <title>wrapper</title>
 </g>
 <!-- wrapper -->
 <g id="node40" class="node">
 <title>wrapper</title>
-<polygon fill="#ffa500" stroke="#000000" points="1568.5,-697 1491.5,-697 1491.5,-661 1568.5,-661 1568.5,-697"/>
-<text text-anchor="middle" x="1530" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper</text>
+<polygon fill="#ffa500" stroke="#000000" points="1317.5,-697 1254.5,-697 1254.5,-661 1317.5,-661 1317.5,-697"/>
+<text text-anchor="middle" x="1286" y="-675.3" font-family="Times,serif" font-size="14.00" fill="#000000">wrapper</text>
 </g>
 </g>
 </svg>
 </g>
 </g>
 </svg>
diff --git a/lib/info.java/cnf/gradle/template/findbugs.gradle b/lib/info.java/cnf/gradle/template/findbugs.gradle
deleted file mode 100644 (file)
index 43ff077..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * WARNING
- *
- * This file should not be edited.
- *
- * GNU LIBRARY GENERAL PUBLIC LICENSE
- * Version 2, June 1991
- *
- * Add findbugs tasks to a (java) project.
- *
- * Note: the 'java' plugin must have been applied to the project before this
- *       file can be applied.
- *
- * Note: Set the 'CI' property (-PCI on the command line) to generate XML
- *       reports instead of html reports.
- */
-
-assert(project != rootProject   )
-assert(hasProperty('sourceSets'))
-
-
-repositories {
-  mavenCentral()
-}
-
-
-apply plugin: 'findbugs'
-
-
-if (!hasProperty('findbugsReportXML'     )) ext.findbugsReportXML      = 'CI'
-
-if (!hasProperty('findbugsIgnoreFailures')) ext.findbugsIgnoreFailures = true
-if (!hasProperty('findbugsIncludesFile'  )) ext.findbugsIncludesFile   = "${rootProject.rootDir}/${rootProject.bnd_cnf}/findbugs/findbugs.include.xml"
-if (!hasProperty('findbugsExcludesFile'  )) ext.findbugsExcludesFile   = "${rootProject.rootDir}/${rootProject.bnd_cnf}/findbugs/findbugs.exclude.xml"
-
-
-findbugs {
-  ignoreFailures =          findbugsIgnoreFailures
-  includeFilter  =     file(findbugsIncludesFile             )
-  excludeFilter  =     file(findbugsExcludesFile             )
-}
-
-findbugsMain {
-  dependsOn assemble
-  reports {
-    xml.enabled  = rootProject.hasProperty(findbugsReportXML) ? true  : false
-    html.enabled = rootProject.hasProperty(findbugsReportXML) ? false : true
-  }
-}
-
-findbugsTest {
-  dependsOn test
-  reports {
-    xml.enabled  = rootProject.hasProperty(findbugsReportXML) ? true  : false
-    html.enabled = rootProject.hasProperty(findbugsReportXML) ? false : true
-  }
-}
-
-/* Placeholder task to facilitate enabling the findbugsMain task (disabled by default) */
-task findbugs {
-  description "Enables findbugs on the source code (disabled by default; use -P${findbugsReportXML} to generate xml reports)."
-  group 'verification'
-}
-
-/* Placeholder task to facilitate enabling the findbugsTest task (disabled by default) */
-task findbugstest {
-  description "Enables findbugs on the test code (disabled by default; use -P${findbugsReportXML} to generate xml reports)."
-  group 'verification'
-}
-
-gradle.taskGraph.whenReady { taskGraph ->
-  tasks.findbugsMain.onlyIf {
-    taskGraph.hasTask((tasks.findbugs))
-  }
-  tasks.findbugsTest.onlyIf {
-    taskGraph.hasTask((tasks.findbugstest))
-  }
-}
index ef7f4a4..39485a8 100644 (file)
@@ -16,7 +16,7 @@ assert(hasProperty('sourceSets'))
 apply plugin: 'jacoco'
 
 
 apply plugin: 'jacoco'
 
 
-if (!hasProperty('jacocoToolVersion')) ext.jacocoToolVersion = '0.8.3'
+if (!hasProperty('jacocoToolVersion')) ext.jacocoToolVersion = '0.8.4'
 if (!hasProperty('jacocoXmlReport'  )) ext.jacocoXmlReport   = true
 if (!hasProperty('jacocoCsvReport'  )) ext.jacocoCsvReport   = false
 
 if (!hasProperty('jacocoXmlReport'  )) ext.jacocoXmlReport   = true
 if (!hasProperty('jacocoCsvReport'  )) ext.jacocoCsvReport   = false
 
index c124b33..3e89280 100644 (file)
@@ -17,8 +17,8 @@ assert(            hasProperty('sourceSets'))
 /* Setup javadoc options */
 apply from: rootProject.file("${rootProject.bnd_cnf}/gradle/template/javaDoc.gradle")
 
 /* Setup javadoc options */
 apply from: rootProject.file("${rootProject.bnd_cnf}/gradle/template/javaDoc.gradle")
 
-/* Add findbugs to the project */
-apply from: rootProject.file("${rootProject.bnd_cnf}/gradle/template/findbugs.gradle")
+/* Add spotbugs to the project */
+apply from: rootProject.file("${rootProject.bnd_cnf}/gradle/template/spotbugs.gradle")
 
 /* Add jacoco to the project */
 apply from: rootProject.file("${rootProject.bnd_cnf}/gradle/template/jacoco.gradle")
 
 /* Add jacoco to the project */
 apply from: rootProject.file("${rootProject.bnd_cnf}/gradle/template/jacoco.gradle")
diff --git a/lib/info.java/cnf/gradle/template/spotbugs.gradle b/lib/info.java/cnf/gradle/template/spotbugs.gradle
new file mode 100644 (file)
index 0000000..29a9c2c
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * WARNING
+ *
+ * This file should not be edited.
+ *
+ * GNU LIBRARY GENERAL PUBLIC LICENSE
+ * Version 2, June 1991
+ *
+ * Add spotbugs tasks to a (java) project.
+ *
+ * Note: the 'java' plugin must have been applied to the project before this
+ *       file can be applied.
+ *
+ * Note: Set the 'CI' property (-PCI on the command line) to generate XML
+ *       reports instead of html reports.
+ */
+
+assert(project != rootProject   )
+assert(hasProperty('sourceSets'))
+
+
+repositories {
+  mavenCentral()
+}
+
+
+apply plugin: 'com.github.spotbugs'
+
+
+if (!hasProperty('spotbugsReportXML'     )) ext.spotbugsReportXML      = 'CI'
+
+if (!hasProperty('spotbugsIgnoreFailures')) ext.spotbugsIgnoreFailures = true
+if (!hasProperty('spotbugsIncludesFile'  )) ext.spotbugsIncludesFile   = "${rootProject.rootDir}/${rootProject.bnd_cnf}/spotbugs/spotbugs.include.xml"
+if (!hasProperty('spotbugsExcludesFile'  )) ext.spotbugsExcludesFile   = "${rootProject.rootDir}/${rootProject.bnd_cnf}/spotbugs/spotbugs.exclude.xml"
+
+
+spotbugs {
+  ignoreFailures =          spotbugsIgnoreFailures
+  includeFilter  =     file(spotbugsIncludesFile             )
+  excludeFilter  =     file(spotbugsExcludesFile             )
+}
+
+spotbugsMain {
+  dependsOn assemble
+  reports {
+    xml.enabled  = rootProject.hasProperty(spotbugsReportXML) ? true  : false
+    html.enabled = rootProject.hasProperty(spotbugsReportXML) ? false : true
+  }
+}
+
+spotbugsTest {
+  dependsOn test
+  reports {
+    xml.enabled  = rootProject.hasProperty(spotbugsReportXML) ? true  : false
+    html.enabled = rootProject.hasProperty(spotbugsReportXML) ? false : true
+  }
+}
+
+/* Placeholder task to facilitate enabling the spotbugsMain task (disabled by default) */
+task spotbugs {
+  description "Enables spotbugs on the source code (disabled by default; use -P${spotbugsReportXML} to generate xml reports)."
+  group 'verification'
+}
+
+/* Placeholder task to facilitate enabling the spotbugsTest task (disabled by default) */
+task spotbugstest {
+  description "Enables spotbugs on the test code (disabled by default; use -P${spotbugsReportXML} to generate xml reports)."
+  group 'verification'
+}
+
+gradle.taskGraph.whenReady { taskGraph ->
+  tasks.spotbugsMain.onlyIf {
+    taskGraph.hasTask((tasks.spotbugs))
+  }
+  tasks.spotbugsTest.onlyIf {
+    taskGraph.hasTask((tasks.spotbugstest))
+  }
+}
diff --git a/lib/info.java/cnf/spotbugs/spotbugs.include.xml b/lib/info.java/cnf/spotbugs/spotbugs.include.xml
new file mode 100644 (file)
index 0000000..43bc332
--- /dev/null
@@ -0,0 +1,2 @@
+<FindBugsFilter>
+</FindBugsFilter>
index 11b0a78..4533f4b 100755 (executable)
@@ -125,8 +125,8 @@ if $darwin; then
     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
 fi
 
     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
 fi
 
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
     APP_HOME=`cygpath --path --mixed "$APP_HOME"`
     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
     JAVACMD=`cygpath --unix "$JAVACMD"`
     APP_HOME=`cygpath --path --mixed "$APP_HOME"`
     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
     JAVACMD=`cygpath --unix "$JAVACMD"`