public static File generateJar( Class<?>[] classes, String[] resources, String prefix, String archiveName) throws IOException { File jarFile = File.createTempFile(prefix, ".jar"); JavaArchive archive = ShrinkWrap.create(JavaArchive.class, archiveName).addClasses(classes); for (String resource : resources) { archive = archive.addAsResource(resource); } archive.as(ZipExporter.class).exportTo(jarFile, true); return jarFile; }
@Override public ClassLoader getClassLoader(JavaArchive jar) throws Exception { File tmp = File.createTempFile("root", "tmp"); assertTrue(tmp.delete()); assertTrue(tmp.mkdir()); tmp.deleteOnExit(); jar.as(ExplodedExporter.class).exportExploded(tmp, "root"); URL url = new File(tmp, "root").toURI().toURL(); return new URLClassLoader(new URL[]{url}); } });
public static InputStream toInputStream(Archive<?> archive) throws IOException { ZipExporter exporter = archive.as(ZipExporter.class); return exporter.exportZip(); }
private File explode(File targetDir, JavaArchive classes, JavaArchive lib) { WebArchive archive = ShrinkWrap.create(WebArchive.class); archive.merge(classes, "WEB-INF/classes"); archive.addAsDirectory("WEB-INF/lib"); File explodedDir = archive.as(ExplodedExporter.class).exportExploded(targetDir); File libJar = new File(explodedDir, "WEB-INF/lib/lib.jar"); lib.as(ZipExporter.class).exportTo(libJar); return explodedDir; }
/** * {@inheritDoc} * * @see org.jboss.shrinkwrap.api.asset.Asset#openStream() */ @Override public InputStream openStream() { // Export via the specified exporter return this.getArchive().as(this.exporter).exportAsInputStream(); }
protected File buildLargeJar() throws Exception { final String fileName = "large.jar"; final JavaArchive archive = ShrinkWrap.create( JavaArchive.class, fileName ); // Build a large jar by adding a lorem ipsum file repeatedly. final Path loremipsumTxtFile = Paths.get( ScannerTests.class.getResource( "/org/hibernate/jpa/test/packaging/loremipsum.txt" ).toURI() ); for ( int i = 0; i < 100; i++ ) { ArchivePath path = ArchivePaths.create( "META-INF/file" + i ); archive.addAsResource( loremipsumTxtFile.toFile(), path ); } File testPackage = new File( shrinkwrapArchiveDirectory, fileName ); archive.as( ZipExporter.class ).exportTo( testPackage, true ); return testPackage; }
private File explode(File targetDir, JavaArchive classes, JavaArchive lib) { WebArchive archive = ShrinkWrap.create(WebArchive.class); archive.merge(classes, "WEB-INF/classes"); archive.addAsDirectory("WEB-INF/lib"); File explodedDir = archive.as(ExplodedExporter.class).exportExploded(targetDir); File libJar = new File(explodedDir, "WEB-INF/lib/lib.jar"); lib.as(ZipExporter.class).exportTo(libJar); return explodedDir; }
public static File toExploded(Archive archive, String ext) { File tmp = assertTmpFile(ext); if (tmp.delete()) { ExplodedExporter exporter = archive.as(ExplodedExporter.class); exporter.exportExploded(tmp.getParentFile(), tmp.getName()); tmp.deleteOnExit(); return tmp; } else { throw failure("Could not delete tmp file " + tmp.getAbsolutePath()); } } }
public static VirtualFile toVirtualFile(Archive<?> archive) throws IOException, MalformedURLException { ZipExporter exporter = archive.as(ZipExporter.class); return AbstractVFS.toVirtualFile(archive.getName(), exporter.exportZip()); }
@Override public ClassLoader getClassLoader(JavaArchive jar) throws Exception { File tmp = File.createTempFile("crash", ".jar"); assertTrue(tmp.delete()); jar.as(ZipExporter.class).exportTo(tmp); return new URLClassLoader(new URL[]{tmp.toURI().toURL()}); } });
/** * Processes a nested archive by delegating to the ExplodedArchiveExporter * * @param parentDirectory * @param nestedArchiveAsset */ private void processArchiveAsset(File parentDirectory, ArchiveAsset nestedArchiveAsset) { // Get the nested archive Archive<?> nestedArchive = nestedArchiveAsset.getArchive(); nestedArchive.as(ExplodedExporter.class).exportExploded(parentDirectory); }
public static File toFile(Archive archive, String ext) { File tmp = assertTmpFile(ext); if (tmp.delete()) { ZipExporter exporter = archive.as(ZipExporter.class); exporter.exportTo(tmp); tmp.deleteOnExit(); return tmp; } else { throw failure("Could not delete tmp file " + tmp.getAbsolutePath()); } }
@Override protected void setUp() throws Exception { java.io.File warFile = java.io.File.createTempFile("test", ".war"); warFile.deleteOnExit(); JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "foo.jar"); jar.addClass(FSTestCase.class); WebArchive war = ShrinkWrap.create(WebArchive.class); war.addAsLibraries(jar); ZipExporter exporter = war.as(ZipExporter.class); exporter.exportTo(warFile, true); this.warFile = warFile; }
war.as(ZipExporter.class).exportTo(new File("target", war.getName()), true);
public void testDuplicateResource() throws Exception { java.io.File file = java.io.File.createTempFile("test", ".jar"); file.deleteOnExit(); JavaArchive jar = ShrinkWrap.create(JavaArchive.class); jar.addClass(FSTestCase.class); jar.as(ZipExporter.class).exportTo(file, true); URLDriver driver = new URLDriver(); driver.merge(file.toURI().toURL()); driver.merge(file.toURI().toURL()); Node node = driver.child(driver.child(driver.child(driver.child(driver.root(), "org"), "crsh"), "vfs"), "FSTestCase.class"); Iterator<InputStream> i = driver.open(node); assertTrue(i.hasNext()); i.next(); assertTrue(i.hasNext()); i.next(); assertFalse(i.hasNext()); }
final File tmp = File.createTempFile("crash", ".war"); assertTrue(tmp.delete()); war.as(ZipExporter.class).exportTo(tmp); final byte[] bytes = Utils.readAsBytes(jar.get("foo/A.class").getAsset().openStream()); return new ClassLoader(Thread.currentThread().getContextClassLoader()) {
archive.addClass(FSTestCase.class); ZipExporter exporter = archive.as(ZipExporter.class); exporter.exportTo(file, true);
long sizeof(Entry entry) { if (entry.size == null) { SizingOutputStream sizingOutputStream = new SizingOutputStream(); entry.archive.as(ZipExporter.class).exportTo(sizingOutputStream); entry.size = sizingOutputStream.getSize(); } return entry.size; }
long sizeof(Entry entry) { if (entry.size == null) { SizingOutputStream sizingOutputStream = new SizingOutputStream(); entry.archive.as(ZipExporter.class).exportTo(sizingOutputStream); entry.size = sizingOutputStream.getSize(); } return entry.size; }
wa.as(ZipExporter.class).exportTo(new File(webAppPath), true);