/** * Two moduleinfos are equal,if they have the same module class. * * @param o the other object to compare. * @return true, if the module points to the same module, false otherwise. */ public boolean equals( final Object o ) { if ( this == o ) { return true; } if ( !( o instanceof DefaultModuleInfo ) ) { return false; } final ModuleInfo defaultModuleInfo = (ModuleInfo) o; if ( !this.moduleClass.equals( defaultModuleInfo.getModuleClass() ) ) { return false; } return true; }
/** * Two moduleinfos are equal,if they have the same module class. * * @param o the other object to compare. * @return true, if the module points to the same module, false otherwise. */ public boolean equals(final Object o) { if (this == o) { return true; } if (!(o instanceof DefaultModuleInfo)) { return false; } final ModuleInfo defaultModuleInfo = (ModuleInfo) o; if (!this.moduleClass.equals(defaultModuleInfo.getModuleClass())) { return false; } return true; }
/** * Checks, whether a module is a base module of an given module. * * @param mod the module which to check * @param mi the module info of the suspected base module. * @return true, if the given module info describes a base module of the given module, false otherwise. */ private static boolean isBaseModule( final Module mod, final ModuleInfo mi ) { final ModuleInfo[] requiredModules = mod.getRequiredModules(); for ( int i = 0; i < requiredModules.length; i++ ) { if ( requiredModules[ i ].getModuleClass().equals( mi.getModuleClass() ) ) { return true; } } final ModuleInfo[] optionalModules = mod.getOptionalModules(); for ( int i = 0; i < optionalModules.length; i++ ) { if ( optionalModules[ i ].getModuleClass().equals( mi.getModuleClass() ) ) { return true; } } return false; }
/** * Checks, whether a module is a base module of an given module. * * @param mod the module which to check * @param mi the module info of the suspected base module. * @return true, if the given module info describes a base module of the * given module, false otherwise. */ private static boolean isBaseModule(final Module mod, final ModuleInfo mi) { final ModuleInfo[] requiredModules = mod.getRequiredModules(); for (int i = 0; i < requiredModules.length; i++) { if (requiredModules[i].getModuleClass().equals(mi.getModuleClass())) { return true; } } final ModuleInfo[] optionalModules = mod.getOptionalModules(); for (int i = 0; i < optionalModules.length; i++) { if (optionalModules[i].getModuleClass().equals(mi.getModuleClass())) { return true; } } return false; }
/** * Checks, whether the given module is already loaded in either the given tempModules list or the global package * registry. If tmpModules is null, only the previously installed modules are checked. * * @param tempModules a list of previously loaded modules. * @param module the module specification that is checked. * @return true, if the module is already loaded, false otherwise. */ private int containsModule( final ArrayList<Module> tempModules, final ModuleInfo module ) { if ( tempModules != null ) { final ModuleInfo[] mods = tempModules.toArray( new ModuleInfo[ tempModules.size() ] ); for ( int i = 0; i < mods.length; i++ ) { if ( mods[ i ].getModuleClass().equals( module.getModuleClass() ) ) { return RETURN_MODULE_LOADED; } } } final PackageState[] packageStates = this.modules.toArray( new PackageState[ this.modules.size() ] ); for ( int i = 0; i < packageStates.length; i++ ) { if ( packageStates[ i ].getModule().getModuleClass().equals( module.getModuleClass() ) ) { if ( packageStates[ i ].getState() == PackageState.STATE_ERROR ) { return RETURN_MODULE_ERROR; } else { return RETURN_MODULE_LOADED; } } } return RETURN_MODULE_UNKNOWN; }
for (int i = 0; i < mods.length; i++) if (mods[i].getModuleClass().equals(module.getModuleClass())) for (int i = 0; i < packageStates.length; i++) if (packageStates[i].getModule().getModuleClass().equals(module.getModuleClass()))
/** * Checks, whether a certain module is available. * * @param moduleDescription the module description of the desired module. * @return true, if the module is available and the version of the module is compatible, false otherwise. */ public boolean isModuleAvailable( final ModuleInfo moduleDescription ) { if ( moduleDescription == null ) { throw new NullPointerException(); } final PackageState[] packageStates = this.modules.toArray( new PackageState[ this.modules.size() ] ); for ( int i = 0; i < packageStates.length; i++ ) { final PackageState state = packageStates[ i ]; if ( state.getModule().getModuleClass().equals( moduleDescription.getModuleClass() ) ) { return ( state.getState() == PackageState.STATE_INITIALIZED ); } } return false; }
/** * Checks, whether a certain module is available. * * @param moduleDescription the module description of the desired module. * @return true, if the module is available and the version of the module is compatible, false otherwise. */ public boolean isModuleAvailable(final ModuleInfo moduleDescription) { if (moduleDescription == null) { throw new NullPointerException(); } final PackageState[] packageStates = this.modules.toArray(new PackageState[this.modules.size()]); for (int i = 0; i < packageStates.length; i++) { final PackageState state = packageStates[i]; if (state.getModule().getModuleClass().equals(moduleDescription.getModuleClass())) { return (state.getState() == PackageState.STATE_INITIALIZED); } } return false; }
final ModuleInfo[] requiredModules = childMod.getRequiredModules(); for ( int i = 0; i < requiredModules.length; i++ ) { final SortModule dependentModule = moduleMap.get( requiredModules[ i ].getModuleClass() ); if ( dependentModule == null ) { LOGGER.warn ( "A dependent module was not found in the list of known modules." + requiredModules[ i ].getModuleClass() ); continue; final Object o = moduleMap.get( optionalModules[ i ].getModuleClass() ); final SortModule dependentModule = (SortModule) o; if ( dependentModule == null ) {
for (int i = 0; i < requiredModules.length; i++) final SortModule dependentModule = moduleMap.get(requiredModules[i].getModuleClass()); if (dependentModule == null) requiredModules[i].getModuleClass()); continue; for (int i = 0; i < optionalModules.length; i++) final Object o = moduleMap.get(optionalModules[i].getModuleClass()); final SortModule dependentModule = (SortModule) o; if (dependentModule == null)
/** * Checks whether the module is configurable. A module is considered configurable if all dependencies exist and * are initialized. * * @param state the package state that should be checked. * @return true, if the module can be configured, false otherwise. */ private boolean isInitializable(final PackageState state) { final ModuleInfo[] requiredModules = state.getModule().getRequiredModules(); for (int i = 0; i < requiredModules.length; i++) { final ModuleInfo module = requiredModules[i]; final String key = module.getModuleClass(); final PackageState dependentState = modulesByClass.get(key); if (dependentState == null) { LOGGER.warn("Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not found."); return false; } if (dependentState.getState() != PackageState.STATE_INITIALIZED) { LOGGER.warn("Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not initializable."); return false; } } return true; }
/** * Checks whether the module is configurable. A module is considered configurable if all dependencies exist and are * configured. * * @param state the package state that should be checked. * @return true, if the module can be configured, false otherwise. */ private boolean isConfigurable( final PackageState state ) { final ModuleInfo[] requiredModules = state.getModule().getRequiredModules(); for ( int i = 0; i < requiredModules.length; i++ ) { final ModuleInfo module = requiredModules[ i ]; final String key = module.getModuleClass(); final PackageState dependentState = modulesByClass.get( key ); if ( dependentState == null ) { LOGGER.warn( "Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not found." ); return false; } if ( dependentState.getState() != PackageState.STATE_CONFIGURED ) { LOGGER.warn( "Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not configured." ); return false; } } return true; }
/** * Checks whether the module is configurable. A module is considered configurable if all dependencies exist and are * initialized. * * @param state the package state that should be checked. * @return true, if the module can be configured, false otherwise. */ private boolean isInitializable( final PackageState state ) { final ModuleInfo[] requiredModules = state.getModule().getRequiredModules(); for ( int i = 0; i < requiredModules.length; i++ ) { final ModuleInfo module = requiredModules[ i ]; final String key = module.getModuleClass(); final PackageState dependentState = modulesByClass.get( key ); if ( dependentState == null ) { LOGGER.warn( "Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not found." ); return false; } if ( dependentState.getState() != PackageState.STATE_INITIALIZED ) { LOGGER.warn( "Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not initializable." ); return false; } } return true; }
try { final Module module = ObjectUtilities.loadAndInstantiate ( moduleInfo.getModuleClass(), booter.getClass(), Module.class ); if ( module == null ) { if ( fatal ) { LOGGER.warn( "Unresolved dependency for package: " + moduleInfo.getModuleClass() ); LOGGER.debug( "Module class referenced, but not in classpath: " + moduleInfo.getModuleClass() ); return false; for ( int i = 0; i < optional.length; i++ ) { if ( loadModule( optional[ i ], incompleteModules, modules, true ) == false ) { LOGGER.debug( "Optional module: " + optional[ i ].getModuleClass() + " was not loaded." );
/** * Checks whether the module is configurable. A module is considered configurable if all dependencies exist and * are configured. * * @param state the package state that should be checked. * @return true, if the module can be configured, false otherwise. */ private boolean isConfigurable(final PackageState state) { final ModuleInfo[] requiredModules = state.getModule().getRequiredModules(); for (int i = 0; i < requiredModules.length; i++) { final ModuleInfo module = requiredModules[i]; final String key = module.getModuleClass(); final PackageState dependentState = modulesByClass.get(key); if (dependentState == null) { LOGGER.warn("Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not found."); return false; } if (dependentState.getState() != PackageState.STATE_CONFIGURED) { LOGGER.warn("Required dependency '" + key + "' for module '" + state.getModule().getModuleClass() + " not configured."); return false; } } return true; }
(moduleInfo.getModuleClass(), booter.getClass(), Module.class); if (module == null) LOGGER.warn("Unresolved dependency for package: " + moduleInfo.getModuleClass()); LOGGER.debug("Module class referenced, but not in classpath: " + moduleInfo.getModuleClass()); return false; LOGGER.debug("Optional module: " + optional[i].getModuleClass() + " was not loaded.");
final String moduleName = optionalModules[ modPos ].getModuleClass(); final SortModule reqMod = (SortModule) moduleMap.get( moduleName ); if ( reqMod == null ) { final String moduleName = requiredModules[ modPos ].getModuleClass(); final SortModule reqMod = (SortModule) moduleMap.get( moduleName ); if ( reqMod == null ) {
for (int modPos = 0; modPos < optionalModules.length; modPos++) final String moduleName = optionalModules[modPos].getModuleClass(); final SortModule reqMod = (SortModule) moduleMap.get(moduleName); if (reqMod == null) for (int modPos = 0; modPos < requiredModules.length; modPos++) final String moduleName = requiredModules[modPos].getModuleClass(); final SortModule reqMod = (SortModule) moduleMap.get(moduleName); if (reqMod == null)