Confluence 8.0 plugin, searchFilter deprecated / removed

138 Views Asked by At

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)

2

There are 2 best solutions below

3
Krzysztof Bogdan On

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.

0
Adrian On

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);

    ...