Started calculate disk usage of build Finished Calculation of disk usage of build in 0 seconds Started calculate disk usage of workspace Finished Calculation of disk usage of workspace in 0 seconds [INFO] [INFO] --< it.tidalwave.northernwind.rca:it-tidalwave-northernwind-rca-ui-content-editor >-- [INFO] Building Zephyr - UI Content Editor 1.2-ALPHA-4-SNAPSHOT [7/14] [INFO] from modules/ContentEditor/pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- clean:3.1.0:clean (default-clean) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] [INFO] --- buildnumber:1.4:create (default) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] ShortRevision tag detected. The value is '12'. [INFO] Executing: /bin/sh -c cd '/var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor' && 'git' 'rev-parse' '--verify' '--short=12' 'HEAD' [INFO] Working directory: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor [INFO] Storing buildNumber: 17abbd59e0fa at timestamp: 1683632257666 [WARNING] Cannot get the branch information from the git repository: Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref [INFO] ShortRevision tag detected. The value is '12'. [INFO] Executing: /bin/sh -c cd '/var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor' && 'git' 'rev-parse' '--verify' '--short=12' 'HEAD' [INFO] Working directory: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor [INFO] Storing buildScmBranch: UNKNOWN [INFO] [INFO] --- enforcer:3.0.0-M3:enforce (enforce-maven) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] [INFO] --- enforcer:3.0.0-M3:enforce (enforce-banned-dependencies) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] [INFO] --- antrun:3.0.0:run (generate-and-print-build-description) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Executing tasks [INFO] [echo] DESCRIPTION: origin/release/1.2-ALPHA-4 1.2-ALPHA-4-SNAPSHOT 17abbd59e0fa [INFO] [echo] Java Version: 11.0.18 -source 11 -target 11 -release 11 [INFO] Executed tasks [INFO] [INFO] --- jacoco:0.8.7:prepare-agent (prepare-agent) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] tft.test.jacoco.argLine set to -javaagent:/var/jenkins_home/maven-repositories/1/org/jacoco/org.jacoco.agent/0.8.7/org.jacoco.agent-0.8.7-runtime.jar=destfile=/var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/jacoco.exec [INFO] [INFO] --- antrun:3.0.0:run (create-unwoven-classes-dirs) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Executing tasks [INFO] [mkdir] Created dir: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/unwoven-classes [INFO] [mkdir] Created dir: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/unwoven-test-classes [INFO] Executed tasks [INFO] [INFO] --- resources:3.2.0:resources (default-resources) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 29 resources [INFO] [INFO] --- compiler:3.8.1:compile (default-compile) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Parameter 'optimize' (user property 'maven.compiler.optimize') is deprecated: This property is a no-op in {@code javac}. [WARNING] Parameter 'outputDirectory' is read-only, must not be used in configuration [INFO] Changes detected - recompiling the module! [INFO] Compiling 9 source files to /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/unwoven-classes [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.filesystems.declmime.MIMEResolverProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NbBundleProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.ServiceProviderProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NamedServiceProcessor' less than -source '11' [WARNING] No processor claimed any of these annotations: /it.tidalwave.messagebus.annotation.ListensTo,/it.tidalwave.dci.annotation.DciRole,/javax.annotation.Nonnull,/it.tidalwave.util.annotation.VisibleForTesting,/it.tidalwave.messagebus.annotation.SimpleMessageSubscriber,/javax.annotation.concurrent.Immutable [INFO] [INFO] --- aspectj:1.11:compile (weave-classes) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Showing AJC message detail for messages of types: [error, warning, fail] [INFO] [INFO] --- resources:3.2.0:testResources (default-testResources) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 8 resources [INFO] [INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Parameter 'optimize' (user property 'maven.compiler.optimize') is deprecated: This property is a no-op in {@code javac}. [WARNING] Parameter 'outputDirectory' is read-only, must not be used in configuration [INFO] Changes detected - recompiling the module! [INFO] Compiling 5 source files to /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/unwoven-test-classes [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.filesystems.declmime.MIMEResolverProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NbBundleProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.ServiceProviderProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NamedServiceProcessor' less than -source '11' [WARNING] No processor claimed any of these annotations: /javax.annotation.Nonnull,/org.testng.annotations.BeforeMethod,/org.testng.annotations.Test,/org.testng.annotations.DataProvider,/org.testng.annotations.AfterMethod [WARNING] /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/src/test/java/it/tidalwave/northernwind/rca/ui/contenteditor/spi/DefaultContentEditorPresentationControlTest.java:[116,47] [unchecked] unchecked method invocation: method createBoundDocument in interface PropertyBinder is applied to given types required: Key,UpdateCallback found: Key,UpdateCallback [WARNING] /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/src/test/java/it/tidalwave/northernwind/rca/ui/contenteditor/spi/DefaultContentEditorPresentationControlTest.java:[116,51] [unchecked] unchecked conversion required: Key found: Key [INFO] [INFO] --- aspectj:1.11:test-compile (weave-test-classes) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Showing AJC message detail for messages of types: [error, warning, fail] [INFO] [INFO] --- surefire:3.0.0-M5:test (default-test) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead. [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running TestSuite 11:37:50.755 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - STARTING TESTS OF it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest 11:37:50.846 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ************************************** 11:37:50.846 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly convert to string" 11:37:50.846 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ************************************** 11:37:50.883 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString() body 11:37:51.162 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning: body 11:37:51.177 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 332 msec 11:37:51.177 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - 11:37:51.179 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ************************************* 11:37:51.182 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly create from text" 11:37:51.183 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ************************************* 11:37:51.195 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 16 msec 11:37:51.197 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - 11:37:51.198 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ********************************* 11:37:51.202 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly replace body" 11:37:51.203 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ********************************* 11:37:51.206 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 7 msec 11:37:51.206 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - 11:37:51.210 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *********************************** 11:37:51.210 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly replace epilog" 11:37:51.212 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *********************************** 11:37:51.213 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 3 msec 11:37:51.213 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - 11:37:51.215 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *********************************** 11:37:51.215 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly replace prolog" 11:37:51.216 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *********************************** 11:37:51.217 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 2 msec 11:37:51.217 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - 11:37:51.228 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ************************************ 11:37:51.228 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST "must properly normalise Xhtml" 11:37:51.230 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ARGS [1.xhtml] 11:37:51.230 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ************************************ 11:37:51.236 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()

Et eunt homines mirari alta montium
et ingentes fluctus maris
et latissimos lapsus fluminum
et oceani ambitum
et gyros siderum
et relinquunt se ipsos

St. Augustine, Confessiones, X, 8,15

I'm Fabrizio Giudici, born in Genoa, Italy. I'm a software engineer and I run my own small company. But if you're here, I guess it's because you're interested in my photography activities. This site focuses on my travel photography: it contains many galleries and a few technical articles. It's still a “work in progress” thing as, for instance, many shots from the past are being re-processed to comply with my latest taste and competence in colour management.

My relationship with photography is tightly related with my travels: I bought my first Minolta SLR in 1996, when I started regular travelling for business reasons. For some years I wasn't really serious about it: it was just casual, P-mode shooting. Now, after many years, I'm definitely more committed.

A short equipment history

Only in 2000, just before leaving for San Francisco, I planned to exclusively dedicate a few days to photography: I was fascinated by the Big Sur and Yosemite, that I knew by means of some books. For that circumstance I decided that it was high time I took technique more seriously: so I bought a more sophisticated body, with full exposure control, and switched from negative to slide films.

The journey results were promising, so in 2001 I started planning about building a serious lens system. I got rid of the previous equipment (based on cheap zoom lenses) and picked the Nikon brand: an F-80 body and my first prime lenses (you can learn more about my equipment here). As the years passed by, I was dedicating more and more time to photography. Also, where possible, I opted for driving in place of flying: a straight line is the fastest travel solution, but also the most boring one. In this way I began exploring Italy and Europe. Birds became a primary interest too, and this brought a long tele lens into my arsenal.

The second revolution happened in 2003, when I took my last film shot and entered the digital world. It really was a quantum leap, not only for the better features digital provided, such as the capability of switching ISO on the fly, but also for the possibility of immediately looking at the results and learn from errors.

In 2012 I owned many prime lenses and a single ultra-wide zoom. I realised that the prime lens approach, made for privileging image quality, was causing some problems, mostly the fact that sometimes I was just missing some photos for my laziness in changing lenses. I decided for an experimental year with a 18-70mm lens and a temporary ban on the prime lenses in that focal range. It was a success.

While I was evaluating a possible upgrade of the 18-70mm lens, I also realised that more and more frequently my photographic expeditions were a pain because of my increasing neck and back problems. So at the end of 2013 I looked at the mirrorless world, that was promising less weight for the same image quality. At the beginning I was highly sceptical and did a lot of research; then I bought a Sony NEX-6 and a couple of lenses to start a new experiment. After a few months of accurate evaluation and experience on the field with Sony products, another revolution happened: I decided to permanently switch and currently my Nikon stuff is being phased out.


Questo sito non è una testata giornalistica in quanto è aggiornato senza alcuna periodicità; non può pertanto essere considerato un prodotto editoriale ai sensi della legge n. 62 del 7.03.2001.

11:37:51.305 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:

Et eunt homines mirari alta montium
et ingentes fluctus maris
et latissimos lapsus fluminum
et oceani ambitum
et gyros siderum
et relinquunt se ipsos

St. Augustine, Confessiones, X, 8,15

I'm Fabrizio Giudici, born in Genoa, Italy. I'm a software engineer and I run my own small company. But if you're here, I guess it's because you're interested in my photography activities. This site focuses on my travel photography: it contains many galleries and a few technical articles. It's still a “work in progress” thing as, for instance, many shots from the past are being re-processed to comply with my latest taste and competence in colour management.

My relationship with photography is tightly related with my travels: I bought my first Minolta SLR in 1996, when I started regular travelling for business reasons. For some years I wasn't really serious about it: it was just casual, P-mode shooting. Now, after many years, I'm definitely more committed.

A short equipment history

Only in 2000, just before leaving for San Francisco, I planned to exclusively dedicate a few days to photography: I was fascinated by the Big Sur and Yosemite, that I knew by means of some books. For that circumstance I decided that it was high time I took technique more seriously: so I bought a more sophisticated body, with full exposure control, and switched from negative to slide films.

The journey results were promising, so in 2001 I started planning about building a serious lens system. I got rid of the previous equipment (based on cheap zoom lenses) and picked the Nikon brand: an F-80 body and my first prime lenses (you can learn more about my equipment here). As the years passed by, I was dedicating more and more time to photography. Also, where possible, I opted for driving in place of flying: a straight line is the fastest travel solution, but also the most boring one. In this way I began exploring Italy and Europe. Birds became a primary interest too, and this brought a long tele lens into my arsenal.

The second revolution happened in 2003, when I took my last film shot and entered the digital world. It really was a quantum leap, not only for the better features digital provided, such as the capability of switching ISO on the fly, but also for the possibility of immediately looking at the results and learn from errors.

In 2012 I owned many prime lenses and a single ultra-wide zoom. I realised that the prime lens approach, made for privileging image quality, was causing some problems, mostly the fact that sometimes I was just missing some photos for my laziness in changing lenses. I decided for an experimental year with a 18-70mm lens and a temporary ban on the prime lenses in that focal range. It was a success.

While I was evaluating a possible upgrade of the 18-70mm lens, I also realised that more and more frequently my photographic expeditions were a pain because of my increasing neck and back problems. So at the end of 2013 I looked at the mirrorless world, that was promising less weight for the same image quality. At the beginning I was highly sceptical and did a lot of research; then I bought a Sony NEX-6 and a couple of lenses to start a new experiment. After a few months of accurate evaluation and experience on the field with Sony products, another revolution happened: I decided to permanently switch and currently my Nikon stuff is being phased out.


Questo sito non è una testata giornalistica in quanto è aggiornato senza alcuna periodicità; non può pertanto essere considerato un prodotto editoriale ai sensi della legge n. 62 del 7.03.2001.

11:37:51.320 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files: 11:37:51.321 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/ 11:37:51.321 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/JSoupXhtmlNormalizerTest/expected-results/1.xhtml 11:37:51.321 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/JSoupXhtmlNormalizerTest/1.xhtml 11:37:51.339 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST PASSED in 112 msec 11:37:51.340 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - 11:37:51.345 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ************************************* 11:37:51.345 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST "must properly normalise Xhtml" 11:37:51.345 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ARGS [DocumentWithIndentedCode.xhtml] 11:37:51.345 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ************************************* 11:37:51.347 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()

In these days I'm sorting out my code repositories, in particular by definitely tagging as "legacy" those that are dead and converting to Git the others (I've still a strong preference towards Mercurial, but in the end most people use Git and some of my pet projects are also used as mentoring resources), a move that also made it possible to replicate the repositories to GitHub (my primary repository remains BitBucket though).

As part of the sorting up, I realised that most of my projects lacked a decent README file, that both BitBucket and GitHub render in the home page of the project as a nice introduction. A good README should contain both the description of the project and a few practical information, such as linking the issue tracker and a other relevant stuff, as well as provide information for quickly booting the project - in the case of a project whose artifacts are released through the Maven Repo Central, essentially you have to give their GAV coordinates. Furthermore, Shields.io provides a funny set of dynamic badges that can be populated with some info, such as the latest release deployed or information from a CI server.

Of course a consistent structure for a README should be provided for all of my projects and since I'm a lazy guy I really respect the DRY (Don't Repeat Yourself) principle, so I don't want to copy & paste the description of the project from the POM. Recognising that all the required metadata for what I need are precisely in the POM, the idea is obvious: have a tool to create the README from the POM.

