Class AgentBuilder.RedefinitionStrategy.Dispatcher.ForJava6CapableVm

    • Field Detail

      • isModifiableClass

        private final java.lang.reflect.Method isModifiableClass
        The Instrumentation#isModifiableClass method.
      • isRetransformClassesSupported

        private final java.lang.reflect.Method isRetransformClassesSupported
        The Instrumentation#isRetransformClassesSupported method.
      • retransformClasses

        private final java.lang.reflect.Method retransformClasses
        The Instrumentation#retransformClasses method.
    • Constructor Detail

      • ForJava6CapableVm

        protected ForJava6CapableVm​(java.lang.reflect.Method isModifiableClass,
                                    java.lang.reflect.Method isRetransformClassesSupported,
                                    java.lang.reflect.Method retransformClasses)
        Creates a new Java 6 capable dispatcher.
        Parameters:
        isModifiableClass - The Instrumentation#isModifiableClass method.
        isRetransformClassesSupported - The Instrumentation#isRetransformClassesSupported method.
        retransformClasses - The Instrumentation#retransformClasses method.
    • Method Detail

      • isModifiableClass

        public boolean isModifiableClass​(java.lang.instrument.Instrumentation instrumentation,
                                         java.lang.Class<?> type)
        Checks if the supplied type is modifiable.
        Specified by:
        isModifiableClass in interface AgentBuilder.RedefinitionStrategy.Dispatcher
        Parameters:
        instrumentation - The instrumentation instance available.
        type - The type to check for modifiability.
        Returns:
        true if the supplied type is modifiable.
      • isRetransformClassesSupported

        public boolean isRetransformClassesSupported​(java.lang.instrument.Instrumentation instrumentation)
        Checks if retransformation is supported for the supplied instrumentation instance.
        Specified by:
        isRetransformClassesSupported in interface AgentBuilder.RedefinitionStrategy.Dispatcher
        Parameters:
        instrumentation - The instrumentation instance available.
        Returns:
        true if the supplied instance supports retransformation.
      • retransformClasses

        public void retransformClasses​(java.lang.instrument.Instrumentation instrumentation,
                                       java.lang.Class<?>[] type)
                                throws java.lang.instrument.UnmodifiableClassException
        Retransforms the supplied classes.
        Specified by:
        retransformClasses in interface AgentBuilder.RedefinitionStrategy.Dispatcher
        Parameters:
        instrumentation - The instrumentation instance to use for retransformation.
        type - The types to retransform.
        Throws:
        java.lang.instrument.UnmodifiableClassException - If the supplied classes cannot be retransformed.