diff options
author | Simon Brandhof <simon.brandhof@sonarsource.com> | 2017-05-10 16:00:35 +0200 |
---|---|---|
committer | Simon Brandhof <simon.brandhof@sonarsource.com> | 2017-05-10 23:08:31 +0200 |
commit | 10e686608dd3c963ec88dfd7968424331330d584 (patch) | |
tree | 3997e3c94a41eaff5c5e42189fda54e2c61cd10f /server/sonar-ce | |
parent | e00d1c11e359c75025fdd85aba7c4df4b22737c9 (diff) | |
download | sonarqube-10e686608dd3c963ec88dfd7968424331330d584.tar.gz sonarqube-10e686608dd3c963ec88dfd7968424331330d584.zip |
Add method UserSession#keepAuthorizedComponents()
to be able to fix authorization performance hotspot
Diffstat (limited to 'server/sonar-ce')
-rw-r--r-- | server/sonar-ce/src/main/java/org/sonar/ce/user/CeUserSession.java | 6 | ||||
-rw-r--r-- | server/sonar-ce/src/test/java/org/sonar/ce/user/CeUserSessionTest.java | 22 |
2 files changed, 12 insertions, 16 deletions
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/user/CeUserSession.java b/server/sonar-ce/src/main/java/org/sonar/ce/user/CeUserSession.java index 77c78ce31c9..36d4c8c2928 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/user/CeUserSession.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/user/CeUserSession.java @@ -20,6 +20,7 @@ package org.sonar.ce.user; import java.util.Collection; +import java.util.List; import org.sonar.db.component.ComponentDto; import org.sonar.db.organization.OrganizationDto; import org.sonar.db.user.GroupDto; @@ -121,6 +122,11 @@ public class CeUserSession implements UserSession { throw notImplemented(); } + @Override + public List<ComponentDto> keepAuthorizedComponents(String permission, Collection<ComponentDto> components) { + throw notImplemented(); + } + private static RuntimeException notImplemented() { throw new UnsupportedOperationException(UOE_MESSAGE); } diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/user/CeUserSessionTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/user/CeUserSessionTest.java index fc9063f5cca..ed75e2a1e25 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/user/CeUserSessionTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/user/CeUserSessionTest.java @@ -19,21 +19,20 @@ */ package org.sonar.ce.user; -import com.google.common.base.Predicate; import com.tngtech.java.junit.dataprovider.DataProvider; import com.tngtech.java.junit.dataprovider.DataProviderRunner; import com.tngtech.java.junit.dataprovider.UseDataProvider; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; -import static com.google.common.collect.FluentIterable.from; -import static java.util.Arrays.asList; import static org.sonar.test.ExceptionCauseMatcher.hasType; @RunWith(DataProviderRunner.class) @@ -45,8 +44,9 @@ public class CeUserSessionTest { @DataProvider public static Object[][] ceUserSessionPublicMethods() { - List<Method> declaredMethods = from(asList(CeUserSession.class.getDeclaredMethods())) - .filter(PublicMethodPredicate.INSTANCE).toList(); + List<Method> declaredMethods = Arrays.stream(CeUserSession.class.getDeclaredMethods()) + .filter(m -> Modifier.isPublic(m.getModifiers())) + .collect(Collectors.toList()); Object[][] res = new Object[declaredMethods.size()][1]; int i = 0; for (Method declaredMethod : declaredMethods) { @@ -82,16 +82,6 @@ public class CeUserSessionTest { expectedException.expect(InvocationTargetException.class); expectedException.expectCause( hasType(UnsupportedOperationException.class) - .andMessage("UserSession must not be used from within the Compute Engine") - ); - } - - private enum PublicMethodPredicate implements Predicate<Method> { - INSTANCE; - - @Override - public boolean apply(Method input) { - return Modifier.isPublic(input.getModifiers()); - } + .andMessage("UserSession must not be used from within the Compute Engine")); } } |