void initEdges()

in atomos/src/main/java/org/apache/felix/atomos/impl/modules/ModuleConnectLoader.java [81:113]


    void initEdges(Module module, Configuration loaderConfig,
        Map<String, ? extends ClassLoader> loaders)
    {
        this.module.set(module);
        for (ResolvedModule moduleRead : resolvedModule.reads())
        {
            ClassLoader loaderForModuleRead;
            if (moduleRead.configuration().equals(loaderConfig))
            {
                loaderForModuleRead = loaders.get(moduleRead.name());
            }
            else
            {
                ClassLoader cl = module.getLayer().findLoader(moduleRead.name());
                loaderForModuleRead = (cl != null) ? cl
                    : ClassLoader.getPlatformClassLoader();
            }
            ModuleDescriptor descriptor = moduleRead.reference().descriptor();
            if (descriptor.isAutomatic())
            {
                descriptor.packages().forEach(
                    p -> edges.putIfAbsent(p, loaderForModuleRead));
            }
            else
            {
                descriptor.exports().stream() //
                    .filter(
                        p -> !p.isQualified() || p.targets().contains(module.getName())) //
                    .map(Exports::source) //
                    .forEach(pn -> edges.putIfAbsent(pn, loaderForModuleRead));
            }
        }
    }