Pax Exam 2.1 released

So, quick start, Pax Exam 2.1 hit Maven Central this morning.

While Version 2.0.0 was a soft release last week without fancy release announcement articles, this Version now is the one that deprecates Pax Exam 1.x.

If you are currious, check out the Pax Exam Strategy Guide to lean how to do things.

Quick list of most important changes from 2.0 to 2.1:

  • All Options are now created from "CoreOptions" (name for backwards compatibility reasons). No more multiple static imports for options you don't know where they are from (PaxRunnerOptions anyone?). When writing Exam Tests or Servers (..) you have this in the import section: import static org.ops4j.pax.exam.CoreOptions.*;
  • Recognize unused Options. This really helpful when using options that are not supported in the container being used. For example "profile(..)" just works with PaxRunnerTestContainer. Now you get a warning when using it in NativeContainer.
  • Revised ExamSystem: Under the hood, this is pretty big news. As an end-user, you may not worry too much. For an SPI user: yes, you may need to look at interface changes. ExamSystem is a read only component wrapping your options and providing cross cutting functionality about Exam (like workingFolder, parsing options of a certain type, implicit options etc). With this, TestContainer implementations are now much more simplified.
  • Multiple bugfixes, mostly when using Native Container. Options are now recognized if possible.
  • pax-exam-link-assembly is now prefered to pax-exam-link-mvn. Mostly because it does not necessarily need an MVN resolver at runtime (less overhead).
  • Pax Runner Container does not transitively ship with Pax Runner anymore. You need to add pax-runer-no-jcl (current version 1.7.4) manually. Reason: decoupling of projects. You don't need to wait for a new Exam release when Runner gets a bugfix.
  • Same as above for URL Handlers using in Native Container. When using this container, you just get (transitively pax-url-classpath and pax-url-link). For aether you need to add pax-url-aether to your pom.
  • Server Mode. This is a special way to materialize your configuration (Options[]) into a process without any exam bundles, hooks installed. It also pre-sets some feasenable defaults for this scenario like not cleaning caches after shutdown, keeping original urls (just used when using Pax Runner Container) and so on.
    As always, the Pax Exam Stratgy Guide Project is being updated to reflect the most different usecases and options in standalone, easy to pick maven project templates.

For a full list:

type key summary

Unable to locate Jira server for this macro. It may be due to Application Link configuration.