Merge topic 'secure-store-lib' * changes: Extract site library loading code into utility class Extend SecureStore interface
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 0614b53..f5a7fb0 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 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 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); - } - } }
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 0000000..b18a769 --- /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<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() { + } +}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java b/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java index e0e8237..9a07354 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/securestore/DefaultSecureStore.java
@@ -15,7 +15,6 @@ package com.google.gerrit.server.securestore; import com.google.gerrit.common.FileUtil; -import com.google.gerrit.extensions.annotations.Export; import com.google.gerrit.server.config.SitePaths; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -27,12 +26,10 @@ import java.io.File; import java.io.IOException; +import java.util.List; @Singleton -@Export(DefaultSecureStore.NAME) public class DefaultSecureStore implements SecureStore { - public static final String NAME = "default"; - private final FileBasedConfig sec; @Inject @@ -52,6 +49,11 @@ } @Override + public String[] getList(String section, String subsection, String name) { + return sec.getStringList(section, subsection, name); + } + + @Override public void set(String section, String subsection, String name, String value) { if (value != null) { sec.setString(section, subsection, name, value); @@ -62,6 +64,17 @@ } @Override + public void setList(String section, String subsection, String name, + List<String> values) { + if (values != null) { + sec.setStringList(section, subsection, name, values); + } else { + sec.unset(section, subsection, name); + } + save(); + } + + @Override public void unset(String section, String subsection, String name) { sec.unset(section, subsection, name); save();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/securestore/SecureStore.java b/gerrit-server/src/main/java/com/google/gerrit/server/securestore/SecureStore.java index 3fe00f4..4c54cc8 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/securestore/SecureStore.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/securestore/SecureStore.java
@@ -16,12 +16,18 @@ import com.google.gerrit.extensions.annotations.ExtensionPoint; +import java.util.List; + @ExtensionPoint public interface SecureStore { String get(String section, String subsection, String name); + String[] getList(String section, String subsection, String name); + void set(String section, String subsection, String name, String value); + void setList(String section, String subsection, String name, List<String> values); + void unset(String section, String subsection, String name); }