Maven 2.x Invoker Plugin

Inject some Verifier-like component into the scripts to ease common assertions

Details

  • Type: New Feature New Feature
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 1.2.1
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None
  • Number of attachments :
    0

Description

Many pre-/post-build hook scripts share very similar patterns to check for existence/absence of files, JAR entries etc. Those scripts could be greatly condensed if the Invoker Plugin provided a Verifier-like component to perform these common assertions using dedicated methods. In detail, offer Verifier.assert*() for the scripts.

Issue Links

Activity

Hide
Benjamin Bentmann added a comment -

Some first thoughts on the API of this Asserter component:

  • setCurrentDirectory(String/File path)
  • assertFile(String/File path)
  • assertDirectory(String/File path)
  • assertNotPath(String/File path)
  • assertNotPaths(String includes, String excludes)
  • assertFileContents(String/File path, String encoding, String regex)
  • setCurrentArchive(String/File path)
  • assertArchiveEntry(String path)
  • assertNotArchiveEntry(String path)
  • assertNotArchiveEntries(String includes, String excludes)
  • assertArchiveEntryContents(String path, String encoding, String regex)
  • dispose()

The archive assertions should be reviewed to support nested archives.

Show
Benjamin Bentmann added a comment - Some first thoughts on the API of this Asserter component:
  • setCurrentDirectory(String/File path)
  • assertFile(String/File path)
  • assertDirectory(String/File path)
  • assertNotPath(String/File path)
  • assertNotPaths(String includes, String excludes)
  • assertFileContents(String/File path, String encoding, String regex)
  • setCurrentArchive(String/File path)
  • assertArchiveEntry(String path)
  • assertNotArchiveEntry(String path)
  • assertNotArchiveEntries(String includes, String excludes)
  • assertArchiveEntryContents(String path, String encoding, String regex)
  • dispose()
The archive assertions should be reviewed to support nested archives.
Hide
Olivier Lamy added a comment -

setup() or initialiaze() in first ?

Show
Olivier Lamy added a comment - setup() or initialiaze() in first ?
Hide
Benjamin Bentmann added a comment -

Not sure whether we need those. I currently have a simple/lightweight POJO class in mind (i.e. not a component in the Plexus sense) that just has some constructors for initialization and that's it. The dispose() is intended to release resources like file handles on archives. However, it's not fully thought up (at least on my side ).

To further illustrate the intended usage:

In the Invoker Plugin
// setup the asserter for the current IT
Asserter asserter = new Asserter();
asserter.setCurrentDirectory( basedir );

// pass it on to the script interpreter as a global variable
runHookScript( ..., asserter );

// tidy up
asserter.dispose();
In the Hook Script
asserter.assertFile( "target/foo-1.0.jar" );
asserter.setCurrentDirectory( "target/exploded" );
asserter.assertFile( "WEB-INF/lib/bar-1.0.jar" );
Show
Benjamin Bentmann added a comment - Not sure whether we need those. I currently have a simple/lightweight POJO class in mind (i.e. not a component in the Plexus sense) that just has some constructors for initialization and that's it. The dispose() is intended to release resources like file handles on archives. However, it's not fully thought up (at least on my side ). To further illustrate the intended usage:
In the Invoker Plugin
// setup the asserter for the current IT
Asserter asserter = new Asserter();
asserter.setCurrentDirectory( basedir );

// pass it on to the script interpreter as a global variable
runHookScript( ..., asserter );

// tidy up
asserter.dispose();
In the Hook Script
asserter.assertFile( "target/foo-1.0.jar" );
asserter.setCurrentDirectory( "target/exploded" );
asserter.assertFile( "WEB-INF/lib/bar-1.0.jar" );

People

Vote (2)
Watch (2)

Dates

  • Created:
    Updated: