Confluence 8.8 release EAP available now

Just to add more detail to my previous questions about com.atlassian.webresource.api.data.WebResourceDataProvider (maybe @mkemp or @MalathiVangalapati or others can help):

Is there a replacement so that we can actually run any plugin that uses this interface in the current Confluence 9.0.0-m07?

Anything that uses a <data> element in a <web-resource> needs to implement this interface:

import com.atlassian.json.marshal.Jsonable;
import com.google.common.base.Supplier;

/** @deprecated */
public interface WebResourceDataProvider extends Supplier<Jsonable> {
}

But Confluence no longer exports the com.atlassian.json.marshal package (which I flagged two months ago). Furthermore, since apps now have to bundle the Guava dependency, there will be a class conflict on the Supplier superclass, even if we were able to access the Jsonable class.

This means that many <web-resource>s are broken and I would love to know what the replacement should be.

(I tried looking in various atlassian-bundled-plugins to see how Atlassian’s own code does it, but it looks like they use the old interface…and they have some sort of cheat code to allow them to access OSGi packages that are prohibited for third-party plugins.)

2 Likes