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
⏎ java/util/spi/AbstractResourceBundleProvider.java
/* * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package java.util.spi; import jdk.internal.misc.JavaUtilResourceBundleAccess; import jdk.internal.misc.SharedSecrets; import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.Locale; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; import static sun.security.util.SecurityConstants.GET_CLASSLOADER_PERMISSION; /** * {@code AbstractResourceBundleProvider} is an abstract class that provides * the basic support for a provider implementation class for * {@link ResourceBundleProvider}. * * <p> * Resource bundles can be packaged in one or more * named modules, <em>service provider modules</em>. The <em>consumer</em> of the * resource bundle is the one calling {@link ResourceBundle#getBundle(String)}. * In order for the consumer module to load a resource bundle * "{@code com.example.app.MyResources}" provided by another module, * it will use the {@linkplain java.util.ServiceLoader service loader} * mechanism. A service interface named "{@code com.example.app.spi.MyResourcesProvider}" * must be defined and a <em>service provider module</em> will provide an * implementation class of "{@code com.example.app.spi.MyResourcesProvider}" * as follows: * * <blockquote><pre> * {@code import com.example.app.spi.MyResourcesProvider; * class MyResourcesProviderImpl extends AbstractResourceBundleProvider * implements MyResourcesProvider * { * public MyResourcesProviderImpl() { * super("java.properties"); * } * // this provider maps the resource bundle to per-language package * protected String toBundleName(String baseName, Locale locale) { * return "p." + locale.getLanguage() + "." + baseName; * } * * public ResourceBundle getBundle(String baseName, Locale locale) { * // this module only provides bundles in French * if (locale.equals(Locale.FRENCH)) { * return super.getBundle(baseName, locale); * } * // otherwise return null * return null; * } * }}</pre></blockquote> * * Refer to {@link ResourceBundleProvider} for details. * * @see <a href="../ResourceBundle.html#resource-bundle-modules"> * Resource Bundles and Named Modules</a> * @since 9 * @spec JPMS */ public abstract class AbstractResourceBundleProvider implements ResourceBundleProvider { private static final JavaUtilResourceBundleAccess RB_ACCESS = SharedSecrets.getJavaUtilResourceBundleAccess(); private static final String FORMAT_CLASS = "java.class"; private static final String FORMAT_PROPERTIES = "java.properties"; private final String[] formats; /** * Constructs an {@code AbstractResourceBundleProvider} with the * "java.properties" format. This constructor is equivalent to * {@code AbstractResourceBundleProvider("java.properties")}. */ protected AbstractResourceBundleProvider() { this(FORMAT_PROPERTIES); } /** * Constructs an {@code AbstractResourceBundleProvider} with the specified * {@code formats}. The {@link #getBundle(String, Locale)} method looks up * resource bundles for the given {@code formats}. {@code formats} must * be "java.class" or "java.properties". * * @param formats the formats to be used for loading resource bundles * @throws NullPointerException if the given {@code formats} is null * @throws IllegalArgumentException if the given {@code formats} is not * "java.class" or "java.properties". */ protected AbstractResourceBundleProvider(String... formats) { this.formats = formats.clone(); // defensive copy if (this.formats.length == 0) { throw new IllegalArgumentException("empty formats"); } for (String f : this.formats) { if (!FORMAT_CLASS.equals(f) && !FORMAT_PROPERTIES.equals(f)) { throw new IllegalArgumentException(f); } } } /** * Returns the bundle name for the given {@code baseName} and {@code * locale} that this provider provides. * * @apiNote * A resource bundle provider may package its resource bundles in the * same package as the base name of the resource bundle if the package * is not split among other named modules. If there are more than one * bundle providers providing the resource bundle of a given base name, * the resource bundles can be packaged with per-language grouping * or per-region grouping to eliminate the split packages. * * <p>For example, if {@code baseName} is {@code "p.resources.Bundle"} then * the resource bundle name of {@code "p.resources.Bundle"} of * <code style="white-space:nowrap">Locale("ja", "", "XX")</code> * and {@code Locale("en")} could be <code style="white-space:nowrap"> * "p.resources.ja.Bundle_ja_ _XX"</code> and * {@code "p.resources.Bundle_en"} respectively. * * <p> This method is called from the default implementation of the * {@link #getBundle(String, Locale)} method. * * @implNote The default implementation of this method is the same as the * implementation of * {@link java.util.ResourceBundle.Control#toBundleName(String, Locale)}. * * @param baseName the base name of the resource bundle, a fully qualified * class name * @param locale the locale for which a resource bundle should be loaded * @return the bundle name for the resource bundle */ protected String toBundleName(String baseName, Locale locale) { return ResourceBundle.Control.getControl(ResourceBundle.Control.FORMAT_DEFAULT) .toBundleName(baseName, locale); } /** * Returns a {@code ResourceBundle} for the given {@code baseName} and * {@code locale}. * * @implNote * The default implementation of this method calls the * {@link #toBundleName(String, Locale) toBundleName} method to get the * bundle name for the {@code baseName} and {@code locale} and finds the * resource bundle of the bundle name local in the module of this provider. * It will only search the formats specified when this provider was * constructed. * * @param baseName the base bundle name of the resource bundle, a fully * qualified class name. * @param locale the locale for which the resource bundle should be instantiated * @return {@code ResourceBundle} of the given {@code baseName} and * {@code locale}, or {@code null} if no resource bundle is found * @throws NullPointerException if {@code baseName} or {@code locale} is * {@code null} * @throws UncheckedIOException if any IO exception occurred during resource * bundle loading */ @Override public ResourceBundle getBundle(String baseName, Locale locale) { Module module = this.getClass().getModule(); String bundleName = toBundleName(baseName, locale); ResourceBundle bundle = null; for (String format : formats) { try { if (FORMAT_CLASS.equals(format)) { bundle = loadResourceBundle(module, bundleName); } else if (FORMAT_PROPERTIES.equals(format)) { bundle = loadPropertyResourceBundle(module, bundleName); } if (bundle != null) { break; } } catch (IOException e) { throw new UncheckedIOException(e); } } return bundle; } /* * Returns the ResourceBundle of .class format if found in the module * of this provider. */ private static ResourceBundle loadResourceBundle(Module module, String bundleName) { PrivilegedAction<Class<?>> pa = () -> Class.forName(module, bundleName); Class<?> c = AccessController.doPrivileged(pa, null, GET_CLASSLOADER_PERMISSION); if (c != null && ResourceBundle.class.isAssignableFrom(c)) { @SuppressWarnings("unchecked") Class<ResourceBundle> bundleClass = (Class<ResourceBundle>) c; return RB_ACCESS.newResourceBundle(bundleClass); } return null; } /* * Returns the ResourceBundle of .property format if found in the module * of this provider. */ private static ResourceBundle loadPropertyResourceBundle(Module module, String bundleName) throws IOException { String resourceName = toResourceName(bundleName, "properties"); if (resourceName == null) { return null; } PrivilegedAction<InputStream> pa = () -> { try { return module.getResourceAsStream(resourceName); } catch (IOException e) { throw new UncheckedIOException(e); } }; try (InputStream stream = AccessController.doPrivileged(pa)) { if (stream != null) { return new PropertyResourceBundle(stream); } else { return null; } } catch (UncheckedIOException e) { throw e.getCause(); } } private static String toResourceName(String bundleName, String suffix) { if (bundleName.contains("://")) { return null; } StringBuilder sb = new StringBuilder(bundleName.length() + 1 + suffix.length()); sb.append(bundleName.replace('.', '/')).append('.').append(suffix); return sb.toString(); } }
⏎ java/util/spi/AbstractResourceBundleProvider.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, 205249👍, 0💬
Popular Posts:
commons-lang-2.6.jar is the JAR file for Apache Commons Lang 2.6, which provides a host of helper ut...
What Is javamail1_1_3.zip? javamail1_1_3.zip is the binary package of JavaMail API 1.1.3 in ZIP form...
MXP1 is a stable XmlPull parsing engine that is based on ideas from XPP and in particular XPP2 but c...
The JDT project provides the tool plug-ins that implement a Java IDE supporting the development of a...
JDK 11 jdk.rmic.jmod is the JMOD file for JDK 11 RMI (Remote Method Invocation) Compiler Tool tool, ...