aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-ce
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2017-05-10 16:00:35 +0200
committerSimon Brandhof <simon.brandhof@sonarsource.com>2017-05-10 23:08:31 +0200
commit10e686608dd3c963ec88dfd7968424331330d584 (patch)
tree3997e3c94a41eaff5c5e42189fda54e2c61cd10f /server/sonar-ce
parente00d1c11e359c75025fdd85aba7c4df4b22737c9 (diff)
downloadsonarqube-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.java6
-rw-r--r--server/sonar-ce/src/test/java/org/sonar/ce/user/CeUserSessionTest.java22
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"));
}
}