Gobliins
Gobliins

Reputation: 4026

Confluence 8.0 plugin, searchFilter deprecated / removed

With Confluence Version 8.0 the:

import com.atlassian.confluence.search.v2.searchfilter.SiteSearchPermissionsSearchFilter;

has been removed and the docs say:

com.atlassian.confluence.search.v2.searchfilter (use the equivalent class that extends SearchQuery in 8.0)

Which is now the right way to create a searchQuery / searchFilter?

Current (Deprecated) Code:

import com.atlassian.confluence.search.v2.query.BooleanQuery;
import com.atlassian.confluence.search.v2.searchfilter.SiteSearchPermissionsSearchFilter;

....

ContentSearch search = new ContentSearch(BooleanQuery.composeAndQuery(allQueries), RELEVANCE_SORT, SiteSearchPermissionsSearchFilter.getInstance(), 0, 1);

How can this be done with the Confluence 8.0 API?

Edit: We are developing a Plugin and the corresponding 8.0 classes from the docs SiteSearchPermissionsSearchFilter, SiteSearchPermissionsQuery are marked as Internal (not for plugin use)

Upvotes: 1

Views: 277

Answers (2)

Adrian
Adrian

Reputation: 2388

This answer worked for me (so no credits for me)

Basic code:

    private final SiteSearchPermissionsQueryFactory siteSearchPermissionsQueryFactory;


    public YourService(@ComponentImport SiteSearchPermissionsQueryFactory siteSearchPermissionsQueryFactory) {
        this.siteSearchPermissionsQueryFactory = siteSearchPermissionsQueryFactory;
    }

    ...
 
    Set<SearchQuery> queries = new HashSet<>();

    queries.add(siteSearchPermissionsQueryFactory.create());

    SearchQuery query = BooleanQuery.composeAndQuery(queries);

    ...

Upvotes: 0

Krzysztof Bogdan
Krzysztof Bogdan

Reputation: 963

I think, here is the best answer provided by a Atlassian staff member: https://community.developer.atlassian.com/t/broken-java-api-in-confluence-8-eap-contentsearch-getbyid-etc/62907/8

Summary: SearchFilter is replaced with SearchQuery and SiteSearchPermissionsSearchFilter by SiteSearchPermissionsQuery.

Upvotes: 0

Related Questions