Package org.objectweb.asm.commons

Examples of org.objectweb.asm.commons.RemappingClassAdapter


        ClassWriter cw = new ClassWriter( 0 );

        Remapper packageRemapper =
            new SimpleRemapper( HELP_MOJO_CLASS_NAME, packageAsDirectory + '/' + HELP_MOJO_CLASS_NAME );
        ClassVisitor cv = new RemappingClassAdapter( cw, packageRemapper );

        try
        {
            cr.accept( cv, ClassReader.EXPAND_FRAMES );
        }
View Full Code Here


        t3 = new Stopwatch().start();
       
       
        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_FRAMES);

        ClassVisitor remappingAdapter = new RemappingClassAdapter(cw, remapper);
        MergeAdapter mergingAdapter = new MergeAdapter(oldTemplateSlashName, materializedSlashName, remappingAdapter,
            impl);
        ClassReader tReader = new ClassReader(templateClass);
        tReader.accept(mergingAdapter, ClassReader.EXPAND_FRAMES);
        byte[] outputClass = cw.toByteArray();
//        Files.write(outputClass, new File(String.format("/tmp/%d-output.class", fileNum)));
        outputClass = cw.toByteArray();

        // Load the class
        classLoader.injectByteCode(materializedClassName, outputClass);
      }
      t3.stop();
      Stopwatch t4 = new Stopwatch().start();
      int i = 0;
      for (String s : remapper.getSubclasses()) {
        logger.debug("Setting up sub class {}", s);
        // for each sub class, remap them into the new class.
        String subclassPath = FileUtils.separator + s + ".class";
        final byte[] bytecode = getClassByteCodeFromPath(subclassPath);
        RemapClasses localRemapper = new RemapClasses(oldTemplateSlashName, materializedSlashName);
        Preconditions.checkArgument(localRemapper.getSubclasses().isEmpty(), "Class transformations are only supported for classes that have a single level of inner classes.");
        ClassWriter subcw = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
        ClassVisitor remap = new RemappingClassAdapter(subcw, localRemapper);
        ClassReader reader = new ClassReader(bytecode);
        reader.accept(remap, ClassReader.EXPAND_FRAMES);
        byte[] newByteCode = subcw.toByteArray();
        classLoader.injectByteCode(s.replace(oldTemplateSlashName, materializedSlashName).replace(FileUtils.separatorChar, '.'), newByteCode);
//        Files.write(subcw.toByteArray(), new File(String.format("/tmp/%d-sub-%d.class", fileNum, i)));
View Full Code Here

            try {
                enclosingBytecode = env.getClassfile(outer).getInputStream();
                final ClassReader reader = new ClassReader(enclosingBytecode);

                final ClassVisitor cv = // NOPMD
                        new RemappingClassAdapter(new WriteClass(reader), remapper) {

                    @Override
                    public void visitInnerClass(final String name, final String outerName, final String innerName,
                        final int access) {
                        if (!classMap.containsKey(name)) {
View Full Code Here

            throw new GeneratorException( e.getMessage(), e );
        }

        ClassWriter cw = new ClassWriter( 0 );

        ClassVisitor cv = new RemappingClassAdapter( cw, new SimpleRemapper( "HelpMojo",
                                                                             StringUtils.replace( destinationPackage,
                                                                                                  ".", "/" )
                                                                                 + "/HelpMojo" ) );

        try
View Full Code Here

        ClassWriter cw = new ClassWriter( 0 );

        Remapper packageRemapper =
            new SimpleRemapper( HELP_MOJO_CLASS_NAME, packageAsDirectory + '/' + HELP_MOJO_CLASS_NAME );
        ClassVisitor cv = new RemappingClassAdapter( cw, packageRemapper );

        try
        {
            cr.accept( cv, ClassReader.EXPAND_FRAMES );
        }
View Full Code Here

    };
    try {
      final InputStream stream = resource.getInputStream();
      final ClassReader reader = new ClassReader(stream);
      stream.close();
      reader.accept(new RemappingClassAdapter(new EmptyVisitor(),
          remapper), ClassReader.EXPAND_FRAMES);
    } catch (final IOException e) {
      throw new BuildException(e);
    }
    return dependencies;
View Full Code Here

      }
    };
    final ClassReader reader = new ClassReader(stream);
    stream.close();
    final ClassWriter writer = new ClassWriter(reader, 0);
    reader.accept(new RemappingClassAdapter(writer, remapper),
        ClassReader.EXPAND_FRAMES);
    return new ByteArrayInputStream(writer.toByteArray());
  }
View Full Code Here

    };
    try {
      final InputStream stream = resource.getInputStream();
      final ClassReader reader = new ClassReader(stream);
      stream.close();
      reader.accept(new RemappingClassAdapter(new EmptyVisitor(),
          remapper), 0);
    } catch (final IOException e) {
      throw new BuildException(e);
    }
    return dependencies;
View Full Code Here

    };
    try {
      final InputStream stream = resource.getInputStream();
      final ClassReader reader = new ClassReader(stream);
      stream.close();
      reader.accept(new RemappingClassAdapter(new EmptyVisitor(),
          remapper), ClassReader.EXPAND_FRAMES);
    } catch (final IOException e) {
      throw new BuildException(e);
    }
    return dependencies;
View Full Code Here

      }
    };
    final ClassReader reader = new ClassReader(stream);
    stream.close();
    final ClassWriter writer = new ClassWriter(reader, 0);
    reader.accept(new RemappingClassAdapter(writer, remapper), 0);
    return new ByteArrayInputStream(writer.toByteArray());
  }
View Full Code Here

TOP

Related Classes of org.objectweb.asm.commons.RemappingClassAdapter

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.