Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 java.base.jmod - Base Module
JDK 11 java.base.jmod is the JMOD file for JDK 11 Base module.
JDK 11 Base module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.base.jmod.
JDK 11 Base module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Base module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ jdk/internal/module/ModuleInfoWriter.java
/* * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package jdk.internal.module; import java.io.IOException; import java.io.OutputStream; import java.lang.module.ModuleDescriptor; import java.nio.ByteBuffer; import java.util.Map; import java.util.stream.Stream; import jdk.internal.org.objectweb.asm.ClassWriter; import jdk.internal.org.objectweb.asm.ModuleVisitor; import jdk.internal.org.objectweb.asm.Opcodes; import jdk.internal.org.objectweb.asm.commons.ModuleTargetAttribute; import static jdk.internal.org.objectweb.asm.Opcodes.*; /** * Utility class to write a ModuleDescriptor as a module-info.class. */ public final class ModuleInfoWriter { private static final Map<ModuleDescriptor.Modifier, Integer> MODULE_MODS_TO_FLAGS = Map.of( ModuleDescriptor.Modifier.OPEN, ACC_OPEN, ModuleDescriptor.Modifier.SYNTHETIC, ACC_SYNTHETIC, ModuleDescriptor.Modifier.MANDATED, ACC_MANDATED ); private static final Map<ModuleDescriptor.Requires.Modifier, Integer> REQUIRES_MODS_TO_FLAGS = Map.of( ModuleDescriptor.Requires.Modifier.TRANSITIVE, ACC_TRANSITIVE, ModuleDescriptor.Requires.Modifier.STATIC, ACC_STATIC_PHASE, ModuleDescriptor.Requires.Modifier.SYNTHETIC, ACC_SYNTHETIC, ModuleDescriptor.Requires.Modifier.MANDATED, ACC_MANDATED ); private static final Map<ModuleDescriptor.Exports.Modifier, Integer> EXPORTS_MODS_TO_FLAGS = Map.of( ModuleDescriptor.Exports.Modifier.SYNTHETIC, ACC_SYNTHETIC, ModuleDescriptor.Exports.Modifier.MANDATED, ACC_MANDATED ); private static final Map<ModuleDescriptor.Opens.Modifier, Integer> OPENS_MODS_TO_FLAGS = Map.of( ModuleDescriptor.Opens.Modifier.SYNTHETIC, ACC_SYNTHETIC, ModuleDescriptor.Opens.Modifier.MANDATED, ACC_MANDATED ); private static final String[] EMPTY_STRING_ARRAY = new String[0]; private ModuleInfoWriter() { } /** * Writes the given module descriptor to a module-info.class file, * returning it in a byte array. */ private static byte[] toModuleInfo(ModuleDescriptor md, ModuleTarget target) { ClassWriter cw = new ClassWriter(0); cw.visit(Opcodes.V10, ACC_MODULE, "module-info", null, null, null); int moduleFlags = md.modifiers().stream() .map(MODULE_MODS_TO_FLAGS::get) .reduce(0, (x, y) -> (x | y)); String vs = md.rawVersion().orElse(null); ModuleVisitor mv = cw.visitModule(md.name(), moduleFlags, vs); // requires for (ModuleDescriptor.Requires r : md.requires()) { int flags = r.modifiers().stream() .map(REQUIRES_MODS_TO_FLAGS::get) .reduce(0, (x, y) -> (x | y)); vs = r.rawCompiledVersion().orElse(null); mv.visitRequire(r.name(), flags, vs); } // exports for (ModuleDescriptor.Exports e : md.exports()) { int flags = e.modifiers().stream() .map(EXPORTS_MODS_TO_FLAGS::get) .reduce(0, (x, y) -> (x | y)); String[] targets = e.targets().toArray(EMPTY_STRING_ARRAY); mv.visitExport(e.source().replace('.', '/'), flags, targets); } // opens for (ModuleDescriptor.Opens opens : md.opens()) { int flags = opens.modifiers().stream() .map(OPENS_MODS_TO_FLAGS::get) .reduce(0, (x, y) -> (x | y)); String[] targets = opens.targets().toArray(EMPTY_STRING_ARRAY); mv.visitOpen(opens.source().replace('.', '/'), flags, targets); } // uses md.uses().stream().map(sn -> sn.replace('.', '/')).forEach(mv::visitUse); // provides for (ModuleDescriptor.Provides p : md.provides()) { mv.visitProvide(p.service().replace('.', '/'), p.providers() .stream() .map(pn -> pn.replace('.', '/')) .toArray(String[]::new)); } // add the ModulePackages attribute when there are packages that aren't // exported or open Stream<String> exported = md.exports().stream() .map(ModuleDescriptor.Exports::source); Stream<String> open = md.opens().stream() .map(ModuleDescriptor.Opens::source); long exportedOrOpen = Stream.concat(exported, open).distinct().count(); if (md.packages().size() > exportedOrOpen) { md.packages().stream() .map(pn -> pn.replace('.', '/')) .forEach(mv::visitPackage); } // ModuleMainClass attribute md.mainClass() .map(mc -> mc.replace('.', '/')) .ifPresent(mv::visitMainClass); mv.visitEnd(); // write ModuleTarget attribute if there is a target platform if (target != null && target.targetPlatform().length() > 0) { cw.visitAttribute(new ModuleTargetAttribute(target.targetPlatform())); } cw.visitEnd(); return cw.toByteArray(); } /** * Writes a module descriptor to the given output stream as a * module-info.class. */ public static void write(ModuleDescriptor descriptor, ModuleTarget target, OutputStream out) throws IOException { byte[] bytes = toModuleInfo(descriptor, target); out.write(bytes); } /** * Writes a module descriptor to the given output stream as a * module-info.class. */ public static void write(ModuleDescriptor descriptor, OutputStream out) throws IOException { write(descriptor, null, out); } /** * Returns a {@code ByteBuffer} containing the given module descriptor * in module-info.class format. */ public static ByteBuffer toByteBuffer(ModuleDescriptor descriptor) { byte[] bytes = toModuleInfo(descriptor, null); return ByteBuffer.wrap(bytes); } }
⏎ jdk/internal/module/ModuleInfoWriter.java
Or download all of them as a single archive file:
File name: java.base-11.0.1-src.zip File size: 8740354 bytes Release date: 2018-11-04 Download
2020-05-29, 206343👍, 0💬
Popular Posts:
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
How to perform XML Schema validation with sax\Writer.java provided in the Apache Xerces package? You...
commons-net-1.4.1.jar is the JAR file for Apache Commons Net 1.4.1, which implements the client side...
JDK 17 jdk.hotspot.agent.jmod is the JMOD file for JDK 17 Hotspot Agent module. JDK 17 Hotspot Agent...
JRE 8 rt.jar is the JAR file for JRE 8 RT (Runtime) libraries. JRE (Java Runtime) 8 is the runtime e...