2121import java .util .Enumeration ;
2222import java .util .HashSet ;
2323import java .util .Iterator ;
24+ import java .util .LinkedHashMap ;
2425import java .util .LinkedHashSet ;
2526import java .util .Map ;
2627import java .util .Set ;
2728import java .util .function .Predicate ;
2829
2930import org .apache .jackrabbit .guava .common .collect .Iterables ;
3031import org .apache .jackrabbit .guava .common .collect .Iterators ;
31- import org .apache .jackrabbit .guava .common .collect .Maps ;
32-
3332import org .apache .jackrabbit .api .security .principal .GroupPrincipal ;
3433import org .apache .jackrabbit .api .security .principal .ItemBasedPrincipal ;
3534import org .apache .jackrabbit .api .security .principal .PrincipalManager ;
@@ -55,18 +54,20 @@ public TestPrincipalProvider(boolean exposesEveryone) {
5554
5655 public TestPrincipalProvider (String ... principalNames ) {
5756 this .exposesEveryone = true ;
58- this .principals = Maps .toMap (CollectionUtils .toLinkedSet (Arrays .asList (principalNames )), input -> new ItemBasedPrincipal () {
59- @ NotNull
60- @ Override
61- public String getPath () {
62- return "/path/to/principal/" + input ;
63- }
64-
65- @ Override
66- public String getName () {
67- return input ;
68- }
69- });
57+ this .principals = CollectionUtils .toLinkedSet (Arrays .asList (principalNames ))
58+ .stream () // using LinkedHashMap to maintain the order of LinkedSet
59+ .collect (LinkedHashMap ::new , (m , e )-> m .put (e , new ItemBasedPrincipal () {
60+ @ NotNull
61+ @ Override
62+ public String getPath () {
63+ return "/path/to/principal/" + e ;
64+ }
65+
66+ @ Override
67+ public String getName () {
68+ return e ;
69+ }
70+ }), LinkedHashMap ::putAll );
7071 }
7172
7273 public Iterable <Principal > getTestPrincipals () {
0 commit comments