/** * {@inheritDoc} * <strong>Only class resources (bytecode .class files) are found by this method.</strong> */ @Override public URL findResource(String name) { if (classesLoader != null) { return classesLoader.findResource(name); } return null; }
/** * {@inheritDoc} * <strong>Only class resources (bytecode .class files) are found by this method.</strong> */ @Override public byte[] loadBytes(String name) { if (classesLoader != null) { return classesLoader.loadBytes(name); } return new byte[0]; }
private JarLoader extractClassesJar(String name) throws IOException { ZipEntry classes = aarFile.getEntry(CLASSES_JAR_NAME); if (classes == null) { return null; } tempClassesJar = Files.createTempFile(name, ".jar"); InputStream in = aarFile.getInputStream(classes); Files.copy(in, tempClassesJar, StandardCopyOption.REPLACE_EXISTING); return new JarLoader(tempClassesJar.toFile()); }
@Override public void close() { try { if (classesLoader != null) { classesLoader.close(); deleteDir(tempClassesJar); } aarFile.close(); } catch (IOException e) { // ignore } }
private JarLoader extractClassesJar(String name) throws IOException { ZipEntry classes = aarFile.getEntry(CLASSES_JAR_NAME); if (classes == null) { return null; } tempClassesJar = Files.createTempFile(name, ".jar"); InputStream in = aarFile.getInputStream(classes); Files.copy(in, tempClassesJar, StandardCopyOption.REPLACE_EXISTING); return new JarLoader(tempClassesJar.toFile()); }
@Override public void close() { try { if (classesLoader != null) { classesLoader.close(); deleteDir(tempClassesJar); } aarFile.close(); } catch (IOException e) { // ignore } }
/** * @param files ordered list of files and directories from which to load classes and resources */ public SquidClassLoader(List<File> files) { super(null); loaders = new ArrayList<>(); for (File file : files) { if (file.exists()) { if (file.isDirectory()) { loaders.add(new FileSystemLoader(file)); } else if (file.getName().endsWith(".jar")) { loaders.add(new JarLoader(file)); } } } }
/** * {@inheritDoc} * <strong>Only class resources (bytecode .class files) are found by this method.</strong> */ @Override public URL findResource(String name) { if (classesLoader != null) { return classesLoader.findResource(name); } return null; }
/** * {@inheritDoc} * <strong>Only class resources (bytecode .class files) are found by this method.</strong> */ @Override public byte[] loadBytes(String name) { if (classesLoader != null) { return classesLoader.loadBytes(name); } return new byte[0]; }
/** * @param files ordered list of files and directories from which to load classes and resources */ public SquidClassLoader(List<File> files) { super(null); loaders = new ArrayList<Loader>(); for (File file : files) { if (file.exists()) { if (file.isDirectory()) { loaders.add(new FileSystemLoader(file)); } else if (file.getName().endsWith(".jar")) { loaders.add(new JarLoader(file)); } } } }
/** * @param files ordered list of files and directories from which to load classes and resources */ public SquidClassLoader(List<File> files) { super(computeParent()); loaders = new ArrayList<>(); for (File file : files) { if (file.exists()) { try { if (file.isDirectory()) { loaders.add(new FileSystemLoader(file)); } else if (file.getName().endsWith(".jar")) { loaders.add(new JarLoader(file)); } else if (file.getName().endsWith(".aar")) { loaders.add(new AarLoader(file)); } } catch (IllegalStateException e) { LOG.warn("Unable to load classes from '{}'", file.getPath()); LOG.debug("{}: {}", e.getMessage(), e.getCause().getMessage()); } } } }
/** * @param files ordered list of files and directories from which to load classes and resources */ public SquidClassLoader(List<File> files) { super(computeParent()); loaders = new ArrayList<>(); for (File file : files) { if (file.exists()) { try { if (file.isDirectory()) { loaders.add(new FileSystemLoader(file)); } else if (file.getName().endsWith(".jar")) { loaders.add(new JarLoader(file)); } else if (file.getName().endsWith(".aar")) { loaders.add(new AarLoader(file)); } } catch (IllegalStateException e) { LOG.warn("Unable to load classes from '{}'", file.getPath()); LOG.debug("{}: {}", e.getMessage(), e.getCause().getMessage()); } } } }