Console Output

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]   from modules/ContentEditor/pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.2.0:clean (default-clean) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] 
[INFO] --- buildnumber:3.0.0: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: 30819703aea5 at timestamp: 1683633625124
[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] --- enforcer:3.3.0:enforce (enforce-maven) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.dependency.DependencyConvergence passed
[INFO] Rule 3: org.apache.maven.enforcer.rules.RequirePluginVersions passed
[INFO] 
[INFO] --- enforcer:3.3.0:enforce (enforce-banned-dependencies) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.dependency.BannedDependencies passed
[INFO] 
[INFO] --- antrun:3.1.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 30819703aea5
[INFO]      [echo] Java Version: 11.0.18 -source 11 -target 11 -release 11
[INFO] Executed tasks
[INFO] 
[INFO] --- antrun:3.1.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] --- resources:3.3.1:resources (default-resources) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Copying 29 resources from src/main/resources to target/classes
[INFO] 
[INFO] --- compiler:3.11.0:compile (default-compile) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[WARNING] Parameter 'outputDirectory' is read-only, must not be used in configuration
[INFO] Changes detected - recompiling the module! :dependency
[INFO] Compiling 9 source files with javac [forked debug deprecation release 11] to 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'
[INFO] 
[INFO] --- aspectj:1.14.0: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.3.1:testResources (default-testResources) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Copying 8 resources from src/test/resources to target/test-classes
[INFO] 
[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[WARNING] Parameter 'outputDirectory' is read-only, must not be used in configuration
[INFO] Changes detected - recompiling the module! :dependency
[INFO] Compiling 5 source files with javac [forked debug deprecation release 11] to 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] /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:1.14.0: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:test (default-test) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Using auto detected provider org.apache.maven.surefire.testng.TestNGProvider
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
12:00:36.548 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE HtmlDocumentTest.setup()[pri:0, instance:null] -2109228622
12:00:36.563 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ================ SORTING
12:00:36.566 [main                ] TRACE org.testng.internal.Graph                          - [Graph] =============== DONE SORTING
12:00:36.566 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== SORTED NODES
12:00:36.566 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== END SORTED NODES
12:00:36.592 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE JSoupXhtmlNormalizerTest.prepare()[pri:0, instance:null] 1848517223
12:00:36.592 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ================ SORTING
12:00:36.593 [main                ] TRACE org.testng.internal.Graph                          - [Graph] =============== DONE SORTING
12:00:36.593 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== SORTED NODES
12:00:36.593 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== END SORTED NODES
12:00:36.617 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE ResourcePropertiesBinderTest.setup()[pri:0, instance:null] -673172179
12:00:36.617 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ================ SORTING
12:00:36.627 [main                ] TRACE org.testng.internal.Graph                          - [Graph] =============== DONE SORTING
12:00:36.627 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== SORTED NODES
12:00:36.628 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== END SORTED NODES
12:00:36.657 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE DefaultContentEditorPresentationControlTest.setup()[pri:0, instance:null] -1096181494
12:00:36.659 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ================ SORTING
12:00:36.659 [main                ] TRACE org.testng.internal.Graph                          - [Graph] =============== DONE SORTING
12:00:36.659 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== SORTED NODES
12:00:36.659 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== END SORTED NODES
12:00:36.660 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE DefaultContentEditorPresentationControlTest.tearDown()[pri:0, instance:null] 619149521
12:00:36.661 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ================ SORTING
12:00:36.661 [main                ] TRACE org.testng.internal.Graph                          - [Graph] =============== DONE SORTING
12:00:36.661 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== SORTED NODES
12:00:36.661 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== END SORTED NODES
12:00:36.674 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE HtmlDocumentTest.must_properly_convert_to_string()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest@3daf7722] 1632633104
12:00:36.675 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE HtmlDocumentTest.must_properly_replace_prolog()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest@3daf7722] -169457725
12:00:36.675 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE HtmlDocumentTest.must_properly_replace_body()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest@3daf7722] -1264466836
12:00:36.675 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE HtmlDocumentTest.must_properly_replace_epilog()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest@3daf7722] -1537047056
12:00:36.675 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE HtmlDocumentTest.must_properly_create_from_text()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest@3daf7722] -3761890
12:00:36.676 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE JSoupXhtmlNormalizerTest.must_properly_normalise_Xhtml(java.lang.String)[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.JSoupXhtmlNormalizerTest@6eb2384f] -1632888467
12:00:36.676 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE ResourcePropertiesBinderTest.must_properly_set_value_to_bound_property()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] 1109129916
12:00:36.679 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_properly_set_value_to_bound_property()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.680 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM INDEPENDENT OBJECTS
12:00:36.680 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_document_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] -1304989084
12:00:36.680 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_document_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.681 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM INDEPENDENT OBJECTS
12:00:36.681 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE ResourcePropertiesBinderTest.must_properly_set_value_to_bound_document()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] -1632983246
12:00:36.681 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_properly_set_value_to_bound_document()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.681 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM INDEPENDENT OBJECTS
12:00:36.681 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] 111407067
12:00:36.682 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_property_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] 659246310
12:00:36.682 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_property_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.682 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM INDEPENDENT OBJECTS
12:00:36.682 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE DefaultContentEditorPresentationControlTest.must_be_a_MessageSubscriber()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38] -1596818756
12:00:36.683 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE DefaultContentEditorPresentationControlTest.must_bind()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38] -994350988
12:00:36.683 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE DefaultContentEditorPresentationControlTest.must_clear_the_presentation_on_reception_of_an_empty_selection()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38] -134509024
12:00:36.683 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ADDING NODE DefaultContentEditorPresentationControlTest.must_populate_the_presentation_and_bind_properties_on_reception_of_selected_content()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38] -1304467400
12:00:36.683 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ================ SORTING
12:00:36.683 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_property_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.684 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_document_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.684 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_properly_set_value_to_bound_document()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.684 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   ADDING PREDECESSOR FOR ResourcePropertiesBinderTest.must_properly_set_value_to_bound_property()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] ==> ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.686 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED PRED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM NODE ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_document_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.694 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED PRED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM NODE ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_property_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.695 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED PRED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM NODE ResourcePropertiesBinderTest.must_properly_set_value_to_bound_document()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.695 [main                ] TRACE org.testng.internal.Graph                          - [Graph]   REMOVED PRED ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb] FROM NODE ResourcePropertiesBinderTest.must_properly_set_value_to_bound_property()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.696 [main                ] TRACE org.testng.internal.Graph                          - [Graph] =============== DONE SORTING
12:00:36.697 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== SORTED NODES
12:00:36.697 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               ResourcePropertiesBinderTest.must_properly_initialize_resources()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.698 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_document_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.698 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               ResourcePropertiesBinderTest.must_be_notified_with_updated_ResourceProperties_when_bound_property_updated()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.698 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               ResourcePropertiesBinderTest.must_properly_set_value_to_bound_document()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.699 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               ResourcePropertiesBinderTest.must_properly_set_value_to_bound_property()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.impl.ResourcePropertiesBinderTest@ee86bcb]
12:00:36.701 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               DefaultContentEditorPresentationControlTest.must_be_a_MessageSubscriber()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38]
12:00:36.702 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               DefaultContentEditorPresentationControlTest.must_bind()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38]
12:00:36.702 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               DefaultContentEditorPresentationControlTest.must_clear_the_presentation_on_reception_of_an_empty_selection()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38]
12:00:36.702 [main                ] TRACE org.testng.internal.Graph                          - [Graph]               DefaultContentEditorPresentationControlTest.must_populate_the_presentation_and_bind_properties_on_reception_of_selected_content()[pri:0, instance:it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControlTest@177bea38]
12:00:36.703 [main                ] TRACE org.testng.internal.Graph                          - [Graph] ====== END SORTED NODES
12:00:36.794 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - STARTING TESTS OF it.tidalwave.northernwind.rca.ui.contenteditor.impl.HtmlDocumentTest
12:00:36.931 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - **************************************
12:00:36.932 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST "must properly convert to string"
12:00:36.932 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - **************************************
12:00:36.943 [main                ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<html>
<head><meta name="prolog"/></head>
<body>
body
</body>
</html>

12:00:37.045 [main                ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html>
  <head>
    <meta name="prolog" />
  </head>
  <body>
     body
  </body>
</html>

12:00:37.051 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST PASSED in 118 msec
12:00:37.053 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - 
12:00:37.061 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - *************************************
12:00:37.062 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST "must properly create from text"
12:00:37.062 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - *************************************
12:00:37.066 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST PASSED in 4 msec
12:00:37.066 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - 
12:00:37.069 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - *********************************
12:00:37.070 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST "must properly replace body"
12:00:37.075 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - *********************************
12:00:37.077 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST PASSED in 7 msec
12:00:37.078 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - 
12:00:37.087 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - ***********************************
12:00:37.087 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST "must properly replace epilog"
12:00:37.087 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - ***********************************
12:00:37.089 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST PASSED in 2 msec
12:00:37.089 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - 
12:00:37.090 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - ***********************************
12:00:37.090 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST "must properly replace prolog"
12:00:37.090 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - ***********************************
12:00:37.094 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - TEST PASSED in 3 msec
12:00:37.094 [main                ] INFO  i.t.n.rca.ui.contenteditor.impl.HtmlDocumentTest   - 
12:00:37.115 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - ************************************
12:00:37.115 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - TEST "must properly normalise Xhtml"
12:00:37.116 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - ARGS [1.xhtml]
12:00:37.116 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - ************************************
12:00:37.128 [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>
12:00:37.167 [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>

12:00:37.174 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - ******** Comparing files:
12:00:37.174 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
12:00:37.175 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> exp is:  test-classes/JSoupXhtmlNormalizerTest/expected-results/1.xhtml
12:00:37.175 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> act is:  test-artifacts/JSoupXhtmlNormalizerTest/1.xhtml
12:00:37.177 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - TEST PASSED in 62 msec
12:00:37.177 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - 
12:00:37.181 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - *************************************
12:00:37.182 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - TEST "must properly normalise Xhtml"
12:00:37.182 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - ARGS [DocumentWithIndentedCode.xhtml]
12:00:37.182 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - *************************************
12:00:37.184 [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 &amp; 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">&lt;profile&gt;
    &lt;id&gt;it.tidalwave-generate-readme-md-v1&lt;/id&gt;
    &lt;build&gt;
        &lt;defaultGoal&gt;dependency:unpack resources:copy-resources&lt;/defaultGoal&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;artifactItems&gt;
                        &lt;artifactItem&gt;
                            &lt;groupId&gt;it.tidalwave.thesefoolishthings&lt;/groupId&gt;
                            &lt;artifactId&gt;superpom-config&lt;/artifactId&gt;
                            &lt;version&gt;${tft.superpom.config.version}&lt;/version&gt;
                            &lt;type&gt;jar&lt;/type&gt;
                            &lt;overWrite&gt;true&lt;/overWrite&gt;
                            &lt;outputDirectory&gt;${project.basedir}/target/superpom-resources&lt;/outputDirectory&gt;
                        &lt;/artifactItem&gt;
                    &lt;/artifactItems&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;resources&gt;
                        &lt;resource&gt;
                            &lt;directory&gt;${project.basedir}/target/superpom-resources/it/tidalwave/readme/&lt;/directory&gt;
                            &lt;filtering&gt;true&lt;/filtering&gt;
                        &lt;/resource&gt;
                    &lt;/resources&gt;
                    &lt;outputDirectory&gt;.&lt;/outputDirectory&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/build&gt;
&lt;/profile&gt;</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>
12:00:37.212 [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 &amp; 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">&lt;profile&gt;
    &lt;id&gt;it.tidalwave-generate-readme-md-v1&lt;/id&gt;
    &lt;build&gt;
        &lt;defaultGoal&gt;dependency:unpack resources:copy-resources&lt;/defaultGoal&gt;
        &lt;plugins&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-dependency-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;artifactItems&gt;
                        &lt;artifactItem&gt;
                            &lt;groupId&gt;it.tidalwave.thesefoolishthings&lt;/groupId&gt;
                            &lt;artifactId&gt;superpom-config&lt;/artifactId&gt;
                            &lt;version&gt;${tft.superpom.config.version}&lt;/version&gt;
                            &lt;type&gt;jar&lt;/type&gt;
                            &lt;overWrite&gt;true&lt;/overWrite&gt;
                            &lt;outputDirectory&gt;${project.basedir}/target/superpom-resources&lt;/outputDirectory&gt;
                        &lt;/artifactItem&gt;
                    &lt;/artifactItems&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;
            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-resources-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;resources&gt;
                        &lt;resource&gt;
                            &lt;directory&gt;${project.basedir}/target/superpom-resources/it/tidalwave/readme/&lt;/directory&gt;
                            &lt;filtering&gt;true&lt;/filtering&gt;
                        &lt;/resource&gt;
                    &lt;/resources&gt;
                    &lt;outputDirectory&gt;.&lt;/outputDirectory&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;
        &lt;/plugins&gt;
    &lt;/build&gt;
&lt;/profile&gt;</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>

12:00:37.214 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - ******** Comparing files:
12:00:37.214 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
12:00:37.214 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> exp is:  test-classes/JSoupXhtmlNormalizerTest/expected-results/DocumentWithIndentedCode.xhtml
12:00:37.214 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> act is:  test-artifacts/JSoupXhtmlNormalizerTest/DocumentWithIndentedCode.xhtml
12:00:37.228 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - TEST PASSED in 46 msec
12:00:37.228 [main                ] INFO  i.t.n.r.u.c.impl.JSoupXhtmlNormalizerTest          - 
12:00:37.278 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@7e3f95fe/null at construction time: []
12:00:37.282 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@34625ccd/null at construction time: []
12:00:37.283 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@67389cb8/null at construction time: []
12:00:38.212 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - *****************************************
12:00:38.213 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST "must properly initialize resources"
12:00:38.213 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - *****************************************
12:00:38.218 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - ******** Comparing files:
12:00:38.222 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
12:00:38.223 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> exp is:  test-classes/ResourcePropertiesBinderTest/expected-results/EditorProlog.txt
12:00:38.223 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> act is:  test-artifacts/ResourcePropertiesBinderTest/EditorProlog.txt
12:00:38.224 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - ******** Comparing files:
12:00:38.224 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
12:00:38.224 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> exp is:  test-classes/ResourcePropertiesBinderTest/expected-results/EditorEpilog.txt
12:00:38.224 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> act is:  test-artifacts/ResourcePropertiesBinderTest/EditorEpilog.txt
12:00:38.230 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST PASSED in 12 msec
12:00:38.231 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - 
12:00:38.241 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@6fd77352/null at construction time: []
12:00:38.242 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@5109e8cf/null at construction time: []
12:00:38.242 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@3f672204/null at construction time: []
12:00:38.243 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ***********************************************************************************
12:00:38.243 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST "must be notified with updated ResourceProperties when bound document updated"
12:00:38.243 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ***********************************************************************************
12:00:38.247 [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>)
12:00:38.247 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
12:00:38.249 [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>

12:00:38.265 [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>

12:00:38.274 [main                ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - asNormalizedString()
<html>
<head>
</head>
<body>
the updated body
</body>
</html>

12:00:38.275 [main                ] TRACE i.t.n.r.ui.contenteditor.impl.JSoupXhtmlNormalizer - >>>> returning:
<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
     the updated body
  </body>
</html>

12:00:38.275 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@557286ad/null at construction time: []
12:00:38.332 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - convertValue(Key(name=property2, type=class java.lang.String), title)
12:00:38.332 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning title (java.lang.String)
12:00:38.332 [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>
)
12:00:38.332 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning <!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
     the updated body
  </body>
</html>
 (java.lang.String)
12:00:38.333 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - convertValue(Key(name=property2, type=class java.lang.String), title)
12:00:38.333 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning title (java.lang.String)
12:00:38.333 [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>
)
12:00:38.334 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning <!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
     the updated body
  </body>
</html>
 (java.lang.String)
12:00:38.346 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST PASSED in 101 msec
12:00:38.347 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - 
12:00:38.350 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@2264e43c/null at construction time: []
12:00:38.351 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@3bec2275/null at construction time: []
12:00:38.351 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@31da3d60/null at construction time: []
12:00:38.352 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ***********************************************************************************
12:00:38.352 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST "must be notified with updated ResourceProperties when bound property updated"
12:00:38.352 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ***********************************************************************************
12:00:38.354 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - convertValue(Key(name=property2, type=class java.lang.String), title)
12:00:38.355 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning title (java.lang.String)
12:00:38.356 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@38018b62/null at construction time: []
12:00:38.360 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - convertValue(Key(name=property2, type=class java.lang.String), New title)
12:00:38.360 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning New title (java.lang.String)
12:00:38.360 [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>)
12:00:38.360 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
12:00:38.360 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - convertValue(Key(name=property2, type=class java.lang.String), New title)
12:00:38.360 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning New title (java.lang.String)
12:00:38.363 [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>)
12:00:38.363 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
12:00:38.370 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST PASSED in 11 msec
12:00:38.372 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - 
12:00:38.376 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@3533df16/null at construction time: []
12:00:38.376 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@15d0849/null at construction time: []
12:00:38.377 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@4038cd3a/null at construction time: []
12:00:38.377 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ************************************************
12:00:38.377 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST "must properly set value to bound document"
12:00:38.377 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ************************************************
12:00:38.386 [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>)
12:00:38.389 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning <html>
<head>
</head>
<body>
the body
</body>
</html> (java.lang.String)
12:00:38.389 [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>

12:00:38.394 [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>

12:00:38.414 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - ******** Comparing files:
12:00:38.415 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> path is: /var/jenkins_home/jobs/Zephyr_Build_and_Test/workspace/modules/ContentEditor/target/
12:00:38.415 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> exp is:  test-classes/ResourcePropertiesBinderTest/expected-results/DocumentProxy.txt
12:00:38.418 [main                ] INFO  it.tidalwave.util.test.FileComparisonUtils         - >>>> act is:  test-artifacts/ResourcePropertiesBinderTest/DocumentProxy.txt
12:00:38.428 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST PASSED in 44 msec
12:00:38.429 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - 
12:00:38.435 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@7e94d093/null at construction time: []
12:00:38.435 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@7c6189d5/null at construction time: []
12:00:38.435 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.n.c.i.m.DefaultResourceProperties@4248e66b/null at construction time: []
12:00:38.436 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ************************************************
12:00:38.436 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST "must properly set value to bound property"
12:00:38.436 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - ************************************************
12:00:38.436 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - convertValue(Key(name=property2, type=class java.lang.String), title)
12:00:38.436 [main                ] TRACE i.t.n.core.impl.model.DefaultResourceProperties    - >>>> returning title (java.lang.String)
12:00:38.438 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - TEST PASSED in 1 msec
12:00:38.438 [main                ] INFO  i.t.n.r.u.c.impl.ResourcePropertiesBinderTest      - 
12:00:39.245 [main                ] TRACE it.tidalwave.role.ContextManager$Locator           - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@4012d5bc
12:00:39.246 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - ctor
12:00:39.267 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
12:00:41.888 [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])
12:00:41.892 [main                ] DEBUG it.tidalwave.role.spi.RoleManagerSupport           - Configured roles:
12:00:41.893 [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]
12:00:41.893 [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]
12:00:41.893 [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]
12:00:41.893 [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]
12:00:41.893 [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]
12:00:41.893 [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]
12:00:41.893 [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]
12:00:41.893 [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]
12:00:42.129 [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]
12:00:42.149 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@d72316a at construction time: []
12:00:42.152 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@1208fe55 at construction time: []
12:00:42.176 [main                ] TRACE it.tidalwave.messagebus.MessageBusHelper           - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
12:00:42.457 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - **********************************
12:00:42.457 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must be a MessageSubscriber"
12:00:42.458 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - **********************************
12:00:42.463 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 5 msec
12:00:42.463 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 
12:00:42.583 [main                ] TRACE it.tidalwave.role.ContextManager$Locator           - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@3862d1ee
12:00:42.584 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - ctor
12:00:42.593 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
12:00:44.382 [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])
12:00:44.383 [main                ] DEBUG it.tidalwave.role.spi.RoleManagerSupport           - Configured roles:
12:00:44.383 [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]
12:00:44.383 [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]
12:00:44.383 [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]
12:00:44.383 [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]
12:00:44.383 [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]
12:00:44.384 [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]
12:00:44.384 [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]
12:00:44.384 [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]
12:00:44.395 [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]
12:00:44.398 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@79250dd0 at construction time: []
12:00:44.399 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@2a7065cf at construction time: []
12:00:44.399 [main                ] TRACE it.tidalwave.messagebus.MessageBusHelper           - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
12:00:44.408 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ****************
12:00:44.408 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must bind"
12:00:44.408 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ****************
12:00:44.418 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 10 msec
12:00:44.419 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 
12:00:44.497 [main                ] TRACE it.tidalwave.role.ContextManager$Locator           - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@285016df
12:00:44.497 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - ctor
12:00:44.498 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
12:00:46.314 [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])
12:00:46.315 [main                ] DEBUG it.tidalwave.role.spi.RoleManagerSupport           - Configured roles:
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.315 [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]
12:00:46.330 [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]
12:00:46.333 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@269deb29 at construction time: []
12:00:46.333 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@29c2b88b at construction time: []
12:00:46.334 [main                ] TRACE it.tidalwave.messagebus.MessageBusHelper           - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
12:00:46.336 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - *********************************************************************
12:00:46.336 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must clear the presentation on reception of an empty selection"
12:00:46.336 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - *********************************************************************
12:00:46.344 [main                ] DEBUG i.t.n.r.u.c.s.DefaultContentEditorPresentationControl - onContentSelected(ContentSelectedEvent(content=Optional.empty))
12:00:46.350 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 13 msec
12:00:46.350 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 
12:00:46.434 [main                ] TRACE it.tidalwave.role.ContextManager$Locator           - ContextManagerProvider instantiated from META-INF: it.tidalwave.role.spring.spi.SpringContextManagerProvider@38d1026e
12:00:46.434 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - ctor
12:00:46.435 [main                ] DEBUG i.t.role.spring.spi.AnnotationSpringRoleManager    - scanning classes with interface it.tidalwave.dci.annotation.DciRole annotation...
12:00:48.070 [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])
12:00:48.071 [main                ] DEBUG it.tidalwave.role.spi.RoleManagerSupport           - Configured roles:
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.072 [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]
12:00:48.094 [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]
12:00:48.098 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@3aae3ace at construction time: []
12:00:48.098 [main                ] TRACE it.tidalwave.role.spi.ContextSampler               - >>>> contexts for i.t.r.u.i.DefaultUserAction@71e6a60f at construction time: []
12:00:48.099 [main                ] TRACE it.tidalwave.messagebus.MessageBusHelper           - registerMessageListener(void it.tidalwave.northernwind.rca.ui.contenteditor.spi.DefaultContentEditorPresentationControl.onContentSelected(it.tidalwave.northernwind.rca.ui.event.ContentSelectedEvent))
12:00:48.101 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ******************************************************************************************
12:00:48.101 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST "must populate the presentation and bind properties on reception of selected content"
12:00:48.101 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - ******************************************************************************************
12:00:48.115 [main                ] DEBUG i.t.n.r.u.c.s.DefaultContentEditorPresentationControl - onContentSelected(ContentSelectedEvent(content=Optional[Mock for Content, hashCode: 791059364]))
12:00:48.130 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - TEST PASSED in 19 msec
12:00:48.130 [main                ] INFO  i.t.n.r.u.c.s.DefaultContentEditorPresentationControlTest - 
12:00:48.133 [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: 13.263 s - in TestSuite
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 16, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[JENKINS] Recording test results
[INFO] 
[INFO] --- jar:3.3.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.30819703aea5.jar
[INFO] 
[INFO] --- jar:3.3.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.30819703aea5-tests.jar
[INFO] 
[INFO] --- install:3.1.1:install (default-install) @ it-tidalwave-northernwind-rca-ui-content-editor ---
[INFO] Installing /var/jenkins_home/jobs/Zephyr_Build_and_Test/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_Build_and_Test/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.30819703aea5.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_Build_and_Test/workspace/modules/ContentEditor/target/it-tidalwave-northernwind-rca-ui-content-editor-1.2-ALPHA-4-SNAPSHOT.30819703aea5-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
[JENKINS] Archiving disabled