diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginConditionFailedException.java b/scm-core/src/main/java/sonia/scm/plugin/PluginConditionFailedException.java index c127d1cf4d..08b3dea9fc 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginConditionFailedException.java +++ b/scm-core/src/main/java/sonia/scm/plugin/PluginConditionFailedException.java @@ -86,5 +86,5 @@ public final class PluginConditionFailedException extends PluginException //~--- fields --------------------------------------------------------------- /** Field description */ - private PluginCondition condition; + private final PluginCondition condition; } diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginFilter.java b/scm-core/src/main/java/sonia/scm/plugin/PluginFilter.java deleted file mode 100644 index 02977b32d5..0000000000 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginFilter.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Copyright (c) 2010, Sebastian Sdorra - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of SCM-Manager; nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * http://bitbucket.org/sdorra/scm-manager - * - */ - - - -package sonia.scm.plugin; - -/** - * - * @author Sebastian Sdorra - */ -public interface PluginFilter -{ - - /** - * Method description - * - * - * @param plugin - * - * @return - */ - public boolean accept(PluginInformation plugin); -} diff --git a/scm-core/src/main/java/sonia/scm/plugin/PluginManager.java b/scm-core/src/main/java/sonia/scm/plugin/PluginManager.java index d1bf4c62bf..b1ec502fc4 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/PluginManager.java +++ b/scm-core/src/main/java/sonia/scm/plugin/PluginManager.java @@ -35,6 +35,7 @@ package sonia.scm.plugin; //~--- JDK imports ------------------------------------------------------------ +import com.google.common.base.Predicate; import java.io.IOException; import java.io.InputStream; @@ -108,7 +109,7 @@ public interface PluginManager * * @return */ - public Collection get(PluginFilter filter); + public Collection get(Predicate filter); /** * Method description diff --git a/scm-core/src/main/java/sonia/scm/plugin/StatePluginFilter.java b/scm-core/src/main/java/sonia/scm/plugin/StatePluginPredicate.java similarity index 86% rename from scm-core/src/main/java/sonia/scm/plugin/StatePluginFilter.java rename to scm-core/src/main/java/sonia/scm/plugin/StatePluginPredicate.java index a92dfe6b14..ef7836f74a 100644 --- a/scm-core/src/main/java/sonia/scm/plugin/StatePluginFilter.java +++ b/scm-core/src/main/java/sonia/scm/plugin/StatePluginPredicate.java @@ -33,11 +33,15 @@ package sonia.scm.plugin; +//~--- non-JDK imports -------------------------------------------------------- + +import com.google.common.base.Predicate; + /** * * @author Sebastian Sdorra */ -public class StatePluginFilter implements PluginFilter +public class StatePluginPredicate implements Predicate { /** @@ -46,7 +50,7 @@ public class StatePluginFilter implements PluginFilter * * @param state */ - public StatePluginFilter(PluginState state) + public StatePluginPredicate(PluginState state) { this.state = state; } @@ -62,7 +66,7 @@ public class StatePluginFilter implements PluginFilter * @return */ @Override - public boolean accept(PluginInformation plugin) + public boolean apply(PluginInformation plugin) { return state == plugin.getState(); } @@ -70,5 +74,5 @@ public class StatePluginFilter implements PluginFilter //~--- fields --------------------------------------------------------------- /** Field description */ - private PluginState state; + private final PluginState state; } diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/DefaultPluginBackend.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/DefaultPluginBackend.java index 0e829b8594..80a1b1e4e7 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/DefaultPluginBackend.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/DefaultPluginBackend.java @@ -35,6 +35,7 @@ package sonia.scm.plugin; //~--- non-JDK imports -------------------------------------------------------- +import com.google.common.base.Predicate; import com.google.inject.Inject; import com.google.inject.Singleton; @@ -92,8 +93,6 @@ public class DefaultPluginBackend extends AbstractPluginBackend * Constructs ... * * - * - * @param baseDirectory * @param configuration */ @Inject @@ -221,19 +220,19 @@ public class DefaultPluginBackend extends AbstractPluginBackend * Method description * * - * @param filter + * @param predicate * * @return */ @Override - public List getPlugins(PluginFilter filter) + public List getPlugins(Predicate predicate) { List filteredPlugins = new ArrayList(); for (PluginInformation plugin : pluginStore) { - if (filter.accept(plugin)) + if (predicate.apply(plugin)) { filteredPlugins.add(plugin); } diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginBackend.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginBackend.java index ff11343176..6ca690ddaf 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginBackend.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginBackend.java @@ -33,6 +33,10 @@ package sonia.scm.plugin; +//~--- non-JDK imports -------------------------------------------------------- + +import com.google.common.base.Predicate; + //~--- JDK imports ------------------------------------------------------------ import java.io.File; @@ -53,7 +57,7 @@ public interface PluginBackend * * * @param listener - * + * * @since 2.0.0 */ public void addListener(PluginBackendListener listener); @@ -63,7 +67,7 @@ public interface PluginBackend * * * @param listeners - * + * * @since 2.0.0 */ public void addListeners(Collection listeners); @@ -107,7 +111,7 @@ public interface PluginBackend * * * @param listener - * + * * @since 2.0.0 */ public void removeListener(PluginBackendListener listener); @@ -133,12 +137,12 @@ public interface PluginBackend /** * Method description * - * - * @param filter + * @param predicate * * @return */ - public List getPlugins(PluginFilter filter); + public List getPlugins( + Predicate predicate); /** * Method description diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java index 4d536e28c2..63d5ea1757 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/PluginUtil.java @@ -35,6 +35,7 @@ package sonia.scm.plugin; //~--- non-JDK imports -------------------------------------------------------- +import com.google.common.base.Predicate; import sonia.scm.util.LinkTextParser; import sonia.scm.util.Util; @@ -191,10 +192,10 @@ public final class PluginUtil PluginBackend backend, final String groupId, final String artifactId) { List pluginVersions = - backend.getPlugins(new PluginFilter() + backend.getPlugins(new Predicate() { @Override - public boolean accept(PluginInformation plugin) + public boolean apply(PluginInformation plugin) { return groupId.equals(plugin.getGroupId()) && artifactId.equals(plugin.getArtifactId()); diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/DefaultPluginFilter.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/DefaultPluginPredicate.java similarity index 92% rename from scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/DefaultPluginFilter.java rename to scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/DefaultPluginPredicate.java index e2b05079cc..8b1dd4ee8c 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/DefaultPluginFilter.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/DefaultPluginPredicate.java @@ -35,15 +35,15 @@ package sonia.scm.plugin.rest.api; //~--- non-JDK imports -------------------------------------------------------- +import com.google.common.base.Predicate; import sonia.scm.plugin.PluginCondition; -import sonia.scm.plugin.PluginFilter; import sonia.scm.plugin.PluginInformation; /** * * @author Sebastian Sdorra */ -public class DefaultPluginFilter implements PluginFilter +public class DefaultPluginPredicate implements Predicate { /** Field description */ @@ -60,7 +60,7 @@ public class DefaultPluginFilter implements PluginFilter * @param arch * @param snapshot */ - public DefaultPluginFilter(String version, String os, String arch, + public DefaultPluginPredicate(String version, String os, String arch, boolean snapshot) { this.version = version; @@ -80,7 +80,7 @@ public class DefaultPluginFilter implements PluginFilter * @return */ @Override - public boolean accept(PluginInformation plugin) + public boolean apply(PluginInformation plugin) { PluginCondition condition = plugin.getCondition(); diff --git a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/PluginResource.java b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/PluginResource.java index 94e4043c74..86a95eed50 100644 --- a/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/PluginResource.java +++ b/scm-plugin-backend/src/main/java/sonia/scm/plugin/rest/api/PluginResource.java @@ -174,7 +174,7 @@ public class PluginResource implements PluginBackendListener } List plugins = - backend.getPlugins(new DefaultPluginFilter(version, os, arch, + backend.getPlugins(new DefaultPluginPredicate(version, os, arch, snapshot)); pc = new PluginCenter(); diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java index ab8e6c6033..5c9ea468d3 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/PluginResource.java @@ -46,7 +46,7 @@ import org.slf4j.LoggerFactory; import sonia.scm.api.rest.RestActionResult; import sonia.scm.api.rest.RestActionUploadResult; -import sonia.scm.plugin.OverviewPluginFilter; +import sonia.scm.plugin.OverviewPluginPredicate; import sonia.scm.plugin.PluginConditionFailedException; import sonia.scm.plugin.PluginInformation; import sonia.scm.plugin.PluginInformationComparator; @@ -331,7 +331,7 @@ public class PluginResource { //J- List plugins = Lists.newArrayList( - pluginManager.get(OverviewPluginFilter.INSTANCE) + pluginManager.get(OverviewPluginPredicate.INSTANCE) ); //J+ diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java b/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java index 7de5397a23..f719ebecfc 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/AetherPluginHandler.java @@ -317,7 +317,7 @@ public class AetherPluginHandler { List dependencies = Lists.newArrayList(); Collection installed = - pluginManager.get(new StatePluginFilter(PluginState.INSTALLED)); + pluginManager.get(new StatePluginPredicate(PluginState.INSTALLED)); if (installed != null) { diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java index 9191abe167..7f60494263 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/DefaultPluginManager.java @@ -35,9 +35,9 @@ package sonia.scm.plugin; //~--- non-JDK imports -------------------------------------------------------- -import sonia.scm.version.Version; import com.github.legman.Subscribe; +import com.google.common.base.Predicate; import com.google.common.collect.Sets; import com.google.common.io.Files; import com.google.inject.Inject; @@ -61,6 +61,7 @@ import sonia.scm.util.IOUtil; import sonia.scm.util.SecurityUtil; import sonia.scm.util.SystemUtil; import sonia.scm.util.Util; +import sonia.scm.version.Version; //~--- JDK imports ------------------------------------------------------------ @@ -106,8 +107,8 @@ public class DefaultPluginManager implements PluginManager private static final boolean REMOTE_PLUGINS_ENABLED = false; /** Field description */ - public static final PluginFilter FILTER_UPDATES = - new StatePluginFilter(PluginState.UPDATE_AVAILABLE); + public static final Predicate FILTER_UPDATES = + new StatePluginPredicate(PluginState.UPDATE_AVAILABLE); //~--- constructors --------------------------------------------------------- @@ -384,20 +385,20 @@ public class DefaultPluginManager implements PluginManager * Method description * * - * @param filter + * @param predicate * * @return */ @Override - public Set get(PluginFilter filter) + public Set get(Predicate predicate) { - AssertUtil.assertIsNotNull(filter); + AssertUtil.assertIsNotNull(predicate); SecurityUtil.assertIsAdmin(); Set infoSet = new HashSet(); - filter(infoSet, getInstalled(), filter); - filter(infoSet, getPluginCenter().getPlugins(), filter); + filter(infoSet, getInstalled(), predicate); + filter(infoSet, getPluginCenter().getPlugins(), predicate); return infoSet; } @@ -514,14 +515,15 @@ public class DefaultPluginManager implements PluginManager * * @param target * @param source - * @param filter + * @param predicate */ private void filter(Set target, - Collection source, PluginFilter filter) + Collection source, + Predicate predicate) { for (PluginInformation info : source) { - if (filter.accept(info)) + if (predicate.apply(info)) { target.add(info); } diff --git a/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java b/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginPredicate.java similarity index 88% rename from scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java rename to scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginPredicate.java index bd9c8d9732..b242813e0d 100644 --- a/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginFilter.java +++ b/scm-webapp/src/main/java/sonia/scm/plugin/OverviewPluginPredicate.java @@ -33,16 +33,18 @@ package sonia.scm.plugin; +import com.google.common.base.Predicate; + /** * * @author Sebastian Sdorra */ -public class OverviewPluginFilter implements PluginFilter +public class OverviewPluginPredicate implements Predicate { /** Field description */ - public static final OverviewPluginFilter INSTANCE = - new OverviewPluginFilter(); + public static final OverviewPluginPredicate INSTANCE = + new OverviewPluginPredicate(); //~--- methods -------------------------------------------------------------- @@ -55,7 +57,7 @@ public class OverviewPluginFilter implements PluginFilter * @return */ @Override - public boolean accept(PluginInformation plugin) + public boolean apply(PluginInformation plugin) { return plugin.getState() != PluginState.NEWER_VERSION_INSTALLED; }