private Set<Module> getAllModuleDependencies(final Collection<Module> modules) { return modules.stream() .filter(Objects::nonNull) .map(Module::getMetadata) .map(ModuleMetadata::getDependencies) .flatMap(Collection::stream) .filter(dep -> Objects.nonNull(dep.getId())) .map(dep -> moduleManager.getRegistry().getLatestModuleVersion(dep.getId())) .filter(Objects::nonNull) .collect(Collectors.toSet()); }
private Set<Module> processResolutionResult(ResolutionResult resolutionResult) throws DependencyResolutionFailedException { if (!resolutionResult.isSuccess()) { throw new DependencyResolutionFailedException("Module dependency resolution failed."); } return resolutionResult.getModules().stream() .filter(module -> !module.getId().equals(TerasologyConstants.ENGINE_MODULE)) .filter(module -> isOnlineVersionNewer(localRegistry.getLatestModuleVersion(module.getId()), module)) .collect(Collectors.toSet()); }
private List<Module> getGameplayModules() { List<Module> gameplayModules = Lists.newArrayList(); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { Module latestVersion = moduleManager.getRegistry().getLatestModuleVersion(moduleId); if (!latestVersion.isOnClasspath()) { if (StandardModuleExtension.isGameplayModule(latestVersion)) { gameplayModules.add(latestVersion); } } } gameplayModules.sort(Comparator.comparing(o -> o.getMetadata().getDisplayName().value())); return gameplayModules; }
@Override public String get() { if (dependencyInfoBinding.get() != null) { return String.valueOf(moduleManager.getRegistry().getLatestModuleVersion(dependencyInfoBinding.get().getId()).getVersion()); } return ""; } });
public static ModuleManager create() throws Exception { ModuleManager moduleManager = new ModuleManagerImpl(""); try (Reader reader = new InputStreamReader(ModuleManagerFactory.class.getResourceAsStream("/module.txt"), TerasologyConstants.CHARSET)) { ModuleMetadata metadata = new ModuleMetadataReader().read(reader); moduleManager.getRegistry().add(ClasspathModule.create(metadata, ModuleManagerFactory.class)); } moduleManager.loadEnvironment(Sets.newHashSet(moduleManager.getRegistry().getLatestModuleVersion(new Name("engine"))), true); return moduleManager; } }
private void recursivelyAddModuleDependencies(Set<Name> modules, Name moduleName) { Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleName); if (module != null) { for (DependencyInfo dependencyInfo : module.getMetadata().getDependencies()) { modules.add(dependencyInfo.getId()); recursivelyAddModuleDependencies(modules, dependencyInfo.getId()); } } }
private void advancedModuleFilter() { Iterator<ModuleSelectionInfo> iter = sortedModules.iterator(); while (iter.hasNext()) { ModuleSelectionInfo m = iter.next(); Module module; if (m.isPresent()) { module = moduleManager.getRegistry().getLatestModuleVersion(m.getMetadata().getId()); } else { module = (m.getOnlineVersion() == null) ? m.getLatestVersion() : m.getOnlineVersion(); } boolean matches = false; Collection<StandardModuleExtension> selectedStandardModuleExtensions = selectModulesConfig .getSelectedStandardModuleExtensions(); for (StandardModuleExtension standardModuleExtension : selectedStandardModuleExtensions) { if (standardModuleExtension != null && standardModuleExtension.isProvidedBy(module)) { matches = true; break; } } if (!matches) { iter.remove(); } } }
private void uncategorizedModuleFilter() { Iterator<ModuleSelectionInfo> iter = sortedModules.iterator(); while (iter.hasNext()) { ModuleSelectionInfo m = iter.next(); Module module; if (m.isPresent()) { module = moduleManager.getRegistry().getLatestModuleVersion(m.getMetadata().getId()); } else { module = (m.getOnlineVersion() == null) ? m.getLatestVersion() : m.getOnlineVersion(); } boolean isUncategorized = true; Set<StandardModuleExtension> booleanStandardModuleExtensionEnumSet = StandardModuleExtension.booleanPropertySet(); for (StandardModuleExtension standardModuleExtension : booleanStandardModuleExtensionEnumSet) { if (standardModuleExtension.isProvidedBy(module)) { isUncategorized = false; break; } } if (!isUncategorized) { iter.remove(); } } }
private void loadGameModules() { final List<ModuleSelectionInfo> sortedGameModules = gameInfo.getManifest().getModules().stream() .sorted(Comparator.comparing(NameVersion::getName)) .map(nameVersion -> { Module module = moduleManager.getRegistry().getModule(nameVersion.getName(), nameVersion.getVersion()); if (module != null) { return ModuleSelectionInfo.strictVersion(module); } else { logger.warn("Can't find module in your classpath - {}:{}", nameVersion.getName(), nameVersion.getVersion()); module = moduleManager.getRegistry().getLatestModuleVersion(nameVersion.getName()); if (module != null) { logger.debug("Get the latest available version of module {} in your classpath", nameVersion.getName()); errors.add(String.format("Can't find module %s:%s in your classpath; loaded description for the latest available version.", nameVersion.getName(), nameVersion.getVersion())); return ModuleSelectionInfo.latestVersion(module); } logger.error("Can't find any versions of module {} in your classpath!", nameVersion.getName()); errors.add(String.format("Can't find any versions of module %s in your classpath!", nameVersion.getName())); return ModuleSelectionInfo.unavailableVersion(nameVersion.getName().toString(), nameVersion.getVersion().toString()); } }) .filter(Objects::nonNull) .collect(Collectors.toList()); gameModules.setList(sortedGameModules); gameModules.select(0); }
Set<Module> getAllModulesToDownloadFor(Name... modulesToInstall) throws DependencyResolutionFailedException { Version currentEngineVersion = localRegistry.getLatestModuleVersion(TerasologyConstants.ENGINE_MODULE).getVersion(); ResolutionResult resolutionResult = remoteDependencyResolver.builder() .requireVersion(TerasologyConstants.ENGINE_MODULE, currentEngineVersion) .requireAll(modulesToInstall) .build(); return processResolutionResult(resolutionResult); }
/** * refresh the telemetryCategories map. */ private void fetchTelemetryCategoriesFromEnvironment() { telemetryCategories = Maps.newHashMap(); DependencyResolver resolver = new DependencyResolver(moduleManager.getRegistry()); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleId); if (module.isCodeModule()) { ResolutionResult result = resolver.resolve(moduleId); if (result.isSuccess()) { try (ModuleEnvironment environment = moduleManager.loadEnvironment(result.getModules(), false)) { for (Class<?> holdingType : environment.getTypesAnnotatedWith(TelemetryCategory.class, new FromModule(environment, moduleId))) { TelemetryCategory telemetryCategory = holdingType.getAnnotation(TelemetryCategory.class); telemetryCategories.put(telemetryCategory, holdingType); } } } } } }
Module defaultGameplayModule = moduleManager.getRegistry().getLatestModuleVersion(defaultGameplayModuleName);
List<WorldGeneratorInfo> infos = Lists.newArrayList(); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleId); if (module.isCodeModule()) { DependencyResolver resolver = new DependencyResolver(moduleManager.getRegistry());
private Set<Class> fetchMetricsClassFromEnvironemnt(Context context) { ModuleManager moduleManager = context.get(ModuleManager.class); Set<Class> metricsClassSet = new HashSet<>(); DependencyResolver resolver = new DependencyResolver(moduleManager.getRegistry()); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleId); if (module.isCodeModule()) { ResolutionResult result = resolver.resolve(moduleId); if (result.isSuccess()) { try (ModuleEnvironment environment = moduleManager.loadEnvironment(result.getModules(), false)) { for (Class<?> holdingType : environment.getTypesAnnotatedWith(TelemetryCategory.class, new FromModule(environment, moduleId))) { metricsClassSet.add(holdingType); } } } } } return metricsClassSet; }
private void updateOpenInBrowserButton() { openInBrowser.setEnabled(false); final Module module = moduleInfoBinding.get(); if (module == null) { return; } final String moduleOrigin = getOriginModuleUrl(moduleManager.getRegistry().getLatestModuleVersion(module.getMetadata().getId())); if (StringUtils.isNotBlank(moduleOrigin)) { openInBrowser.setEnabled(true); openInBrowser.setUrl(moduleOrigin) .setNuiManager(getManager()) .setTranslationSystem(translationSystem); } }
private void updateDefaultBinds(Context passedContext, BindsConfiguration config) { ModuleManager moduleManager = passedContext.get(ModuleManager.class); DependencyResolver resolver = new DependencyResolver(moduleManager.getRegistry()); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { if (moduleManager.getRegistry().getLatestModuleVersion(moduleId).isCodeModule()) { ResolutionResult result = resolver.resolve(moduleId); if (result.isSuccess()) { try (ModuleEnvironment environment = moduleManager.loadEnvironment(result.getModules(), false)) { FromModule filter = new FromModule(environment, moduleId); Iterable<Class<?>> buttons = environment.getTypesAnnotatedWith(RegisterBindButton.class, filter); Iterable<Class<?>> axes = environment.getTypesAnnotatedWith(RegisterRealBindAxis.class, filter); addButtonDefaultsFor(moduleId, buttons, config); addAxisDefaultsFor(moduleId, axes, config); } } } } }
DependencyResolver resolver = new DependencyResolver(moduleManager.getRegistry()); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleId); if (module.isCodeModule()) { ResolutionResult result = resolver.resolve(moduleId);
ModuleManager moduleManager = context.get(ModuleManager.class); for (Name moduleName : config.getDefaultModSelection().listModules()) { Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleName); if (module != null) { gameManifest.addModule(module.getId(), module.getVersion()); Module module = moduleManager.getRegistry().getLatestModuleVersion(moduleName); if (StandardModuleExtension.isGameplayModule(module)) { SimpleUri defaultWorldGenerator = StandardModuleExtension.getDefaultWorldGenerator(module);
/** * @param uri uri of the world generator to create. * @param context objects from this context will be injected into the * @return The instantiated world generator. */ public static WorldGenerator createGenerator(SimpleUri uri, Context context) throws UnresolvedWorldGeneratorException { ModuleManager moduleManager = context.get(ModuleManager.class); Module module = moduleManager.getEnvironment().get(uri.getModuleName()); if (module == null) { DependencyResolver resolver = new DependencyResolver(moduleManager.getRegistry()); ResolutionResult result = resolver.resolve(uri.getModuleName()); if (!result.isSuccess()) { if (moduleManager.getRegistry().getLatestModuleVersion(uri.getModuleName()) == null) { throw new UnresolvedWorldGeneratorException("Unable to resolve world generator '" + uri + "' - not found"); } else { throw new UnresolvedWorldGeneratorException("Unable to resolve world generator '" + uri + "' - unable to resolve module dependencies"); } } try (ModuleEnvironment environment = moduleManager.loadEnvironment(result.getModules(), false)) { return createWorldGenerator(uri, context, environment); } } else { return createWorldGenerator(uri, context, moduleManager.getEnvironment()); } }
sortedModules = Lists.newArrayList(); for (Name moduleId : moduleManager.getRegistry().getModuleIds()) { Module latestVersion = moduleManager.getRegistry().getLatestModuleVersion(moduleId); if (!latestVersion.isOnClasspath()) { ModuleSelectionInfo info = ModuleSelectionInfo.local(latestVersion); .map(ModuleSelectionInfo::getMetadata) .filter(Objects::nonNull) .map(meta -> moduleManager.getRegistry().getLatestModuleVersion(meta.getId())) .filter(Objects::nonNull) .collect(Collectors.toList());