From 5a9ba240bdddd2b0873aa8a1c3794b272c7e7d57 Mon Sep 17 00:00:00 2001 From: Dariusz Luksza Date: Tue, 9 Sep 2014 11:36:51 +0200 Subject: [PATCH] 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 --- .../SiteLibraryBasedDataSourceProvider.java | 30 +---------- .../pgm/util/SiteLibraryLoaderUtil.java | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+), 29 deletions(-) create mode 100644 gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryLoaderUtil.java diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryBasedDataSourceProvider.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryBasedDataSourceProvider.java index 0614b5319c..f5a7fb046e 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryBasedDataSourceProvider.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryBasedDataSourceProvider.java @@ -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() { - @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); - } - } } diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryLoaderUtil.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryLoaderUtil.java new file mode 100644 index 0000000000..b18a76934b --- /dev/null +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/SiteLibraryLoaderUtil.java @@ -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() { + @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() { + } +}