Hi @kmacleod
Thank you very much for your response, as well as for publishing the official exclusion list.
I have not yet had time to digest the blog post, but with regards to switching from the embedded Crowd service to PersonService
or GroupService
:
I should start by mentioning that PersonService
, Expansion
and a bunch of their dependencies are still marked as @ExperimentalApi
, even in Confluence 8.6. I imagine that this is an oversight?
Assuming that this is the correct path forward, how would one perform a substring match based on partial user displayname or group name? The use case is a user picker or group picker. The Crowd equivalent is:
Query<User> query = QueryBuilder.queryFor(
User.class,
EntityDescriptor.user()
)
.with(
Restriction.on(UserTermKeys.DISPLAY_NAME)
.containing(searchTerm)
)
and
GroupQuery<Group> groupQuery = new GroupQuery<>(
Group.class,
GroupType.GROUP,
Combine.allOf(
Restriction.on(GroupTermKeys.NAME).containing(searchTerm),
Restriction.on(GroupTermKeys.ACTIVE).exactlyMatching(true)
),
0,
MAX_SEARCH_RESULTS
);