/** * Creates an {@linkplain ExtensionsRepository} instance from the given path * @param location Desired execution {@linkplain ExtensionsRepository.Location} * @param userExtPath The repository path in the form of {@linkplain File#pathSeparator} * delimited list of jars and folders containing the extensions * @return Returns a new instance of {@linkplain ExtensionsRepository} */ public static ExtensionsRepository fixed(ExtensionsRepository.Location location, final String userExtPath) { return fixed(null, location, userExtPath); }
/** * Repository's classloader * @return {@linkplain ClassLoader} used to load extensions from the repository */ final synchronized public ClassLoader getClassLoader() { if (cLoader == null) { cLoader = getClassLoader(pLoader); } return cLoader; }
public Compiler(boolean unsafe, ExtensionsRepository extRepository) { this.unsafe = unsafe; this.extRepository = extRepository != null ? extRepository : ExtensionsRepositoryFactory.builtin(ExtensionsRepository.Location.SERVER); }
private static ExtensionsRepository getRepository(String extPath) { BTraceLogger.debugPrint("getting repository for " + extPath); return ExtensionsRepositoryFactory.composite( ExtensionsRepository.Location.BOTH, ExtensionsRepositoryFactory.builtin(ExtensionsRepository.Location.BOTH), ExtensionsRepositoryFactory.fixed(ExtensionsRepository.Location.BOTH, extPath) ); }
/** * * @author Jaroslav Bachorik <jaroslav.bachorik at oracle.com> */ @BTraceExtension public class MyExtension { }
public boolean isCallTargetValid(String name, int numArgs) { for(String extName : repository.listExtensions()) { if (hasMethod(repository.loadExtension(extName), name, numArgs)) return true; } return false; }
/** * Checks for an extension availability * @param extensionFqn The extension fully qualified name * @return Returns <b>TRUE</b> if the extensions is loadable by this repository, <b>FALSE</b> otherwise */ final public boolean isExtensionAvailable(String extensionFqn) { return listExtensions().contains(extensionFqn); }
public boolean isClassValid(String className) { return repository.isExtensionAvailable(className.replace('/', '.')); } }
private static ExtensionsRepository getRepository(String extPath) { BTraceLogger.debugPrint("getting repository for " + extPath); return ExtensionsRepositoryFactory.composite( ExtensionsRepository.Location.BOTH, ExtensionsRepositoryFactory.builtin(ExtensionsRepository.Location.BOTH), ExtensionsRepositoryFactory.fixed(ExtensionsRepository.Location.BOTH, extPath) ); }
public Verifier(ClassVisitor cv) { this(cv, false, ExtensionsRepositoryFactory.builtin(ExtensionsRepository.Location.SERVER)); }
/** * * @author Jaroslav Bachorik <jaroslav.bachorik at oracle.com> */ @BTraceExtension public class SampleExtNoClinit { @Resource private static Objects objs; public static void doSample(Object param) { System.out.println("***" + objs.hash(param)); } }
/** * Repository's classloader * @return {@linkplain ClassLoader} used to load extensions from the repository */ final synchronized public ClassLoader getClassLoader() { if (cLoader == null) { cLoader = getClassLoader(pLoader); } return cLoader; }
/** * Creates an {@linkplain ExtensionsRepository} instance from the given path * @param location Desired execution {@linkplain ExtensionsRepository.Location} * @param userExtPath The repository path in the form of {@linkplain File#pathSeparator} * delimited list of jars and folders containing the extensions * @return Returns a new instance of {@linkplain ExtensionsRepository} */ public static ExtensionsRepository fixed(ExtensionsRepository.Location location, final String userExtPath) { return fixed(null, location, userExtPath); }
public boolean isCallTargetValid(String name, int numArgs) { for(String extName : repository.listExtensions()) { if (hasMethod(repository.loadExtension(extName), name, numArgs)) return true; } return false; }
/** * Checks for an extension availability * @param extensionFqn The extension fully qualified name * @return Returns <b>TRUE</b> if the extensions is loadable by this repository, <b>FALSE</b> otherwise */ final public boolean isExtensionAvailable(String extensionFqn) { return listExtensions().contains(extensionFqn); }
public boolean isClassValid(String className) { return repository.isExtensionAvailable(className.replace('/', '.')); } }
public Compiler(boolean unsafe, ExtensionsRepository extRepository) { this.unsafe = unsafe; this.extRepository = extRepository != null ? extRepository : ExtensionsRepositoryFactory.builtin(ExtensionsRepository.Location.SERVER); }
public CallTargetValidator(ExtensionsRepository repository) { this.repository = repository; System.err.println(">>> located extensions"); for(String s : repository.listExtensions()) { System.err.println(">>> " + s); } }
@Override protected void setUp() throws Exception { c = new Compiler(null, false, ExtensionsRepositoryFactory.builtin(ExtensionsRepository.Location.SERVER)); }
public CallTargetValidator(ExtensionsRepository repository) { this.repository = repository; BTraceLogger.debugPrint(">>> located extensions"); for(String s : repository.listExtensions()) { BTraceLogger.debugPrint(">>> " + s); } }