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/15]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO]
[INFO] --- buildnumber-maven-plugin: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_Build_and_Test/workspace/modules/ContentEditor' && 'git' 'rev-parse' '--verify' '--short=12' 'HEAD'
[INFO] Working directory: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor
[INFO] Storing buildNumber: e9043004a15f at timestamp: 1640166863306
[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_Build_and_Test/workspace/modules/ContentEditor' && 'git' 'rev-parse' '--verify' '--short=12' 'HEAD'
[INFO] Working directory: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor
[INFO] Storing buildScmBranch: UNKNOWN
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-maven) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO]
[INFO] --- maven-enforcer-plugin:3.0.0-M3:enforce (enforce-banned-dependencies) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO]
[INFO] --- maven-antrun-plugin:3.0.0:run (generate-and-print-build-description) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Executing tasks
[INFO] [echo] DESCRIPTION: origin/fix-for-NWRCA-7 1.2-ALPHA-4-SNAPSHOT e9043004a15f
[INFO] [echo] Java Version: 11.0.10 -source 11 -target 11 -release 11
[INFO] Executed tasks
[INFO]
[INFO] --- maven-antrun-plugin: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_Build_and_Test/workspace/modules/ContentEditor/target/unwoven-classes
[INFO] [mkdir] Created dir: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/unwoven-test-classes
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin: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] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 9 source files to /var/jenkins_home/jobs/Zephyr_Build_and_Test/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,java.base/java.lang.FunctionalInterface,/it.tidalwave.messagebus.annotation.SimpleMessageSubscriber,/javax.annotation.concurrent.Immutable,java.base/java.lang.Override
[INFO]
[INFO] --- aspectj-maven-plugin: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] --- maven-resources-plugin: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] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 5 source files to /var/jenkins_home/jobs/Zephyr_Build_and_Test/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,java.base/java.lang.Override,/org.testng.annotations.AfterMethod
[WARNING] /var/jenkins_home/jobs/Zephyr_Build_and_Test/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<String>,UpdateCallback
found: Key,UpdateCallback
[WARNING] /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/src/test/java/it/tidalwave/northernwind/rca/ui/contenteditor/spi/DefaultContentEditorPresentationControlTest.java:[116,51] [unchecked] unchecked conversion
required: Key<String>
found: Key
[INFO]
[INFO] --- aspectj-maven-plugin: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] --- maven-surefire-plugin:3.0.0-M5:test (default-test) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
09:54:36.442 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - STARTING TESTS OF it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest
09:54:36.483 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - **************************************
09:54:36.483 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly convert to string"
09:54:36.484 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - **************************************
09:54:36.513 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<html>
<head><meta name="prolog"/></head>
<body>
body
</body>
</html>
09:54:36.673 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html>
<head>
<meta name="prolog" />
</head>
<body>
body
</body>
</html>
09:54:36.676 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 194 msec
09:54:36.676 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest -
09:54:36.691 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *************************************
09:54:36.691 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly create from text"
09:54:36.691 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *************************************
09:54:36.694 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 3 msec
09:54:36.695 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest -
09:54:36.696 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *********************************
09:54:36.696 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly replace body"
09:54:36.696 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - *********************************
09:54:36.698 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 2 msec
09:54:36.699 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest -
09:54:36.700 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ***********************************
09:54:36.700 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly replace epilog"
09:54:36.700 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ***********************************
09:54:36.701 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 1 msec
09:54:36.701 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest -
09:54:36.708 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ***********************************
09:54:36.708 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST "must properly replace prolog"
09:54:36.708 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - ***********************************
09:54:36.709 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest - TEST PASSED in 1 msec
09:54:36.709 [main ] INFO i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest -
09:54:36.724 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ************************************
09:54:36.724 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST "must properly normalise Xhtml"
09:54:36.726 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ARGS [1.xhtml]
09:54:36.726 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ************************************
09:54:36.731 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" media="screen" href="../../../../library/css/editing.css" type="text/css" />
</head>
<body>
<p style="text-align: right; font-size: 0.9em !important; margin-bottom: 1em"><em>Et eunt homines mirari alta montium<br />
et ingentes fluctus maris<br />
et latissimos lapsus fluminum<br />
et oceani ambitum<br />
et gyros siderum<br />
et relinquunt se ipsos</em></p>
<p style="text-align: right; font-size: 0.8em !important; margin-bottom: 4em"><em>St. Augustine, Confessiones, X, 8,15</em></p>
<p><img align="right" style="margin-left: 20px; cursor: -webkit-grab;" class="framedPhoto framed" src="$mediaLink(relativePath='/fabrizio-giudici.jpg')$"
alt="" draggable="true" contenteditable="false" /><span class="firstLetter">I</span>'m <a href="http://fabriziogiudici.it">Fabrizio Giudici</a>, born in
Genoa, Italy. I'm a software engineer and I run <a target="_blank" href="http://tidalwave.it">my own small
company</a>. 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. </p>
<p>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 <a href="$nodeLink(relativePath='/Blog', contentRelativePath='/Blog/20150109. On why I take pictures')$">more
committed</a>.</p>
<h3>A short equipment history</h3>
<p>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. </p>
<p>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 <a href="$nodeLink(relativePath='/Equipment')$">here</a>).
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.</p>
<p> 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.</p>
<p>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.</p>
<p>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.</p>
<hr class="decorated" />
<p>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.</p>
</body>
</html>
09:54:36.770 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" media="screen" href="../../../../library/css/editing.css" type="text/css" />
</head>
<body>
<p style="text-align: right; font-size: 0.9em !important; margin-bottom: 1em"><em>Et eunt homines mirari alta montium<br />
et ingentes fluctus maris<br />
et latissimos lapsus fluminum<br />
et oceani ambitum<br />
et gyros siderum<br />
et relinquunt se ipsos</em></p>
<p style="text-align: right; font-size: 0.8em !important; margin-bottom: 4em"><em>St. Augustine, Confessiones, X, 8,15</em></p>
<p><img align="right" style="margin-left: 20px;" class="framedPhoto framed" src="$mediaLink(relativePath='/fabrizio-giudici.jpg')$" alt="" /><span class="firstLetter">I</span>'m <a href="http://fabriziogiudici.it">Fabrizio Giudici</a>, born in Genoa, Italy. I'm a software engineer and I run <a target="_blank" href="http://tidalwave.it">my own small company</a>. 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. </p>
<p>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 <a href="$nodeLink(relativePath='/Blog', contentRelativePath='/Blog/20150109. On why I take pictures')$">more committed</a>.</p>
<h3>A short equipment history</h3>
<p>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. </p>
<p>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 <a href="$nodeLink(relativePath='/Equipment')$">here</a>). 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.</p>
<p> 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.</p>
<p>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.</p>
<p>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.</p>
<hr class="decorated" />
<p>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.</p>
</body>
</html>
09:54:36.780 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files:
09:54:36.781 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
09:54:36.782 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/JSoupXhtmlNormalizerTest/expected-results/1.xhtml
09:54:36.782 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/JSoupXhtmlNormalizerTest/1.xhtml
09:54:36.788 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST PASSED in 64 msec
09:54:36.789 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest -
09:54:36.793 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - *************************************
09:54:36.794 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST "must properly normalise Xhtml"
09:54:36.794 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - ARGS [DocumentWithIndentedCode.xhtml]
09:54:36.794 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - *************************************
09:54:36.797 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" media="screen" href="../../../../library/css/editing.css" type="text/css" />
</head>
<body>
<p class="">In these days I'm sorting out my code repositories, in particular by definitely tagging as "legacy" those that are dead and converting to <a class="" href="https://git-scm.com/">Git</a> the others (I've still a strong preference towards <a class="" href="https://www.mercurial-scm.org/">Mercurial</a>, 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 <a class="" href="https://github.com/tidalwave-it/">GitHub</a> (my primary repository remains <a class="" href="https://bitbucket.org/tidalwave/">BitBucket</a> though).</p>
<p class="">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, <a class="" href="http://shields.io/">Shields.io</a> 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.</p>
<p>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.</p>
<p>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.</p>
<p>But before starting and writing my own plugin, I realised that a simple solution was straightforward: use the <code>maven-resource-plugin</code>. 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:</p>
<pre class="prettyprint lang-xml"><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></pre>
<p>It downloads and unpacks the template file (which is a <code>README.md</code> file under the directory <code>it/tidalwave/readme</code>) from another artefact previously deployed (<code>it.tidalwave.thesefoolishthings:superpom-config</code>) and copies it into the current directory. This is an excerpt of the template:</p>
<pre class="prettyprint">![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.
...</pre>
<p>As you can see the required metadata can be inserted by using the syntax <code>${project.description}</code>. 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 <a class="" href="http://daringfireball.net/projects/markdown/">markdown</a> syntax. All I need to do is running from the top directory of each project:</p>
<pre>mvn -Pit.tidalwave-generate-readme-md-v1 -N</pre>
<p>and the <code>README.md</code> 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.</p>
<div class="diagram">
<img alt="" src="$mediaLink(relativePath='/screenshots/20160102.jpg')$" style="" />
</div>
</body>
</html>
09:54:36.818 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" media="screen" href="../../../../library/css/editing.css" type="text/css" />
</head>
<body>
<p class="">In these days I'm sorting out my code repositories, in particular by definitely tagging as "legacy" those that are dead and converting to <a class="" href="https://git-scm.com/">Git</a> the others (I've still a strong preference towards <a class="" href="https://www.mercurial-scm.org/">Mercurial</a>, 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 <a class="" href="https://github.com/tidalwave-it/">GitHub</a> (my primary repository remains <a class="" href="https://bitbucket.org/tidalwave/">BitBucket</a> though).</p>
<p class="">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, <a class="" href="http://shields.io/">Shields.io</a> 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.</p>
<p>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.</p>
<p>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.</p>
<p>But before starting and writing my own plugin, I realised that a simple solution was straightforward: use the <code>maven-resource-plugin</code>. 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:</p>
<pre class="prettyprint lang-xml"><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></pre>
<p>It downloads and unpacks the template file (which is a <code>README.md</code> file under the directory <code>it/tidalwave/readme</code>) from another artefact previously deployed (<code>it.tidalwave.thesefoolishthings:superpom-config</code>) and copies it into the current directory. This is an excerpt of the template:</p>
<pre class="prettyprint">![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.
...</pre>
<p>As you can see the required metadata can be inserted by using the syntax <code>${project.description}</code>. 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 <a class="" href="http://daringfireball.net/projects/markdown/">markdown</a> syntax. All I need to do is running from the top directory of each project:</p>
<pre>mvn -Pit.tidalwave-generate-readme-md-v1 -N</pre>
<p>and the <code>README.md</code> 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.</p>
<div class="diagram">
<img alt="" src="$mediaLink(relativePath='/screenshots/20160102.jpg')$" style="" />
</div>
</body>
</html>
09:54:36.844 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files:
09:54:36.844 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
09:54:36.850 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/JSoupXhtmlNormalizerTest/expected-results/DocumentWithIndentedCode.xhtml
09:54:36.851 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/JSoupXhtmlNormalizerTest/DocumentWithIndentedCode.xhtml
09:54:36.854 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest - TEST PASSED in 61 msec
09:54:36.854 [main ] INFO i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest -
09:54:36.973 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@51acdf2e/null at construction time: []
09:54:36.974 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@289710d9/null at construction time: []
09:54:36.975 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@503ecb24/null at construction time: []
09:54:37.639 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - *****************************************
09:54:37.640 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must properly initialize resources"
09:54:37.640 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - *****************************************
09:54:37.644 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files:
09:54:37.644 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
09:54:37.644 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/ResourcePropertiesBinderTest/expected-results/EditorProlog.txt
09:54:37.644 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/ResourcePropertiesBinderTest/EditorProlog.txt
09:54:37.646 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files:
09:54:37.646 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
09:54:37.647 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/ResourcePropertiesBinderTest/expected-results/EditorEpilog.txt
09:54:37.648 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/ResourcePropertiesBinderTest/EditorEpilog.txt
09:54:37.648 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 9 msec
09:54:37.648 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest -
09:54:37.651 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@5d05ef57/null at construction time: []
09:54:37.660 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@213deac2/null at construction time: []
09:54:37.661 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@23eee4b8/null at construction time: []
09:54:37.661 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ***********************************************************************************
09:54:37.661 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must be notified with updated ResourceProperties when bound document updated"
09:54:37.661 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ***********************************************************************************
09:54:37.662 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), <html>
<head>
</head>
<body>
the body
</body>
</html>)
09:54:37.662 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
09:54:37.665 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href='/nwa/bootstrap-3.2.0/bootstrap.min.css' type='text/css' rel='stylesheet' media='screen'/>
<link href='/nwa/css/Editing.css' type='text/css' rel='stylesheet' media='screen'/>
<link href='/nwa/aloha-2.0.0b188/base.css' type='text/css' rel='stylesheet' media='screen'/>
<link href='/nwa/aloha-2.0.0b188/demo.css' type='text/css' rel='stylesheet' media='screen'/>
</head>
<body>
<nav class="rainbow-static navbar navbar-fixed-top" role="navigation">
<div class="container">
<div class="aloha-ui btn-toolbar" role="toolbar">
<div class="btn-group">
<button class="aloha-action-bold btn" title="Bold"><b>B</b></button>
<button class="aloha-action-italic btn" title="Italic"><i>I</i></button>
<button class="aloha-action-unformat btn glyphicon glyphicon-remove" title="Remove formatting"></button>
<button class="aloha-action-link btn glyphicon glyphicon-link" title="Create Link"></button>
<button class="aloha-action-ol btn glyphicon glyphicon-list" title="Ordered List"></button>
<button class="aloha-action-ul btn glyphicon glyphicon-list" title="Unordered List"></button>
<!--
<button class="aloha-action-undo btn glyphicon glyphicon-step-backward" title="Undo"></button>
<button class="aloha-action-redo btn glyphicon glyphicon-step-forward" title="Redo"></button>
-->
</div>
<div class="btn-group">
<button class="btn dropdown-toggle" data-toggle="dropdown">
Paragraph <span class="caret"></span>
</button>
<ul class="dropdown-menu rainbow-static" role="menu">
<li><a href="#" class="aloha-action-h1">Heading 1</a></li>
<li><a href="#" class="aloha-action-h2">Heading 2</a></li>
<li><a href="#" class="aloha-action-h3">Heading 3</a></li>
<li><a href="#" class="aloha-action-h4">Heading 4</a></li>
<li><a href="#" class="aloha-action-p">Paragraph</a></li>
<li><a href="#" class="aloha-action-pre">Preformatted</a></li>
</ul>
</div>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
Insert <span class="caret"></span>
</button>
<ul class="dropdown-menu" id="insertSnippetMenu">
</ul>
</div>
</div>
</div>
</nav>
<div class="aloha-3d aloha-ui">
<div class="rainbow-static aloha-link-toolbar btn-toolbar" role="toolbar">
<input type="text" name="href" placeholder="" value="">
<button class="aloha-action-target btn glyphicon glyphicon-new-window" title="Toggle to open link in new window"></button>
<a class="aloha-link-follow btn glyphicon glyphicon-share-alt" href="#" target="_blank" rel="noreferrer" title="Follow this link"></a>
</div>
</div>
<article class="content editable">
the body
</article>
<script src="/nwa/jquery-1.11.1/jquery.min.js"></script>
<script src="/nwa/bootstrap-3.2.0/bootstrap.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha-ui-links.js"></script>
<script src="/nwa/aloha-integration.js"></script>
</body>
</html>
09:54:37.687 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="/nwa/bootstrap-3.2.0/bootstrap.min.css" type="text/css" rel="stylesheet" media="screen" />
<link href="/nwa/css/Editing.css" type="text/css" rel="stylesheet" media="screen" />
<link href="/nwa/aloha-2.0.0b188/base.css" type="text/css" rel="stylesheet" media="screen" />
<link href="/nwa/aloha-2.0.0b188/demo.css" type="text/css" rel="stylesheet" media="screen" />
</head>
<body>
<nav class="rainbow-static navbar navbar-fixed-top" role="navigation">
<div class="container">
<div class="aloha-ui btn-toolbar" role="toolbar">
<div class="btn-group">
<button class="aloha-action-bold btn" title="Bold"><b>B</b></button>
<button class="aloha-action-italic btn" title="Italic"><i>I</i></button>
<button class="aloha-action-unformat btn glyphicon glyphicon-remove" title="Remove formatting"></button>
<button class="aloha-action-link btn glyphicon glyphicon-link" title="Create Link"></button>
<button class="aloha-action-ol btn glyphicon glyphicon-list" title="Ordered List"></button>
<button class="aloha-action-ul btn glyphicon glyphicon-list" title="Unordered List"></button>
<!--
<button class="aloha-action-undo btn glyphicon glyphicon-step-backward" title="Undo"></button>
<button class="aloha-action-redo btn glyphicon glyphicon-step-forward" title="Redo"></button>
-->
</div>
<div class="btn-group">
<button class="btn dropdown-toggle" data-toggle="dropdown"> Paragraph <span class="caret"></span> </button>
<ul class="dropdown-menu rainbow-static" role="menu">
<li><a href="#" class="aloha-action-h1">Heading 1</a></li>
<li><a href="#" class="aloha-action-h2">Heading 2</a></li>
<li><a href="#" class="aloha-action-h3">Heading 3</a></li>
<li><a href="#" class="aloha-action-h4">Heading 4</a></li>
<li><a href="#" class="aloha-action-p">Paragraph</a></li>
<li><a href="#" class="aloha-action-pre">Preformatted</a></li>
</ul>
</div>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"> Insert <span class="caret"></span> </button>
<ul class="dropdown-menu" id="insertSnippetMenu">
</ul>
</div>
</div>
</div>
</nav>
<div class="aloha-3d aloha-ui">
<div class="rainbow-static aloha-link-toolbar btn-toolbar" role="toolbar">
<input type="text" name="href" placeholder="" value="" />
<button class="aloha-action-target btn glyphicon glyphicon-new-window" title="Toggle to open link in new window"></button>
<a class="aloha-link-follow btn glyphicon glyphicon-share-alt" href="#" target="_blank" rel="noreferrer" title="Follow this link"></a>
</div>
</div>
<article class="content editable">
the body
</article>
<script src="/nwa/jquery-1.11.1/jquery.min.js"></script>
<script src="/nwa/bootstrap-3.2.0/bootstrap.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha-ui-links.js"></script>
<script src="/nwa/aloha-integration.js"></script>
</body>
</html>
09:54:37.689 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<html>
<head>
</head>
<body>
the updated body
</body>
</html>
09:54:37.689 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
the updated body
</body>
</html>
09:54:37.690 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@73d69c0f/null at construction time: []
09:54:37.725 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title)
09:54:37.725 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String)
09:54:37.725 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), <!DOCTYPE html>
<html>
<head>
</head>
<body>
the updated body
</body>
</html>
)
09:54:37.736 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning <!DOCTYPE html>
<html>
<head>
</head>
<body>
the updated body
</body>
</html>
(java.lang.String)
09:54:37.737 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title)
09:54:37.737 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String)
09:54:37.737 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), <!DOCTYPE html>
<html>
<head>
</head>
<body>
the updated body
</body>
</html>
)
09:54:37.738 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning <!DOCTYPE html>
<html>
<head>
</head>
<body>
the updated body
</body>
</html>
(java.lang.String)
09:54:37.739 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 78 msec
09:54:37.740 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest -
09:54:37.751 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@6d467c87/null at construction time: []
09:54:37.755 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@29182679/null at construction time: []
09:54:37.755 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@57bd802b/null at construction time: []
09:54:37.756 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ***********************************************************************************
09:54:37.758 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must be notified with updated ResourceProperties when bound property updated"
09:54:37.758 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ***********************************************************************************
09:54:37.764 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title)
09:54:37.765 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String)
09:54:37.777 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@1eea9d2d/null at construction time: []
09:54:37.780 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), New title)
09:54:37.786 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning New title (java.lang.String)
09:54:37.786 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), <html>
<head>
</head>
<body>
the body
</body>
</html>)
09:54:37.786 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
09:54:37.786 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), New title)
09:54:37.786 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning New title (java.lang.String)
09:54:37.787 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), <html>
<head>
</head>
<body>
the body
</body>
</html>)
09:54:37.787 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
09:54:37.787 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 31 msec
09:54:37.787 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest -
09:54:37.790 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@bd2f5a9/null at construction time: []
09:54:37.791 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@4d4960c8/null at construction time: []
09:54:37.791 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@7808fb9/null at construction time: []
09:54:37.792 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************
09:54:37.792 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must properly set value to bound document"
09:54:37.792 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************
09:54:37.793 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property1, type=class java.lang.String), <html>
<head>
</head>
<body>
the body
</body>
</html>)
09:54:37.793 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
09:54:37.794 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href='/nwa/bootstrap-3.2.0/bootstrap.min.css' type='text/css' rel='stylesheet' media='screen'/>
<link href='/nwa/css/Editing.css' type='text/css' rel='stylesheet' media='screen'/>
<link href='/nwa/aloha-2.0.0b188/base.css' type='text/css' rel='stylesheet' media='screen'/>
<link href='/nwa/aloha-2.0.0b188/demo.css' type='text/css' rel='stylesheet' media='screen'/>
</head>
<body>
<nav class="rainbow-static navbar navbar-fixed-top" role="navigation">
<div class="container">
<div class="aloha-ui btn-toolbar" role="toolbar">
<div class="btn-group">
<button class="aloha-action-bold btn" title="Bold"><b>B</b></button>
<button class="aloha-action-italic btn" title="Italic"><i>I</i></button>
<button class="aloha-action-unformat btn glyphicon glyphicon-remove" title="Remove formatting"></button>
<button class="aloha-action-link btn glyphicon glyphicon-link" title="Create Link"></button>
<button class="aloha-action-ol btn glyphicon glyphicon-list" title="Ordered List"></button>
<button class="aloha-action-ul btn glyphicon glyphicon-list" title="Unordered List"></button>
<!--
<button class="aloha-action-undo btn glyphicon glyphicon-step-backward" title="Undo"></button>
<button class="aloha-action-redo btn glyphicon glyphicon-step-forward" title="Redo"></button>
-->
</div>
<div class="btn-group">
<button class="btn dropdown-toggle" data-toggle="dropdown">
Paragraph <span class="caret"></span>
</button>
<ul class="dropdown-menu rainbow-static" role="menu">
<li><a href="#" class="aloha-action-h1">Heading 1</a></li>
<li><a href="#" class="aloha-action-h2">Heading 2</a></li>
<li><a href="#" class="aloha-action-h3">Heading 3</a></li>
<li><a href="#" class="aloha-action-h4">Heading 4</a></li>
<li><a href="#" class="aloha-action-p">Paragraph</a></li>
<li><a href="#" class="aloha-action-pre">Preformatted</a></li>
</ul>
</div>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">
Insert <span class="caret"></span>
</button>
<ul class="dropdown-menu" id="insertSnippetMenu">
</ul>
</div>
</div>
</div>
</nav>
<div class="aloha-3d aloha-ui">
<div class="rainbow-static aloha-link-toolbar btn-toolbar" role="toolbar">
<input type="text" name="href" placeholder="" value="">
<button class="aloha-action-target btn glyphicon glyphicon-new-window" title="Toggle to open link in new window"></button>
<a class="aloha-link-follow btn glyphicon glyphicon-share-alt" href="#" target="_blank" rel="noreferrer" title="Follow this link"></a>
</div>
</div>
<article class="content editable">
the body
</article>
<script src="/nwa/jquery-1.11.1/jquery.min.js"></script>
<script src="/nwa/bootstrap-3.2.0/bootstrap.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha-ui-links.js"></script>
<script src="/nwa/aloha-integration.js"></script>
</body>
</html>
09:54:37.806 [main ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="/nwa/bootstrap-3.2.0/bootstrap.min.css" type="text/css" rel="stylesheet" media="screen" />
<link href="/nwa/css/Editing.css" type="text/css" rel="stylesheet" media="screen" />
<link href="/nwa/aloha-2.0.0b188/base.css" type="text/css" rel="stylesheet" media="screen" />
<link href="/nwa/aloha-2.0.0b188/demo.css" type="text/css" rel="stylesheet" media="screen" />
</head>
<body>
<nav class="rainbow-static navbar navbar-fixed-top" role="navigation">
<div class="container">
<div class="aloha-ui btn-toolbar" role="toolbar">
<div class="btn-group">
<button class="aloha-action-bold btn" title="Bold"><b>B</b></button>
<button class="aloha-action-italic btn" title="Italic"><i>I</i></button>
<button class="aloha-action-unformat btn glyphicon glyphicon-remove" title="Remove formatting"></button>
<button class="aloha-action-link btn glyphicon glyphicon-link" title="Create Link"></button>
<button class="aloha-action-ol btn glyphicon glyphicon-list" title="Ordered List"></button>
<button class="aloha-action-ul btn glyphicon glyphicon-list" title="Unordered List"></button>
<!--
<button class="aloha-action-undo btn glyphicon glyphicon-step-backward" title="Undo"></button>
<button class="aloha-action-redo btn glyphicon glyphicon-step-forward" title="Redo"></button>
-->
</div>
<div class="btn-group">
<button class="btn dropdown-toggle" data-toggle="dropdown"> Paragraph <span class="caret"></span> </button>
<ul class="dropdown-menu rainbow-static" role="menu">
<li><a href="#" class="aloha-action-h1">Heading 1</a></li>
<li><a href="#" class="aloha-action-h2">Heading 2</a></li>
<li><a href="#" class="aloha-action-h3">Heading 3</a></li>
<li><a href="#" class="aloha-action-h4">Heading 4</a></li>
<li><a href="#" class="aloha-action-p">Paragraph</a></li>
<li><a href="#" class="aloha-action-pre">Preformatted</a></li>
</ul>
</div>
<div class="btn-group">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown"> Insert <span class="caret"></span> </button>
<ul class="dropdown-menu" id="insertSnippetMenu">
</ul>
</div>
</div>
</div>
</nav>
<div class="aloha-3d aloha-ui">
<div class="rainbow-static aloha-link-toolbar btn-toolbar" role="toolbar">
<input type="text" name="href" placeholder="" value="" />
<button class="aloha-action-target btn glyphicon glyphicon-new-window" title="Toggle to open link in new window"></button>
<a class="aloha-link-follow btn glyphicon glyphicon-share-alt" href="#" target="_blank" rel="noreferrer" title="Follow this link"></a>
</div>
</div>
<article class="content editable">
the body
</article>
<script src="/nwa/jquery-1.11.1/jquery.min.js"></script>
<script src="/nwa/bootstrap-3.2.0/bootstrap.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha.min.js"></script>
<script src="/nwa/aloha-2.0.0b188/aloha-ui-links.js"></script>
<script src="/nwa/aloha-integration.js"></script>
</body>
</html>
09:54:37.813 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - ******** Comparing files:
09:54:37.813 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
09:54:37.813 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> exp is: test-classes/ResourcePropertiesBinderTest/expected-results/DocumentProxy.txt
09:54:37.813 [main ] INFO it.tidalwave.util.test.FileComparisonUtils - >>>> act is: test-artifacts/ResourcePropertiesBinderTest/DocumentProxy.txt
09:54:37.816 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 24 msec
09:54:37.816 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest -
09:54:37.832 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@6ce90bc5/null at construction time: []
09:54:37.832 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@a567e72/null at construction time: []
09:54:37.833 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@1a5b8489/null at construction time: []
09:54:37.833 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************
09:54:37.833 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST "must properly set value to bound property"
09:54:37.833 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - ************************************************
09:54:37.834 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - convertValue(Key(name=property2, type=class java.lang.String), title)
09:54:37.835 [main ] TRACE i.t.n.core.impl.model.DefaultResourceProperties - >>>> returning title (java.lang.String)
09:54:37.835 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest - TEST PASSED in 2 msec
09:54:37.835 [main ] INFO i.t.n.r.u.c.impl.ResourcePropertiesBinderTest -
09:54:38.560 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@5853495b
09:54:38.561 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor
09:54:38.580 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
09:54:41.103 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder])
09:54:41.118 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles:
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.121 [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]
09:54:41.393 [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]
09:54:41.473 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@3282806f at construction time: []
09:54:41.478 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@2d6645a4 at construction time: []
09:54:41.545 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
09:54:41.807 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - **********************************
09:54:41.807 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must be a MessageSubscriber"
09:54:41.807 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - **********************************
09:54:41.808 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 1 msec
09:54:41.808 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest -
09:54:41.913 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@88d045d
09:54:41.913 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor
09:54:41.915 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
09:54:44.294 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder])
09:54:44.295 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles:
09:54:44.295 [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]
09:54:44.296 [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]
09:54:44.297 [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]
09:54:44.298 [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]
09:54:44.298 [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]
09:54:44.298 [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]
09:54:44.298 [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]
09:54:44.298 [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]
09:54:44.319 [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]
09:54:44.322 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@57077bf0 at construction time: []
09:54:44.327 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@8a7a5d8 at construction time: []
09:54:44.329 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
09:54:44.334 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ****************
09:54:44.334 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must bind"
09:54:44.334 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ****************
09:54:44.337 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 3 msec
09:54:44.337 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest -
09:54:44.412 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@59e190ab
09:54:44.412 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor
09:54:44.413 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
09:54:45.559 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder])
09:54:45.560 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles:
09:54:45.560 [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]
09:54:45.561 [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]
09:54:45.562 [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]
09:54:45.562 [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]
09:54:45.562 [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]
09:54:45.562 [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]
09:54:45.563 [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]
09:54:45.566 [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]
09:54:45.577 [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]
09:54:45.582 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@5d01fdf7 at construction time: []
09:54:45.582 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@244c3d74 at construction time: []
09:54:45.583 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
09:54:45.586 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - *********************************************************************
09:54:45.586 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must clear the presentation on reception of an empty selection"
09:54:45.586 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - *********************************************************************
09:54:45.587 [main ] DEBUG i.t.n.r.u.c.s.DefaultContentEditorPresentationControl - onContentSelected(ContentSelectedEvent(content=Optional.empty))
09:54:45.589 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 3 msec
09:54:45.589 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest -
09:54:45.672 [main ] TRACE it.tidalwave.role.ContextManager$Locator - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@77d5d93e
09:54:45.675 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - ctor
09:54:45.678 [main ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
09:54:47.747 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - scan([i.t.n.r.u.c.i.ResourcePropertiesBinder, i.t.n.m.i.a.r.SiteNodePresentable, i.t.n.m.i.a.r.SiteNodeDisplayable, i.t.n.m.i.a.r.ContentPresentable, i.t.n.m.i.a.r.ResourcePropertiesPresentable, i.t.n.m.i.a.r.ResourcePropertiesSaveable, i.t.n.m.i.a.r.ContentDisplayable, i.t.n.f.f.i.ResourceFileNetBeansPlatformWritableFolder])
09:54:47.747 [main ] DEBUG it.tidalwave.role.spi.RoleManagerSupport - Configured roles:
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.748 [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]
09:54:47.753 [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]
09:54:47.756 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@3a563008 at construction time: []
09:54:47.756 [main ] TRACE it.tidalwave.role.spi.ContextSampler - >>>> contexts for i.t.r.u.i.DefaultUserAction@556d340b at construction time: []
09:54:47.757 [main ] TRACE it.tidalwave.messagebus.MessageBusHelper - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
09:54:47.765 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ******************************************************************************************
09:54:47.765 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must populate the presentation and bind properties on reception of selected content"
09:54:47.765 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ******************************************************************************************
09:54:47.769 [main ] DEBUG i.t.n.r.u.c.s.DefaultContentEditorPresentationControl - onContentSelected(ContentSelectedEvent(content=Optional[Mock for Content, hashCode: 1293515638]))
09:54:47.784 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 19 msec
09:54:47.784 [main ] INFO i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest -
09:54:47.877 [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: 12.612 s - in TestSuite
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 16, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[JENKINS] Recording test results
[INFO]
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Building jar: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.e9043004a15f.jar
[INFO]
[INFO] --- maven-jar-plugin:3.2.0:test-jar (default-test-jar) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Building jar: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.e9043004a15f-tests.jar
[INFO]
[INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Installing /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.e9043004a15f.jar to /var/jenkins_home/maven-repositories/0/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_Build_and_Test/workspace/modules/ContentEditor/pom.xml to /var/jenkins_home/maven-repositories/0/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_Build_and_Test/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.e9043004a15f-tests.jar to /var/jenkins_home/maven-repositories/0/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
[JENKINS] Archiving disabled