Skip to content

Commit

Permalink
[#8890] Revert InternalModule, Check optional-module clearly
Browse files Browse the repository at this point in the history
  • Loading branch information
youngjin.kim2 authored and smilu97 committed Jun 24, 2022
1 parent ffe9556 commit b69d235
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,8 @@
import jdk.internal.loader.BootLoader;
import jdk.internal.module.Modules;

import java.lang.module.Configuration;
import java.lang.module.ModuleDescriptor;
import java.lang.module.ModuleFinder;
import java.net.URI;
import java.util.List;
import java.util.Objects;
import java.util.Set;

final class InternalModules {

Expand All @@ -49,20 +44,10 @@ static Module getUnnamedModule() {
* The URI is for information purposes only.
*/
static Module defineModule(ClassLoader loader,
ModuleDescriptor descriptor,
URI uri)
ModuleDescriptor descriptor,
URI uri)
{
final String moduleName = descriptor.name();
final ModuleLayer parent = ModuleLayer.boot();

final ModuleFinder before = new SingleModuleFinder(descriptor, uri);
final Configuration cf = parent.configuration().resolve(before, ModuleFinder.of(), Set.of(moduleName));
final Module module = ModuleLayer.defineModules(cf, List.of(parent), name -> loader)
.layer()
.findModule(moduleName)
.orElse(null);

return Objects.requireNonNull(module, moduleName);
return Modules.defineModule(loader, descriptor, uri);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,15 @@

import java.io.Closeable;
import java.io.IOException;
import java.lang.module.Configuration;
import java.lang.module.ModuleDescriptor;
import java.lang.module.ModuleFinder;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.jar.JarFile;
import java.util.stream.Collectors;

/**
* @author Woonduk Kang(emeroad)
Expand Down Expand Up @@ -68,11 +65,31 @@ Module defineModule(String moduleName, ClassLoader classLoader, URL[] urls) {
}

ModuleDescriptor moduleDescriptor = builder.build();
URI url = getInformationURI(urls);
URI uri = getInformationURI(urls);

Module module = InternalModules.defineModule(classLoader, moduleDescriptor , url);
logger.info("defineModule module:" + module);
return module;
ModuleLayer parent = ModuleLayer.boot();

ModuleFinder before = new SingleModuleFinder(moduleDescriptor, uri);
Configuration cf = parent.configuration().resolve(before, ModuleFinder.of(), Set.of(moduleName));

ModuleLayer moduleLayer = ModuleLayer.defineModules(cf, List.of(parent), name -> classLoader).layer();
Optional<Module> oModule = moduleLayer.findModule(moduleName);

if (!oModule.isPresent()) {
if (moduleLayer.modules().isEmpty()) {
logger.info("Attempt to create module " + moduleName + ", but nothing happened");
} else {
Module unknownModule = moduleLayer.modules().iterator().next();
logger.info("Attempt to create module " + moduleName + ", but ignored -> " + unknownModule.getName());
}
logger.info("module name: " + moduleDescriptor.name());
logger.info(" - packages: " + moduleDescriptor.packages());
logger.info(" - providers: " + moduleDescriptor.provides());
throw new IllegalStateException("Failed to create module-layer, module " + moduleName);
}

logger.info("defineModule module:" + oModule.get());
return oModule.get();
}

private Map<String, Set<String>> mergeServiceInfo(List<PackageInfo> packageInfos) {
Expand Down

0 comments on commit b69d235

Please sign in to comment.