@Test public void initializesCoreExtensionsInOrder() throws Exception { List<MuleCoreExtension> extensions = new LinkedList<>(); MuleCoreExtension extension1 = mock(MuleCoreExtension.class); MuleCoreExtension extension2 = mock(MuleCoreExtension.class); extensions.add(extension1); extensions.add(extension2); when(coreExtensionDiscoverer.discover()).thenReturn(extensions); List<MuleCoreExtension> orderedExtensions = new LinkedList<>(); orderedExtensions.add(extension2); orderedExtensions.add(extension1); when(coreExtensionDependencyResolver.resolveDependencies(extensions)).thenReturn(orderedExtensions); coreExtensionManager.initialise(); InOrder ordered = inOrder(extension1, extension2); ordered.verify(extension2).initialise(); ordered.verify(extension1).initialise(); }
extension.initialise(); initializedCoreExtensions.add(extension); if (LOGGER.isDebugEnabled()) {
@Test public void disposesCoreExtensionsAfterStartFail() throws Exception { List<MuleCoreExtension> extensions = new LinkedList<>(); MuleCoreExtension extension1 = mock(MuleCoreExtension.class); MuleCoreExtension extension2 = mock(MuleCoreExtension.class); Exception firstStartFailure = new RuntimeException(); doThrow(firstStartFailure).when(extension1).initialise(); when(coreExtensionDiscoverer.discover()).thenReturn(extensions); extensions.add(extension1); extensions.add(extension2); List<MuleCoreExtension> orderedExtensions = new LinkedList<>(); orderedExtensions.add(extension1); orderedExtensions.add(extension2); when(coreExtensionDependencyResolver.resolveDependencies(extensions)).thenReturn(orderedExtensions); try { coreExtensionManager.initialise(); fail(); } catch (Exception e) { assertThat(e.getCause(), sameInstance(firstStartFailure)); } coreExtensionManager.dispose(); verify(extension2, never()).dispose(); }
extension.initialise(); LOGGER.info("Core extension '{}' initialized", extension.toString());