Merge "Remove old library JARs when upgrading" into stable-2.6
This commit is contained in:
@@ -78,6 +78,7 @@ class Libraries {
|
|||||||
dl.setName(get(cfg, n, "name"));
|
dl.setName(get(cfg, n, "name"));
|
||||||
dl.setJarUrl(get(cfg, n, "url"));
|
dl.setJarUrl(get(cfg, n, "url"));
|
||||||
dl.setSHA1(get(cfg, n, "sha1"));
|
dl.setSHA1(get(cfg, n, "sha1"));
|
||||||
|
dl.setRemove(get(cfg, n, "remove"));
|
||||||
field.set(this, dl);
|
field.set(this, dl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.pgm.init;
|
package com.google.gerrit.pgm.init;
|
||||||
|
|
||||||
|
import com.google.common.base.Strings;
|
||||||
import com.google.gerrit.pgm.util.ConsoleUI;
|
import com.google.gerrit.pgm.util.ConsoleUI;
|
||||||
import com.google.gerrit.pgm.util.Die;
|
import com.google.gerrit.pgm.util.Die;
|
||||||
import com.google.gerrit.server.config.SitePaths;
|
import com.google.gerrit.server.config.SitePaths;
|
||||||
@@ -26,6 +27,7 @@ import java.io.File;
|
|||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.FilenameFilter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
@@ -46,6 +48,7 @@ class LibraryDownloader {
|
|||||||
private String name;
|
private String name;
|
||||||
private String jarUrl;
|
private String jarUrl;
|
||||||
private String sha1;
|
private String sha1;
|
||||||
|
private String remove;
|
||||||
private File dst;
|
private File dst;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -68,6 +71,10 @@ class LibraryDownloader {
|
|||||||
this.sha1 = sha1;
|
this.sha1 = sha1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setRemove(String remove) {
|
||||||
|
this.remove = remove;
|
||||||
|
}
|
||||||
|
|
||||||
void downloadRequired() {
|
void downloadRequired() {
|
||||||
this.required = true;
|
this.required = true;
|
||||||
download();
|
download();
|
||||||
@@ -123,6 +130,7 @@ class LibraryDownloader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
removeStaleVersions();
|
||||||
doGetByHttp();
|
doGetByHttp();
|
||||||
verifyFileChecksum();
|
verifyFileChecksum();
|
||||||
} catch (IOException err) {
|
} catch (IOException err) {
|
||||||
@@ -158,6 +166,26 @@ class LibraryDownloader {
|
|||||||
reload.reload();
|
reload.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void removeStaleVersions() {
|
||||||
|
if (!Strings.isNullOrEmpty(remove)) {
|
||||||
|
String[] names = lib_dir.list(new FilenameFilter() {
|
||||||
|
@Override
|
||||||
|
public boolean accept(File dir, String name) {
|
||||||
|
return name.matches("^" + remove + "$");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (names != null) {
|
||||||
|
for (String old : names) {
|
||||||
|
String bak = "." + old + ".backup";
|
||||||
|
ui.message("Renaming %s to %s", old, bak);
|
||||||
|
if (!new File(lib_dir, old).renameTo(new File(lib_dir, bak))) {
|
||||||
|
throw new Die("cannot rename " + old);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void doGetByHttp() throws IOException {
|
private void doGetByHttp() throws IOException {
|
||||||
System.err.print("Downloading " + jarUrl + " ...");
|
System.err.print("Downloading " + jarUrl + " ...");
|
||||||
System.err.flush();
|
System.err.flush();
|
||||||
|
@@ -17,8 +17,10 @@
|
|||||||
name = Bouncy Castle Crypto v144
|
name = Bouncy Castle Crypto v144
|
||||||
url = http://www.bouncycastle.org/download/bcprov-jdk16-144.jar
|
url = http://www.bouncycastle.org/download/bcprov-jdk16-144.jar
|
||||||
sha1 = 6327a5f7a3dc45e0fd735adb5d08c5a74c05c20c
|
sha1 = 6327a5f7a3dc45e0fd735adb5d08c5a74c05c20c
|
||||||
|
remove = bcprov-.*[.]jar
|
||||||
|
|
||||||
[library "mysqlDriver"]
|
[library "mysqlDriver"]
|
||||||
name = MySQL Connector/J 5.1.21
|
name = MySQL Connector/J 5.1.21
|
||||||
url = http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar
|
url = http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar
|
||||||
sha1 = 7abbd19fc2e2d5b92c0895af8520f7fa30266be9
|
sha1 = 7abbd19fc2e2d5b92c0895af8520f7fa30266be9
|
||||||
|
remove = mysql-connector-java-.*[.]jar
|
||||||
|
Reference in New Issue
Block a user