final Module load(String location, ModuleRevisionBuilder builder, Object revisionInfo, long id, EnumSet<Settings> settings, int startlevel) { // sanity check checkWrite(); if (modulesByLocations.containsKey(location)) throw new IllegalArgumentException("Location is already used: " + location); //$NON-NLS-1$ if (modulesById.containsKey(id)) throw new IllegalArgumentException("Id is already used: " + id); //$NON-NLS-1$ Module module; if (id == 0) { module = adaptor.createSystemModule(); } else { module = adaptor.createModule(location, id, settings, startlevel); } builder.addRevision(module, revisionInfo); modulesByLocations.put(location, module); modulesById.put(id, module); if (settings != null) moduleSettings.put(id, settings); ModuleRevision newRevision = module.getCurrentRevision(); addCapabilities(newRevision); return module; }
/** * Returns the module loader for this wiring. If the module * loader does not exist yet then one will be created * @return the module loader for this wiring. */ public ModuleLoader getModuleLoader() { synchronized (monitor) { if (loader == null) { if (!isValid) { return null; } loader = revision.getRevisions().getContainer().adaptor.createModuleLoader(this); } return loader; } }
this.frameworkStartLevel = new ContainerStartLevel(); long tempModuleLockTimeout = 5; String moduleLockTimeoutProp = adaptor.getProperty(EquinoxConfiguration.PROP_MODULE_LOCK_TIMEOUT); if (moduleLockTimeoutProp != null) { try { DebugOptions debugOptions = adaptor.getDebugOptions(); if (debugOptions != null) { this.DEBUG_MONITOR_LAZY = debugOptions.getBooleanOption(Debug.OPTION_MONITOR_LAZY, false); String autoStartOnResolveProp = adaptor.getProperty(EquinoxConfiguration.PROP_MODULE_AUTO_START_ON_RESOLVE); if (autoStartOnResolveProp == null) { autoStartOnResolveProp = Boolean.toString(true);
void doContainerStartLevel(Module module, int newStartLevel, FrameworkListener... listeners) { synchronized (frameworkStartLevelLock) { if (newStartLevel == USE_BEGINNING_START_LEVEL) { String beginningSL = adaptor.getProperty(Constants.FRAMEWORK_BEGINNING_STARTLEVEL); newStartLevel = beginningSL == null ? 1 : Integer.parseInt(beginningSL); adaptor.publishContainerEvent(ContainerEvent.START_LEVEL, module, null, listeners); adaptor.publishContainerEvent(ContainerEvent.ERROR, module, e, listeners); throw e; } catch (RuntimeException e) { adaptor.publishContainerEvent(ContainerEvent.ERROR, module, e, listeners); throw e;
adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.UPDATING, module, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.UNRESOLVED, module, module); adaptor.publishModuleEvent(ModuleEvent.UPDATED, module, module); getAdaptor().publishContainerEvent(ContainerEvent.ERROR, module, e);
ModuleRevisionBuilder adaptBuilder = getAdaptor().adaptModuleRevisionBuilder(ModuleEvent.UPDATED, module, builder, revisionInfo); if (adaptBuilder != null) { adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.UPDATING, module, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.UNRESOLVED, module, module); adaptor.publishModuleEvent(ModuleEvent.UPDATED, module, module); getAdaptor().publishContainerEvent(ContainerEvent.ERROR, module, e);
adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.INSTALLING, origin, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.INSTALLED, result, origin);
void setDebugOptions() { DebugOptions options = getAdaptor().getDebugOptions(); debugStartLevel = options == null ? false : options.getBooleanOption(Debug.OPTION_DEBUG_STARTLEVEL, false); }
/** * Constructs the module resolver with the specified resolver hook factory * and resolver. * @param adaptor the container adaptor */ ModuleResolver(ModuleContainerAdaptor adaptor) { this.adaptor = adaptor; setDebugOptions(); String batchSizeConfig = this.adaptor.getProperty(EquinoxConfiguration.PROP_RESOLVER_REVISION_BATCH_SIZE); int tempBatchSize; try { tempBatchSize = batchSizeConfig == null ? DEFAULT_BATCH_SIZE : Integer.parseInt(batchSizeConfig); } catch (NumberFormatException e) { tempBatchSize = DEFAULT_BATCH_SIZE; } if (tempBatchSize < 1) { tempBatchSize = DEFAULT_BATCH_SIZE; } this.resolverRevisionBatchSize = tempBatchSize; }
ModuleRevisionBuilder adaptBuilder = getAdaptor().adaptModuleRevisionBuilder(ModuleEvent.INSTALLED, origin, builder, revisionInfo); if (adaptBuilder != null) { adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.INSTALLING, origin, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.INSTALLED, result, origin);
Object revisionInfo = moduleDatabase.adaptor.getRevisionInfo(location, id); Module module = moduleDatabase.load(location, builder, revisionInfo, id, settings, startlevel);
ModuleRevision revision = new ModuleRevision(symbolicName, version, types, capabilityInfos, requirementInfos, revisions, revisionInfo); revisions.addRevision(revision); module.getContainer().getAdaptor().associateRevision(revision, revisionInfo);
try { try { hook = adaptor.getResolverHookFactory().begin(InternalUtils.asListBundleRevision((List<? extends BundleRevision>) triggers)); } catch (RuntimeException e) { if (e.getCause() instanceof BundleException) {
adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.UPDATING, module, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.UNRESOLVED, module, module); adaptor.publishModuleEvent(ModuleEvent.UPDATED, module, module); getAdaptor().publishContainerEvent(ContainerEvent.ERROR, module, e);
void doContainerStartLevel(Module module, int newStartLevel, FrameworkListener... listeners) { synchronized (frameworkStartLevelLock) { if (newStartLevel == USE_BEGINNING_START_LEVEL) { String beginningSL = adaptor.getProperty(Constants.FRAMEWORK_BEGINNING_STARTLEVEL); newStartLevel = beginningSL == null ? 1 : Integer.parseInt(beginningSL); adaptor.publishContainerEvent(ContainerEvent.START_LEVEL, module, null, listeners); adaptor.publishContainerEvent(ContainerEvent.ERROR, module, e, listeners); throw e; } catch (RuntimeException e) { adaptor.publishContainerEvent(ContainerEvent.ERROR, module, e, listeners); throw e;
ModuleRevisionBuilder adaptBuilder = getAdaptor().adaptModuleRevisionBuilder(ModuleEvent.UPDATED, module, builder, revisionInfo); if (adaptBuilder != null) { adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.UPDATING, module, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.UNRESOLVED, module, module); adaptor.publishModuleEvent(ModuleEvent.UPDATED, module, module); getAdaptor().publishContainerEvent(ContainerEvent.ERROR, module, e);
adaptor.getModuleCollisionHook().filterCollisions(ModuleCollisionHook.INSTALLING, origin, collisionCandidates); adaptor.publishModuleEvent(ModuleEvent.INSTALLED, result, origin);
void setDebugOptions() { DebugOptions options = getAdaptor().getDebugOptions(); debugStartLevel = options == null ? false : options.getBooleanOption(Debug.OPTION_DEBUG_STARTLEVEL, false); }