As usual, before creating something new it makes sense to search for a solution that someone perhaps already made. I found a Maven plugin made by the Apache Foundation, that they appear to use for their projects, but unfortunately it uses a template whose source is a URL hard-wired in the plugin, without the possibility to be overridden.

But before starting and writing my own plugin, I realised that a simple solution was straightforward: use the maven-resource-plugin. In fact it is able to copy a resource to a destination folder after having interpolated some properties defined in the POM. So I added this profile to my SuperPOM:

<profile>
    <id>it.tidalwave-generate-readme-md-v1</id>
    <build>
        <defaultGoal>dependency:unpack resources:copy-resources</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <artifactItems>
                        <artifactItem>
                            <groupId>it.tidalwave.thesefoolishthings</groupId>
                            <artifactId>superpom-config</artifactId>
                            <version>${tft.superpom.config.version}</version>
                            <type>jar</type>
                            <overWrite>true</overWrite>
                            <outputDirectory>${project.basedir}/target/superpom-resources</outputDirectory>
                        </artifactItem>
                    </artifactItems>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <resources>
                        <resource>
                            <directory>${project.basedir}/target/superpom-resources/it/tidalwave/readme/</directory>
                            <filtering>true</filtering>
                        </resource>
                    </resources>
                    <outputDirectory>.</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>

