void setOverriddenBy(RuntimeModule module) { // no more than one override is allowed if (this.overriddenBy != null) { String message = String.format( "Module %s provided by %s is overridden twice by %s and %s", getModuleName(), getProviderName(), this.overriddenBy.getModuleName(), module.getModuleName()); throw new BootiqueException(1, message); } this.overriddenBy = module; } }
private Collection<RuntimeModule> collectUnique(Collection<BQModule> bqModules) { // TODO: looking up modules by java type limits the use of lambdas as modules. E.g. we loaded test // properties are dynamically created modules in a repeatedly called Lambda. This didn't work.. // So perhaps use provider name as a unique key? Map<Class<? extends Module>, RuntimeModule> map = new LinkedHashMap<>(); for (BQModule bqModule : bqModules) { RuntimeModule rm = new RuntimeModule(bqModule); RuntimeModule existing = map.putIfAbsent(rm.getModuleType(), rm); if (existing != null) { bootLogger.trace(() -> String.format( "Skipping module '%s' provided by '%s' (already provided by '%s')...", rm.getModuleName(), rm.getProviderName(), existing.getProviderName())); } } calcOverrideGraph(map); return map.values(); }
void setOverriddenBy(RuntimeModule module) { // no more than one override is allowed if (this.overriddenBy != null) { String message = String.format( "Module %s provided by %s is overridden twice by %s and %s", getModuleName(), getProviderName(), this.overriddenBy.getModuleName(), module.getModuleName()); throw new BootiqueException(1, message); } this.overriddenBy = module; } }
private Collection<RuntimeModule> collectUnique(Collection<BQModule> bqModules) { // TODO: looking up modules by java type limits the use of lambdas as modules. E.g. we loaded test // properties are dynamically created modules in a repeatedly called Lambda. This didn't work.. // So perhaps use provider name as a unique key? Map<Class<? extends Module>, RuntimeModule> map = new LinkedHashMap<>(); for (BQModule bqModule : bqModules) { RuntimeModule rm = new RuntimeModule(bqModule); RuntimeModule existing = map.putIfAbsent(rm.getModuleType(), rm); if (existing != null) { bootLogger.trace(() -> String.format( "Skipping module '%s' provided by '%s' (already provided by '%s')...", rm.getModuleName(), rm.getProviderName(), existing.getProviderName())); } } calcOverrideGraph(map); return map.values(); }