Extract site library loading code into utility class
Extract common code of loading jars from site lib directory into separate utility class. Same code will be used for loading SecureStore-lib implementation. Change-Id: Idb3f837167ffc4d6784a1b960b57a454ceb692f2 Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
This commit is contained in:
@@ -24,9 +24,6 @@ import com.google.inject.Singleton;
|
||||
import org.eclipse.jgit.lib.Config;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@@ -47,34 +44,9 @@ public class SiteLibraryBasedDataSourceProvider extends DataSourceProvider {
|
||||
|
||||
public synchronized DataSource get() {
|
||||
if (!init) {
|
||||
loadSiteLib();
|
||||
SiteLibraryLoaderUtil.loadSiteLib(libdir);
|
||||
init = true;
|
||||
}
|
||||
return super.get();
|
||||
}
|
||||
|
||||
private void loadSiteLib() {
|
||||
File[] jars = libdir.listFiles(new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File path) {
|
||||
String name = path.getName();
|
||||
return (name.endsWith(".jar") || name.endsWith(".zip"))
|
||||
&& path.isFile();
|
||||
}
|
||||
});
|
||||
if (jars != null && 0 < jars.length) {
|
||||
Arrays.sort(jars, new Comparator<File>() {
|
||||
@Override
|
||||
public int compare(File a, File b) {
|
||||
// Sort by reverse last-modified time so newer JARs are first.
|
||||
int cmp = Long.compare(b.lastModified(), a.lastModified());
|
||||
if (cmp != 0) {
|
||||
return cmp;
|
||||
}
|
||||
return a.getName().compareTo(b.getName());
|
||||
}
|
||||
});
|
||||
IoUtil.loadJARs(jars);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
// Copyright (C) 2014 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package com.google.gerrit.pgm.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
|
||||
public final class SiteLibraryLoaderUtil {
|
||||
|
||||
public static void loadSiteLib(File libdir) {
|
||||
File[] jars = libdir.listFiles(new FileFilter() {
|
||||
@Override
|
||||
public boolean accept(File path) {
|
||||
String name = path.getName();
|
||||
return (name.endsWith(".jar") || name.endsWith(".zip"))
|
||||
&& path.isFile();
|
||||
}
|
||||
});
|
||||
if (jars != null && 0 < jars.length) {
|
||||
Arrays.sort(jars, new Comparator<File>() {
|
||||
@Override
|
||||
public int compare(File a, File b) {
|
||||
// Sort by reverse last-modified time so newer JARs are first.
|
||||
int cmp = Long.compare(b.lastModified(), a.lastModified());
|
||||
if (cmp != 0) {
|
||||
return cmp;
|
||||
}
|
||||
return a.getName().compareTo(b.getName());
|
||||
}
|
||||
});
|
||||
IoUtil.loadJARs(jars);
|
||||
}
|
||||
}
|
||||
|
||||
private SiteLibraryLoaderUtil() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user