org.fusesource.mvnplugins.uberize.transformer
Class ClassShader

java.lang.Object
  extended by org.fusesource.mvnplugins.uberize.transformer.ClassShader
All Implemented Interfaces:
Transformer

public class ClassShader
extends Object
implements Transformer

Uses byte code manipulation to relocate java classes to a new package. It can optionally update resource files so that class names referenced in the files are updated with the new package names.

Author:
Jason van Zyl, Hiram Chirino

Field Summary
 PackageRelocation[] relocations
           
 Resources resources
           
 
Constructor Summary
ClassShader()
           
 
Method Summary
 String mapClassName(List<Relocator> relocators, String name)
           
 void process(Uberizer uberizer, File workDir, TreeMap<String,UberEntry> nodes)
          A transformer will modify the specified uber entries to apply transformation.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

relocations

public PackageRelocation[] relocations

resources

public Resources resources
Constructor Detail

ClassShader

public ClassShader()
Method Detail

process

public void process(Uberizer uberizer,
                    File workDir,
                    TreeMap<String,UberEntry> nodes)
             throws IOException
Description copied from interface: Transformer
A transformer will modify the specified uber entries to apply transformation. It can add/remove entries from the map or replace existing uber entries. A transformer should not modify exisiting uber entries. It should instead create new enry instance (linked to the old one) and replace the old entry in the map with the new entry.

Specified by:
process in interface Transformer
Parameters:
uberizer - the Uberizer instance requesting the transformation.
workDir - a work directory that the transformer can store transformed files in
nodes - a map of all the jar entries that will be included in the uber jar
Throws:
IOException

mapClassName

public String mapClassName(List<Relocator> relocators,
                           String name)


Copyright © 2009-2011 FuseSource. All Rights Reserved.