ModuleDefinition plugin2 = parentSpec2.findChildDefinition("plugin2", true);
ModuleDefinition plugin4 = new SimpleModuleDefinition(plugin2, "plugin4");
new SimpleModuleDefinition(plugin4, "plugin5");
new SimpleModuleDefinition(plugin4, "plugin6");
ModificationExtractor calculator = new StrictModificationExtractor();
TransitionSet transitions = calculator.getTransitions(application, parentSpec1, parentSpec2);
Iterator<? extends ModuleStateChange> iterator = doAssertions(transitions, 4);
ModuleStateChange change3 = iterator.next();
assertEquals("plugin3", change3.getModuleDefinition().getName());
assertEquals(Transition.LOADED_TO_UNLOADED, change3.getTransition());
//now show that the sticky calculator has the same set of changes, but omits the last one
ModificationExtractor stickyCalculator = new StickyModificationExtractor();
TransitionSet stickyTransitions = stickyCalculator.getTransitions(application, parentSpec1, parentSpec2);
doAssertions(stickyTransitions, 3);
}