It downloads and unpacks the template file (which is a README.md file under the directory it/tidalwave/readme) from another artefact previously deployed (it.tidalwave.thesefoolishthings:superpom-config) and copies it into the current directory. This is an excerpt of the template:

![Maven Central](https://img.shields.io/maven-central/v/${project.groupId}/${project.artifactId}.svg)
[![Build Status](https://img.shields.io/jenkins/s/http/services.tidalwave.it/ci/${tidalwave.ci.view}_Build_from_Scratch.svg)](${project.ciManagement.url})
[![Test Status](https://img.shields.io/jenkins/t/http/services.tidalwave.it/ci/${tidalwave.ci.view}.svg)](${project.ciManagement.url})
[![Coverage](https://img.shields.io/jenkins/c/http/services.tidalwave.it/ci/${tidalwave.ci.view}.svg)](${project.ciManagement.url})

${project.name}
================================

${project.description}


Bootstrapping
-------------

In order to build the project, run from the command line:

```mvn -DskipTests```

The project can be opened and built by a recent version of the NetBeans, Eclipse or Idea IDEs.


Documentation
-------------

More information can be found on the [homepage](${project.url}) of the project.

...

As you can see the required metadata can be inserted by using the syntax ${project.description}. BTW, that specific property makes it possible to reuse the description of the project that is already in the POM, that at this point can be comfortably written in markdown syntax. All I need to do is running from the top directory of each project:

mvn -Pit.tidalwave-generate-readme-md-v1 -N

and the README.md is locally (re)created, ready to be committed and pushed. Too bad the coverage badge is broken because of a issue with my Jenkins, but it's another story.

11:37:51.368 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:

In these days I'm sorting out my code repositories, in particular by definitely tagging as "legacy" those that are dead and converting to Git the others (I've still a strong preference towards Mercurial, but in the end most people use Git and some of my pet projects are also used as mentoring resources), a move that also made it possible to replicate the repositories to GitHub (my primary repository remains BitBucket though).

As part of the sorting up, I realised that most of my projects lacked a decent README file, that both BitBucket and GitHub render in the home page of the project as a nice introduction. A good README should contain both the description of the project and a few practical information, such as linking the issue tracker and a other relevant stuff, as well as provide information for quickly booting the project - in the case of a project whose artifacts are released through the Maven Repo Central, essentially you have to give their GAV coordinates. Furthermore, Shields.io provides a funny set of dynamic badges that can be populated with some info, such as the latest release deployed or information from a CI server.

Of course a consistent structure for a README should be provided for all of my projects and since I'm a lazy guy I really respect the DRY (Don't Repeat Yourself) principle, so I don't want to copy & paste the description of the project from the POM. Recognising that all the required metadata for what I need are precisely in the POM, the idea is obvious: have a tool to create the README from the POM.

As usual, before creating something new it makes sense to search for a solution that someone perhaps already made. I found a Maven plugin made by the Apache Foundation, that they appear to use for their projects, but unfortunately it uses a template whose source is a URL hard-wired in the plugin, without the possibility to be overridden.

But before starting and writing my own plugin, I realised that a simple solution was straightforward: use the maven-resource-plugin. In fact it is able to copy a resource to a destination folder after having interpolated some properties defined in the POM. So I added this profile to my SuperPOM:

<profile>
    <id>it.tidalwave-generate-readme-md-v1</id>
    <build>
        <defaultGoal>dependency:unpack resources:copy-resources</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <artifactItems>
                        <artifactItem>
                            <groupId>it.tidalwave.thesefoolishthings</groupId>
                            <artifactId>superpom-config</artifactId>
                            <version>${tft.superpom.config.version}</version>
                            <type>jar</type>
                            <overWrite>true</overWrite>
                            <outputDirectory>${project.basedir}/target/superpom-resources</outputDirectory>
                        </artifactItem>
                    </artifactItems>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <resources>
                        <resource>
                            <directory>${project.basedir}/target/superpom-resources/it/tidalwave/readme/</directory>
                            <filtering>true</filtering>
                        </resource>
                    </resources>
                    <outputDirectory>.</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>

It downloads and unpacks the template file (which is a README.md file under the directory it/tidalwave/readme) from another artefact previously deployed (it.tidalwave.thesefoolishthings:superpom-config) and copies it into the current directory. This is an excerpt of the template:

![Maven Central](https://img.shields.io/maven-central/v/${project.groupId}/${project.artifactId}.svg)
[![Build Status](https://img.shields.io/jenkins/s/http/services.tidalwave.it/ci/${tidalwave.ci.view}_Build_from_Scratch.svg)](${project.ciManagement.url})
[![Test Status](https://img.shields.io/jenkins/t/http/services.tidalwave.it/ci/${tidalwave.ci.view}.svg)](${project.ciManagement.url})
[![Coverage](https://img.shields.io/jenkins/c/http/services.tidalwave.it/ci/${tidalwave.ci.view}.svg)](${project.ciManagement.url})

${project.name}
================================

${project.description}


Bootstrapping
-------------

In order to build the project, run from the command line:

```mvn -DskipTests```

The project can be opened and built by a recent version of the NetBeans, Eclipse or Idea IDEs.


Documentation
-------------

More information can be found on the [homepage](${project.url}) of the project.

...

As you can see the required metadata can be inserted by using the syntax ${project.description}. BTW, that specific property makes it possible to reuse the description of the project that is already in the POM, that at this point can be comfortably written in markdown syntax. All I need to do is running from the top directory of each project:

mvn -Pit.tidalwave-generate-readme-md-v1 -N

and the README.md is locally (re)created, ready to be committed and pushed. Too bad the coverage badge is broken because of a issue with my Jenkins, but it's another story.

11:37:51.369 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files: 11:37:51.370 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/ 11:37:51.370 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/JSoupXhtmlNormalizerTest/expected-results/DocumentWithIndentedCode.xhtml 11:37:51.370 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/JSoupXhtmlNormalizerTest/DocumentWithIndentedCode.xhtml 11:37:51.376 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST PASSED in 31 msec 11:37:51.376 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - 11:37:51.478 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@9f48198/null at construction time: [] 11:37:51.479 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@5814b4fb/null at construction time: [] 11:37:51.480 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@18d22ecf/null at construction time: [] 11:37:52.702 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ***************************************** 11:37:52.702 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must properly initialize resources" 11:37:52.704 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ***************************************** 11:37:52.708 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files: 11:37:52.709 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/ 11:37:52.709 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/ResourcePropertiesBinderTest/expected-results/EditorProlog.txt 11:37:52.709 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/ResourcePropertiesBinderTest/EditorProlog.txt 11:37:52.711 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files: 11:37:52.713 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/ 11:37:52.715 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/ResourcePropertiesBinderTest/expected-results/EditorEpilog.txt 11:37:52.715 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/ResourcePropertiesBinderTest/EditorEpilog.txt 11:37:52.716 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 13 msec 11:37:52.716 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - 11:37:52.718 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@b6fea12/null at construction time: [] 11:37:52.719 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@75c095a5/null at construction time: [] 11:37:52.720 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@689fe2a3/null at construction time: [] 11:37:52.726 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - *********************************************************************************** 11:37:52.726 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must be notified with updated ResourceProperties when bound document updated" 11:37:52.726 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - *********************************************************************************** 11:37:52.727 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), the body ) 11:37:52.728 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning the body (java.lang.String) 11:37:52.733 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
the body
11:37:52.773 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
the body
11:37:52.775 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString() the updated body 11:37:52.783 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning: the updated body 11:37:52.784 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@5955568/null at construction time: [] 11:37:52.904 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title) 11:37:52.905 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String) 11:37:52.905 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), the updated body ) 11:37:52.905 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning the updated body (java.lang.String) 11:37:52.907 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title) 11:37:52.907 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String) 11:37:52.908 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), the updated body ) 11:37:52.908 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning the updated body (java.lang.String) 11:37:52.912 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 186 msec 11:37:52.912 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - 11:37:52.921 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@6b83ec49/null at construction time: [] 11:37:52.922 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@50ad5625/null at construction time: [] 11:37:52.922 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@1d921267/null at construction time: [] 11:37:52.923 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - *********************************************************************************** 11:37:52.923 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must be notified with updated ResourceProperties when bound property updated" 11:37:52.924 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - *********************************************************************************** 11:37:52.929 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title) 11:37:52.929 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String) 11:37:52.932 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@43600de0/null at construction time: [] 11:37:52.933 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), New title) 11:37:52.933 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning New title (java.lang.String) 11:37:52.933 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), the body ) 11:37:52.934 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning the body (java.lang.String) 11:37:52.934 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), New title) 11:37:52.934 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning New title (java.lang.String) 11:37:52.934 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), the body ) 11:37:52.935 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning the body (java.lang.String) 11:37:52.935 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 12 msec 11:37:52.935 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - 11:37:52.939 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@2e5ff1d4/null at construction time: [] 11:37:52.940 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@1a16583d/null at construction time: [] 11:37:52.940 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@59da4992/null at construction time: [] 11:37:52.941 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************ 11:37:52.941 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must properly set value to bound document" 11:37:52.941 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************ 11:37:52.942 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), the body ) 11:37:52.943 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning the body (java.lang.String) 11:37:52.943 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
the body
11:37:52.972 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
the body
11:37:52.974 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files: 11:37:52.974 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/ 11:37:52.974 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/ResourcePropertiesBinderTest/expected-results/DocumentProxy.txt 11:37:52.986 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/ResourcePropertiesBinderTest/DocumentProxy.txt 11:37:52.988 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 47 msec 11:37:52.989 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - 11:37:52.990 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@668ea404/null at construction time: [] 11:37:53.003 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@6c89c92e/null at construction time: [] 11:37:53.003 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@62109320/null at construction time: [] 11:37:53.003 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************ 11:37:53.004 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must properly set value to bound property" 11:37:53.004 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************ 11:37:53.004 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title) 11:37:53.004 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String) 11:37:53.018 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 15 msec 11:37:53.019 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - 11:37:54.642 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@77ffb5e9 11:37:54.647 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor 11:37:54.676 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation... 11:37:57.945 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder]) 11:37:57.954 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles: 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.ContentDisplayable] 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ContentPresentable] 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.m.a.r.Saveable -> [i.t.n.m.i.a.r.ResourcePropertiesSaveable] 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.r.u.c.s.PropertyBinder -> [i.t.n.r.u.c.i.ResourcePropertiesBinder] 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ResourcePropertiesPresentable] 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.SiteNodeDisplayable] 11:37:57.955 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.SiteNodePresentable] 11:37:57.956 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.f.f.i.ResourceFileNetBeansPlatform: i.t.n.m.a.r.WritableFolder -> [i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder] 11:37:58.279 [main ] INFO i.t.northernwind.util.test.SpringTestHelper - Beans: [org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.event.internalEventListenerProcessor, org.springframework.context.event.internalEventListenerFactory, org.springframework.context.config.internalBeanConfigurerAspect, org.springframework.aop.config.internalAutoProxyCreator, underTest, roleManager, contextManager, applicationMessageBus, org.mockito.Mockito#0, org.mockito.Mockito#1] 11:37:58.306 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@77eadc56 at construction time: [] 11:37:58.307 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@53f74c6f at construction time: [] 11:37:58.338 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent)) 11:37:58.770 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ********************************** 11:37:58.770 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must be a MessageSubscriber" 11:37:58.770 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ********************************** 11:37:58.772 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 2 msec 11:37:58.773 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 11:37:58.920 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@46a3934c 11:37:58.920 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor 11:37:58.921 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation... 11:38:01.197 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder]) 11:38:01.198 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles: 11:38:01.198 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.ContentDisplayable] 11:38:01.198 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ContentPresentable] 11:38:01.198 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.m.a.r.Saveable -> [i.t.n.m.i.a.r.ResourcePropertiesSaveable] 11:38:01.198 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.r.u.c.s.PropertyBinder -> [i.t.n.r.u.c.i.ResourcePropertiesBinder] 11:38:01.199 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ResourcePropertiesPresentable] 11:38:01.199 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.SiteNodeDisplayable] 11:38:01.199 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.SiteNodePresentable] 11:38:01.199 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.f.f.i.ResourceFileNetBeansPlatform: i.t.n.m.a.r.WritableFolder -> [i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder] 11:38:01.227 [main ] INFO i.t.northernwind.util.test.SpringTestHelper - Beans: [org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.event.internalEventListenerProcessor, org.springframework.context.event.internalEventListenerFactory, org.springframework.context.config.internalBeanConfigurerAspect, org.springframework.aop.config.internalAutoProxyCreator, underTest, roleManager, contextManager, applicationMessageBus, org.mockito.Mockito#0, org.mockito.Mockito#1] 11:38:01.235 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@16b7a3b0 at construction time: [] 11:38:01.236 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@4ae00f79 at construction time: [] 11:38:01.237 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent)) 11:38:01.241 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - **************** 11:38:01.242 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must bind" 11:38:01.242 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - **************** 11:38:01.245 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 4 msec 11:38:01.246 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 11:38:01.333 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@226ac835 11:38:01.334 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor 11:38:01.336 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation... 11:38:03.547 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder]) 11:38:03.547 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles: 11:38:03.547 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.ContentDisplayable] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ContentPresentable] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.m.a.r.Saveable -> [i.t.n.m.i.a.r.ResourcePropertiesSaveable] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.r.u.c.s.PropertyBinder -> [i.t.n.r.u.c.i.ResourcePropertiesBinder] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ResourcePropertiesPresentable] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.SiteNodeDisplayable] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.SiteNodePresentable] 11:38:03.548 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.f.f.i.ResourceFileNetBeansPlatform: i.t.n.m.a.r.WritableFolder -> [i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder] 11:38:03.568 [main ] INFO i.t.northernwind.util.test.SpringTestHelper - Beans: [org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.event.internalEventListenerProcessor, org.springframework.context.event.internalEventListenerFactory, org.springframework.context.config.internalBeanConfigurerAspect, org.springframework.aop.config.internalAutoProxyCreator, underTest, roleManager, contextManager, applicationMessageBus, org.mockito.Mockito#0, org.mockito.Mockito#1] 11:38:03.572 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@13c09a95 at construction time: [] 11:38:03.573 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@16f1b252 at construction time: [] 11:38:03.573 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent)) 11:38:03.579 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ********************************************************************* 11:38:03.579 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must clear the presentation on reception of an empty selection" 11:38:03.579 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ********************************************************************* 11:38:03.583 [main ] DEBUG i.t.n.r.u.c.s.DefaultContentEditorPresentationControl - onContentSelected(ContentSelectedEvent(content=Optional.empty)) 11:38:03.585 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 6 msec 11:38:03.586 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 11:38:03.661 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@6bc82db6 11:38:03.662 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor 11:38:03.669 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation... 11:38:05.859 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder]) 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles: 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.ContentDisplayable] 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.Content: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ContentPresentable] 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.m.a.r.Saveable -> [i.t.n.m.i.a.r.ResourcePropertiesSaveable] 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.n.r.u.c.s.PropertyBinder -> [i.t.n.r.u.c.i.ResourcePropertiesBinder] 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.ResourceProperties: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.ResourcePropertiesPresentable] 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Displayable -> [i.t.n.m.i.a.r.SiteNodeDisplayable] 11:38:05.878 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.c.m.SiteNode: i.t.r.u.Presentable -> [i.t.n.m.i.a.r.SiteNodePresentable] 11:38:05.879 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - >>>> i.t.n.f.f.i.ResourceFileNetBeansPlatform: i.t.n.m.a.r.WritableFolder -> [i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder] 11:38:05.916 [main ] INFO i.t.northernwind.util.test.SpringTestHelper - Beans: [org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.event.internalEventListenerProcessor, org.springframework.context.event.internalEventListenerFactory, org.springframework.context.config.internalBeanConfigurerAspect, org.springframework.aop.config.internalAutoProxyCreator, underTest, roleManager, contextManager, applicationMessageBus, org.mockito.Mockito#0, org.mockito.Mockito#1] 11:38:05.929 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@7353242e at construction time: [] 11:38:05.930 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@1a7ffb41 at construction time: [] 11:38:05.931 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent)) 11:38:05.933 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ****************************************************************************************** 11:38:05.933 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must populate the presentation and bind properties on reception of selected content" 11:38:05.933 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ****************************************************************************************** 11:38:05.947 [main ] DEBUG i.t.n.r.u.c.s.DefaultContentEditorPresentationControl - onContentSelected(ContentSelectedEvent(content=Optional[Mock for Content, hashCode: 575951656])) 11:38:05.958 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 25 msec 11:38:05.959 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 11:38:06.004 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - FINISHED TESTS OF it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest [INFO] Tests run: 16, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 16.59 s - in TestSuite [INFO] [INFO] Results: [INFO] [INFO] Tests run: 16, Failures: 0, Errors: 0, Skipped: 0 [INFO] [JENKINS] Recording test results [INFO] [INFO] --- jacoco:0.8.7:report (report) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Loading execution data file /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/jacoco.exec [INFO] Analyzed bundle 'Zephyr - UI Content Editor' with 12 classes [INFO] [INFO] --- jar:3.2.0:jar (default-jar) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Building jar: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.17abbd59e0fa.jar [INFO] [INFO] --- jar:3.2.0:test-jar (default-test-jar) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Building jar: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.17abbd59e0fa-tests.jar [INFO] [INFO] --- install:3.0.0-M1:install (default-install) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Installing /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.17abbd59e0fa.jar to /var/jenkins_home/maven-repositories/1/it/tidalwave/northernwind/rca/it-tidalwave-northernwind-rca-ui-content-editor/1.2-ALPHA-4-SNAPSHOT/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.jar [INFO] Installing /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/pom.xml to /var/jenkins_home/maven-repositories/1/it/tidalwave/northernwind/rca/it-tidalwave-northernwind-rca-ui-content-editor/1.2-ALPHA-4-SNAPSHOT/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.pom [INFO] Installing /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.17abbd59e0fa-tests.jar to /var/jenkins_home/maven-repositories/1/it/tidalwave/northernwind/rca/it-tidalwave-northernwind-rca-ui-content-editor/1.2-ALPHA-4-SNAPSHOT/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT-tests.jar [INFO] [INFO] >>> spotbugs:4.5.0.0:check (default-cli) > :spotbugs @ it-tidalwave-northernwind-rca-ui-content-editor >>> [INFO] [INFO] --- spotbugs:4.5.0.0:spotbugs (spotbugs) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Fork Value is true [java] [main] WARN edu.umd.cs.findbugs.TextUICommandLine - -output option and -outputFile option are deprecated. Set file path to each option for reporter. [INFO] Done SpotBugs Analysis.... [INFO] [INFO] <<< spotbugs:4.5.0.0:check (default-cli) < :spotbugs @ it-tidalwave-northernwind-rca-ui-content-editor <<< [INFO] [INFO] [INFO] --- spotbugs:4.5.0.0:check (default-cli) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] BugInstance size is 1 [INFO] Error size is 0 [INFO] Total bugs: 1 [ERROR] Low: Exceptional return value of java.util.concurrent.ExecutorService.submit(Runnable) ignored in it.tidalwave.northernwind.rca.ui.contenteditor.impl.ProcessExecutor.execute() [it.tidalwave.northernwind.rca.ui.contenteditor.impl.ProcessExecutor] At ProcessExecutor.java:[line 105] RV_RETURN_VALUE_IGNORED_BAD_PRACTICE [INFO] To see bug detail using the Spotbugs GUI, use the following command "mvn spotbugs:gui" [INFO] [INFO] --- pmd:3.14.0:cpd (default-cli) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Unable to locate Source XRef to link to - DISABLED [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [INFO] --- pmd:3.14.0:pmd (default-cli) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Unable to locate Source XRef to link to - DISABLED [WARNING] Unable to locate Source XRef to link to - DISABLED [WARNING] Applying rule set filter: The rule "UnusedModifier" has been moved from ruleset "unusedcode" to "unnecessary". Please change your ruleset! [WARNING] Applying rule set filter: The rule "UnusedModifier" has been renamed to "UnnecessaryModifier". Please change your ruleset! [WARNING] The RuleSet rulesets/java/basic.xml has been deprecated and will be removed in PMD 7.0.0 [WARNING] The RuleSet rulesets/java/unusedcode.xml has been deprecated and will be removed in PMD 7.0.0 [WARNING] The RuleSet rulesets/java/imports.xml has been deprecated and will be removed in PMD 7.0.0 [WARNING] Applying rule set filter: The rule "UnusedModifier" has been moved from ruleset "unusedcode" to "unnecessary". Please change your ruleset! [WARNING] Applying rule set filter: The rule "UnusedModifier" has been renamed to "UnnecessaryModifier". Please change your ruleset! [WARNING] The RuleSet rulesets/java/basic.xml has been deprecated and will be removed in PMD 7.0.0 [WARNING] The RuleSet rulesets/java/unusedcode.xml has been deprecated and will be removed in PMD 7.0.0 [WARNING] The RuleSet rulesets/java/imports.xml has been deprecated and will be removed in PMD 7.0.0 [INFO] [INFO] --- checkstyle:3.0.0:checkstyle (default-cli) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] There are 20 errors reported by Checkstyle 6.18 with it/tidalwave/checkstyle/checkstyle.xml ruleset. [WARNING] Unable to locate Source XRef to link to - DISABLED [INFO] [INFO] >>> dependency:3.1.2:analyze (default-cli) > test-compile @ it-tidalwave-northernwind-rca-ui-content-editor >>> [INFO] [INFO] --- buildnumber:1.4:create (default) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] ShortRevision tag detected. The value is '12'. [INFO] Executing: /bin/sh -c cd '/var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor' && 'git' 'rev-parse' '--verify' '--short=12' 'HEAD' [INFO] Working directory: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor [INFO] Storing buildNumber: 17abbd59e0fa at timestamp: 1683632298294 [WARNING] Cannot get the branch information from the git repository: Detecting the current branch failed: fatal: ref HEAD is not a symbolic ref [INFO] ShortRevision tag detected. The value is '12'. [INFO] Executing: /bin/sh -c cd '/var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor' && 'git' 'rev-parse' '--verify' '--short=12' 'HEAD' [INFO] Working directory: /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor [INFO] Storing buildScmBranch: UNKNOWN [INFO] [INFO] --- enforcer:3.0.0-M3:enforce (enforce-maven) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] [INFO] --- enforcer:3.0.0-M3:enforce (enforce-banned-dependencies) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] [INFO] --- antrun:3.0.0:run (generate-and-print-build-description) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Executing tasks [INFO] [echo] DESCRIPTION: origin/release/1.2-ALPHA-4 1.2-ALPHA-4-SNAPSHOT 17abbd59e0fa [INFO] [echo] Java Version: 11.0.18 -source 11 -target 11 -release 11 [INFO] Executed tasks [INFO] [INFO] --- jacoco:0.8.7:prepare-agent (prepare-agent) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] tft.test.jacoco.argLine set to -javaagent:/var/jenkins_home/maven-repositories/1/org/jacoco/org.jacoco.agent/0.8.7/org.jacoco.agent-0.8.7-runtime.jar=destfile=/var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/jacoco.exec [INFO] [INFO] --- antrun:3.0.0:run (create-unwoven-classes-dirs) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Executing tasks [INFO] Executed tasks [INFO] [INFO] --- resources:3.2.0:resources (default-resources) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 29 resources [INFO] [INFO] --- compiler:3.8.1:compile (default-compile) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Parameter 'optimize' (user property 'maven.compiler.optimize') is deprecated: This property is a no-op in {@code javac}. [WARNING] Parameter 'outputDirectory' is read-only, must not be used in configuration [INFO] Changes detected - recompiling the module! [INFO] Compiling 9 source files to /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/unwoven-classes [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.filesystems.declmime.MIMEResolverProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NbBundleProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.ServiceProviderProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NamedServiceProcessor' less than -source '11' [WARNING] No processor claimed any of these annotations: /it.tidalwave.messagebus.annotation.ListensTo,/it.tidalwave.dci.annotation.DciRole,/javax.annotation.Nonnull,/it.tidalwave.util.annotation.VisibleForTesting,/it.tidalwave.messagebus.annotation.SimpleMessageSubscriber,/javax.annotation.concurrent.Immutable [INFO] [INFO] --- aspectj:1.11:compile (weave-classes) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Showing AJC message detail for messages of types: [error, warning, fail] [INFO] [INFO] --- resources:3.2.0:testResources (default-testResources) @ it-tidalwave-northernwind-rca-ui-content-editor --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Using 'UTF-8' encoding to copy filtered properties files. [INFO] Copying 8 resources [INFO] [INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Parameter 'optimize' (user property 'maven.compiler.optimize') is deprecated: This property is a no-op in {@code javac}. [WARNING] Parameter 'outputDirectory' is read-only, must not be used in configuration [INFO] Changes detected - recompiling the module! [INFO] Compiling 5 source files to /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/target/unwoven-test-classes [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.filesystems.declmime.MIMEResolverProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NbBundleProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.ServiceProviderProcessor' less than -source '11' [WARNING] Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NamedServiceProcessor' less than -source '11' [WARNING] No processor claimed any of these annotations: /javax.annotation.Nonnull,/org.testng.annotations.BeforeMethod,/org.testng.annotations.Test,/org.testng.annotations.DataProvider,/org.testng.annotations.AfterMethod [WARNING] /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/src/test/java/it/tidalwave/northernwind/rca/ui/contenteditor/spi/DefaultContentEditorPresentationControlTest.java:[116,47] [unchecked] unchecked method invocation: method createBoundDocument in interface PropertyBinder is applied to given types required: Key,UpdateCallback found: Key,UpdateCallback [WARNING] /var/jenkins_home/jobs/Zephyr_Metrics_branches/workspace/modules/ContentEditor/src/test/java/it/tidalwave/northernwind/rca/ui/contenteditor/spi/DefaultContentEditorPresentationControlTest.java:[116,51] [unchecked] unchecked conversion required: Key found: Key [WARNING] Failed to getClass for org.apache.maven.plugins.dependency.analyze.AnalyzeMojo [INFO] [INFO] <<< dependency:3.1.2:analyze (default-cli) < test-compile @ it-tidalwave-northernwind-rca-ui-content-editor <<< [INFO] [INFO] [INFO] --- dependency:3.1.2:analyze (default-cli) @ it-tidalwave-northernwind-rca-ui-content-editor --- [WARNING] Used undeclared dependencies found: [WARNING] com.google.code.findbugs:jsr305:jar:3.0.2:compile [WARNING] org.springframework:spring-core:jar:5.3.1:compile [WARNING] org.springframework:spring-context:jar:5.3.1:compile [WARNING] org.hamcrest:hamcrest-core:jar:1.3:test [WARNING] org.slf4j:slf4j-api:jar:1.7.30:compile [WARNING] it.tidalwave.thesefoolishthings:it-tidalwave-util:jar:3.2-ALPHA-8:compile [WARNING] it.tidalwave.thesefoolishthings:it-tidalwave-role:jar:3.2-ALPHA-8:compile [WARNING] Unused declared dependencies found: [WARNING] it.tidalwave.northernwind:it-tidalwave-html-patches:jar:1.2-ALPHA-6:compile [WARNING] it.tidalwave.thesefoolishthings:it-tidalwave-role-spring:jar:3.2-ALPHA-8:test [WARNING] org.openjfx:javafx-base:jar:11.0.1:test [WARNING] it.tidalwave.northernwind:it-tidalwave-northernwind-core-default:jar:1.2-ALPHA-6:test [WARNING] org.projectlombok:lombok:jar:1.18.22:provided [WARNING] ch.qos.logback:logback-classic:jar:1.2.3:test [WARNING] org.springframework:spring-aspects:jar:5.3.1:compile [WARNING] org.aspectj:aspectjrt:jar:1.9.6:compile [JENKINS] Archiving disabled