1 16 17 package org.springframework.instrument.classloading.oc4j; 18 19 import java.lang.instrument.ClassFileTransformer ; 20 21 import oracle.classloader.util.ClassLoaderUtilities; 22 23 import org.springframework.instrument.classloading.LoadTimeWeaver; 24 import org.springframework.util.Assert; 25 import org.springframework.util.ClassUtils; 26 27 38 public class OC4JLoadTimeWeaver implements LoadTimeWeaver { 39 40 private final ClassLoader classLoader; 41 42 43 48 public OC4JLoadTimeWeaver() { 49 this(ClassUtils.getDefaultClassLoader()); 50 } 51 52 59 public OC4JLoadTimeWeaver(ClassLoader classLoader) { 60 Assert.notNull(classLoader, "ClassLoader must not be null"); 61 this.classLoader = classLoader; 62 } 63 64 65 public void addTransformer(ClassFileTransformer transformer) { 66 Assert.notNull(transformer, "Transformer must not be null"); 67 OC4JClassPreprocessorAdapter processor = new OC4JClassPreprocessorAdapter(transformer); 70 ClassLoaderUtilities.addPreprocessor(this.classLoader, processor); 71 } 72 73 public ClassLoader getInstrumentableClassLoader() { 74 return this.classLoader; 75 } 76 77 public ClassLoader getThrowawayClassLoader() { 78 return ClassLoaderUtilities.copy(this.classLoader); 79 } 80 81 } 82 | Popular Tags |