Skip to content

Commit

Permalink
Create archive in dedicated temporary directory
Browse files Browse the repository at this point in the history
  • Loading branch information
pzygielo committed Jan 14, 2023
1 parent 5717147 commit 25d1ac4
Showing 1 changed file with 14 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/*
* Copyright (c) 2023 Contributors to the Eclipse Foundation. All rights reserved.
* Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
Expand All @@ -22,6 +23,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
Expand Down Expand Up @@ -60,10 +62,17 @@ public URI assemble(ScatteredEnterpriseArchive archive) throws IOException {
return assembleEAR(archive.name, archive.archives, archive.metadatas);
}

static File createArchiveFile(String name, String extension) throws IOException {
File tmpDir = Files.createTempDirectory("gftmp").toFile();
tmpDir.deleteOnExit();
File archiveFile = new File(tmpDir, name + extension);
archiveFile.deleteOnExit();
return archiveFile;
}

private URI assembleEAR(String name, Map<String, File> archives,
Map<String, File> metadatas) throws IOException {
File ear = new File(System.getProperty("java.io.tmpdir"), name + ".ear");
ear.deleteOnExit();
File ear = createArchiveFile(name, ".ear");
JarOutputStream jos = new JarOutputStream(new FileOutputStream(ear));
for (Map.Entry<String, File> me : metadatas.entrySet()) {
tranferFile(me.getValue(), jos, me.getKey(), false);
Expand All @@ -83,8 +92,7 @@ private URI assembleEAR(String name, Map<String, File> archives,

URI assembleWAR(String name, File rootDirectory, List<File> classpaths,
Map<String, File> metadatas) throws IOException {
File archive = new File(System.getProperty("java.io.tmpdir"), name + ".war");
archive.deleteOnExit();
File archive = createArchiveFile(name, ".war");

JarOutputStream jos = new JarOutputStream(new FileOutputStream(archive));

Expand All @@ -105,8 +113,7 @@ URI assembleWAR(String name, File rootDirectory, List<File> classpaths,

URI assembleJAR(String name, File rootDirectory, List<File> classpaths,
Map<String, File> metadatas) throws IOException {
File archive = new File(System.getProperty("java.io.tmpdir"), name + ".jar");
archive.deleteOnExit();
File archive = createArchiveFile(name, ".jar");
JarOutputStream jos = new JarOutputStream(new FileOutputStream(archive));
transferDir(rootDirectory, jos, "");
for (Map.Entry<String, File> me : metadatas.entrySet()) {
Expand All @@ -125,8 +132,7 @@ URI assembleJAR(String name, File rootDirectory, List<File> classpaths,

URI assembleRAR(String name, File rootDirectory, List<File> classpaths,
Map<String, File> metadatas) throws IOException {
File rar = new File(System.getProperty("java.io.tmpdir"), name + ".rar");
rar.deleteOnExit();
File rar = createArchiveFile(name, ".rar");
JarOutputStream jos = new JarOutputStream(new FileOutputStream(rar));
transferDir(rootDirectory, jos, "");
for (Map.Entry<String, File> me : metadatas.entrySet()) {
Expand Down

0 comments on commit 25d1ac4

Please sign in to comment.