Author: rmannibucau Date: Sun Feb 18 16:59:30 2018 New Revision: 1824676 URL: http://svn.apache.org/viewvc?rev=1824676&view=rev Log: creating a configurable bus set the global default bus so do it lazily + reset it after all cleanup callacbks to avoid to create another default without our providers
Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java?rev=1824676&r1=1824675&r2=1824676&view=diff ============================================================================== --- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java (original) +++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java Sun Feb 18 16:59:30 2018 @@ -156,7 +156,6 @@ public class Meecrowave implements AutoC public Meecrowave(final Builder builder) { this.configuration = builder; this.ownedTempDir = new File(configuration.tempDir, "meecrowave_" + System.nanoTime()); - this.clientBus = new ConfigurableBus(); } public Builder getConfiguration() { @@ -653,9 +652,9 @@ public class Meecrowave implements AutoC if (configuration.initializeClientBus && BusFactory.getDefaultBus(false) == null) { + clientBus = new ConfigurableBus(); clientBus.initProviders(configuration, ofNullable(Thread.currentThread().getContextClassLoader()).orElseGet(ClassLoader::getSystemClassLoader)); - BusFactory.setDefaultBus(clientBus); } try { @@ -867,9 +866,6 @@ public class Meecrowave implements AutoC new LogFacade(Meecrowave.class.getName()).error(e.getMessage(), e); } } - if (BusFactory.getDefaultBus(false) == clientBus) { - BusFactory.setDefaultBus(null); - } try { contexts.values().forEach(Runnable::run); } finally { @@ -879,6 +875,9 @@ public class Meecrowave implements AutoC } catch (final LifecycleException e) { throw new IllegalStateException(e); } finally { + if (BusFactory.getDefaultBus(false) == clientBus) { // after if runnables or listeners trigger CXF + BusFactory.setDefaultBus(null); + } tomcat = null; // ensure we can call close() N times and not have side effects contexts.clear(); if (clearCatalinaSystemProperties) { @@ -1240,7 +1239,7 @@ public class Meecrowave implements AutoC private String defaultSSLHostConfigName; @CliOption(name = "cxf-initialize-client-bus", description = "Should the client bus be set. If false the server one will likely be reused.") - private boolean initializeClientBus; + private boolean initializeClientBus = true; private final Map<Class<?>, Object> extensions = new HashMap<>(); private final Collection<Consumer<Tomcat>> instanceCustomizers = new ArrayList<>();