Class ClassInjector.UsingUnsafe

    • Field Detail

      • SAFE_PROPERTY

        public static final String SAFE_PROPERTY
        If this property is set, Byte Buddy does not make use of any Unsafe class.
        See Also:
        Constant Field Values
    • Constructor Detail

      • UsingUnsafe

        public UsingUnsafe​(ClassLoader classLoader)
        Creates a new unsafe injector for the given class loader with a default protection domain.
        Parameters:
        classLoader - The class loader to inject classes into or null for the bootstrap loader.
      • UsingUnsafe

        public UsingUnsafe​(ClassLoader classLoader,
                           ProtectionDomain protectionDomain)
        Creates a new unsafe injector for the given class loader with a default protection domain.
        Parameters:
        classLoader - The class loader to inject classes into or null for the bootstrap loader.
        protectionDomain - The protection domain to use or null for no protection domain.
      • UsingUnsafe

        protected UsingUnsafe​(ClassLoader classLoader,
                              ProtectionDomain protectionDomain,
                              ClassInjector.UsingUnsafe.Dispatcher.Initializable dispatcher)
        Creates a new unsafe injector for the given class loader with a default protection domain.
        Parameters:
        classLoader - The class loader to inject classes into or null for the bootstrap loader.
        protectionDomain - The protection domain to use or null for no protection domain.
        dispatcher - The dispatcher to use.
    • Method Detail

      • isAlive

        public boolean isAlive()
        Indicates if this class injector is available on the current VM.
        Returns:
        true if this injector is available on the current VM.
      • injectRaw

        public Map<String,​Class<?>> injectRaw​(Map<? extends String,​byte[]> types)
        Injects the given types into the represented class loader using a mapping from name to binary representation.
        Parameters:
        types - The types to load via injection.
        Returns:
        The loaded types that were passed as arguments.
      • isAvailable

        public static boolean isAvailable()
        Checks if unsafe class injection is available on the current VM.
        Returns:
        true if unsafe class injection is available on the current VM.
      • ofSystemLoader

        public static ClassInjector ofSystemLoader()
        Returns an unsafe class injector for the system class loader.
        Returns:
        A class injector for the system class loader.
      • ofPlatformLoader

        public static ClassInjector ofPlatformLoader()
        Returns an unsafe class injector for the platform class loader. For VMs of version 8 or older, the extension class loader is represented instead.
        Returns:
        A class injector for the platform class loader.
      • ofBootLoader

        public static ClassInjector ofBootLoader()
        Returns an unsafe class injector for the boot class loader.
        Returns:
        A class injector for the boot loader.