Package java.lang.instrument

Examples of java.lang.instrument.ClassFileTransformer


        this.defaultFileTransformer = defaultFileTransformer;
        this.transformers = transformers;
    }

    public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
        ClassFileTransformer transformer = transformers.get(className);
        if (transformer != null) {
            return transformer.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
        }
        if (defaultFileTransformer != null && defaultFileTransformer.match(className)) {
            return defaultFileTransformer.transform(loader, className, classBeingRedefined, protectionDomain, classfileBuffer);
        }
        return classfileBuffer;
View Full Code Here


  public static final String NGINX_CLOJURE_WAVE_TRACE_CLASSPATTERN = "nginx.clojure.wave.trace.classpattern";
  public static final String NGINX_CLOJURE_WAVE_DUMPDIR = "nginx.clojure.wave.dumpdir";
  public static MethodDatabase db;
 
    public static void premain(String agentArguments, Instrumentation instrumentation) {
      ClassFileTransformer cft = buildClassFileTransformer(agentArguments);
      if (cft != null) {
        instrumentation.addTransformer(cft, true);
        for (String c : db.getRetransformedClasses()) {
          try {
          instrumentation.retransformClasses(db.getClassLoader().loadClass(c));
View Full Code Here

    is.close();
    return out.toByteArray();
  }

  public static void main(String[] args) {   
    ClassFileTransformer cft = JavaAgent.buildClassFileTransformer("mbdp");
    try {
      String clz = args[0];
      cft.transform(Thread.currentThread().getContextClassLoader(), clz, null, null, getClassBytes(clz));
    } catch (IllegalClassFormatException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
View Full Code Here

  @Nonnull
  private Collection<ClassFileTransformer> getAgents() throws MojoExecutionException {
    final Collection<ClassFileTransformer> agents = new ArrayList<ClassFileTransformer>();
    for (final String className : classTransformers) {
      final ClassFileTransformer instance = createAgentInstance(className);
      agents.add(instance);
    }
    return agents;
  }
View Full Code Here

     * @param basePackage only files in a basePackage
     */
    public void registerComponentScanBasePackage(final String basePackage) {
        LOGGER.info("Registering basePackage {}", basePackage);

        hotswapTransformer.registerTransformer(appClassLoader, basePackage + ".*", new ClassFileTransformer() {
            @Override
            public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
                if (classBeingRedefined != null) {
                    scheduler.scheduleCommand(new ClassPathBeanRefreshCommand(appClassLoader,
                        basePackage, className, classfileBuffer));
View Full Code Here

    }

    // new anonymous class, not covered by hotswap (patchAnonymousClass) - register custom transformer and
    // on event swap and unregister.
    private static void registerReplaceOnLoad(final String newName, final CtClass anonymous) {
        hotswapTransformer.registerTransformer(null, newName, new ClassFileTransformer() {
            @Override
            public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
                LOGGER.trace("Anonymous class '{}' - replaced.", newName);
                hotswapTransformer.removeTransformer(newName, this);
                try {
View Full Code Here

        ClassLoader appClassLoader = null;
        if (pluginAnnotation.getPlugin() != null)
            appClassLoader = pluginManager.getPluginRegistry().getAppClassLoader(pluginAnnotation.getPlugin());

        hotswapTransformer.registerTransformer(appClassLoader, annot.classNameRegexp(), new ClassFileTransformer() {
            @Override
            public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {
                List<LoadEvent> events = Arrays.asList(annot.events());
                if ((classBeingRedefined == null) ? !events.contains(LoadEvent.DEFINE) : !events.contains(LoadEvent.REDEFINE)) {
                    // Hotswap reload which is the client not interested of
View Full Code Here

  protected abstract Iterable<? extends String> getClasspathElements();

  private Collection<ClassFileTransformer> getAgents() throws MojoExecutionException {
    final Collection<ClassFileTransformer> agents = new ArrayList<ClassFileTransformer>();
    for (final String className : classTransformers) {
      final ClassFileTransformer instance = createAgentInstance(className);
      agents.add(instance);
    }
    return agents;
  }
View Full Code Here

    }

    static void install(String agentArgs, Instrumentation inst) {
        logger.warning("[MtContextAgent.install] agentArgs: " + agentArgs + ", Instrumentation: " + inst);

        ClassFileTransformer transformer = new MtContextTransformer();
        inst.addTransformer(transformer, true);

        logger.warning("[MtContextAgent.install] addTransformer success.");
    }
View Full Code Here

  protected abstract Iterable<? extends String> getClasspathElements();

  private Collection<ClassFileTransformer> getAgents() throws MojoExecutionException {
    final Collection<ClassFileTransformer> agents = new ArrayList<ClassFileTransformer>();
    for (final String className : classTransformers) {
      final ClassFileTransformer instance = createAgentInstance(className);
      agents.add(instance);
    }
    return agents;
  }
View Full Code Here

TOP

Related Classes of java.lang.instrument.ClassFileTransformer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.