Internals

  • Plugin contexts inherit from the project's context.
  • When plugins are processed the writing of the cache files is performed, plugin dependencies are processed and goals are created which is a process where the body of the goal is stored in a Werkz Action.
  • When a goal is attained the action for the goal is executed. In the case of the GoalTag the Jelly body of the goal is invoked. When the goal is invoked we are asking for a specific Jelly blob from a specific plugin to be executed. So we must attach the correct context and classloader to the goal before it's action is executed. So N goals may be executed and the context/classloader combination is flipped before each goal is attained.