# Confluence 10.0 release EAP is available now

**URL:** <https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659>\
**Category:** Confluence Data Center Announcements\
**Tags:** eap, confluence-data-center\
**Created:** [February 10, 2025, 8:20am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659 "2025-02-10T08:20:17Z")\
**Posts on this page:** 20\
**Page:** 11

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [June 23, 2025, 8:36am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/205 "2025-06-23T08:36:43Z")

</div>

> [@PumpeCedric](#):
>
> Can you reproduce this or advice to fix this?

Add an OSGi import for the required package.

---

<div class="post-metadata">

**Author:** ![PumpeCedric](https://avatars.discourse-cdn.com/v4/letter/p/ee7513/32.png) [@PumpeCedric](https://community.developer.atlassian.com/u/PumpeCedric)\
**Post date:** [June 23, 2025, 8:42am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/206 "2025-06-23T08:42:20Z")

</div>

This is a test setting, so I am still unsure how I am supposed to fix this in my test? Could you please explain? 🙂

---

<div class="post-metadata">

**Author:** ![PumpeCedric](https://avatars.discourse-cdn.com/v4/letter/p/ee7513/32.png) [@PumpeCedric](https://community.developer.atlassian.com/u/PumpeCedric)\
**Post date:** [June 23, 2025, 9:41am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/207 "2025-06-23T09:41:11Z")

</div>

Using m119 the jakarta.mail dependency is provided by Confluence again - thank you!

However, when I try to OSGi-import one one the following:

```auto
com.sun.mail.imap,
com.sun.mail.pop3,
com.sun.mail.smtp,

```

I get the classic BundleException:  
`Unable to resolve plugin: missing requirement [plugin] osgi.wiring.package; (osgi.wiring.package=com.sun.mail.pop3) Unresolved requirements: [plugin] osgi.wiring.package; (osgi.wiring.package=com.sun.mail.pop3)]`

Can you please make these importable? 🙂

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [June 23, 2025, 10:01am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/208 "2025-06-23T10:01:46Z")

</div>

> [@PumpeCedric](#):
>
> This is a test setting

In that case, it seems like a generic Maven project dependency issue rather than any actual issue with the EAP.

> [@PumpeCedric](#):
>
> Can you please make these importable?

These libraries are no longer included with the product, please bundle them with your plugin if required.

---

<div class="post-metadata">

**Author:** ![HenryWoo](https://avatars.discourse-cdn.com/v4/letter/h/22d042/32.png) [@HenryWoo](https://community.developer.atlassian.com/u/HenryWoo)\
**Post date:** [June 23, 2025, 12:56pm UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/209 "2025-06-23T12:56:32Z")

</div>

@AndreasEbert, I understand that the Bandana is deprecated, I was just wondering which table is now storing the data to confirm that my implementation is correct.

Anyway, I found from the previous post that the data is now being stored in the `PLUGIN_SETTING` table. Thank you very much for your help.

---

<div class="post-metadata">

**Author:** ![PumpeCedric](https://avatars.discourse-cdn.com/v4/letter/p/ee7513/32.png) [@PumpeCedric](https://community.developer.atlassian.com/u/PumpeCedric)\
**Post date:** [June 23, 2025, 3:02pm UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/210 "2025-06-23T15:02:33Z")

</div>

@Kusal regarding the jakarta.mail imports ✔

regarding the error when calling `new com/atlassian/confluence/setup/settings/Settings.class` it seems that my maven repo was corrupted.  
Now I realize the error is a bit deeper: The AttachmentSecurityLevel.class uses com.atlassian.http.mime.DownloadPolicy  
However, this dependency is not provided by confluence. If I add the following dependency, its working fine:

```auto
            <groupId>com.atlassian.http</groupId>
            <artifactId>atlassian-http</artifactId>

```

Will this dependency also be provided by Confluence in a future milestone?

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [June 23, 2025, 3:17pm UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/211 "2025-06-23T15:17:20Z")

</div>

> [@PumpeCedric](#):
>
> Will this dependency also be provided by Confluence in a future milestone?

It won’t be made a transitive dependency of the main `confluence` artifact if that’s what you’re asking - specify it explicitly as you’ve done if you depend upon it.

If you’re asking whether it can be OSGi imported from your plugin, yes the packages within this artifact are already OSGi available.

---

<div class="post-metadata">

**Author:** ![PumpeCedric](https://avatars.discourse-cdn.com/v4/letter/p/ee7513/32.png) [@PumpeCedric](https://community.developer.atlassian.com/u/PumpeCedric)\
**Post date:** [June 23, 2025, 9:12pm UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/212 "2025-06-23T21:12:07Z")

</div>

Thank you, @Kusal  
Yes, I was wondering whether you would make this a transitive dependency of confluence. Thanks for the explanation. This answers all my questions then 🙂

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [June 26, 2025, 2:23am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/213 "2025-06-26T02:23:36Z")

</div>

We are aware of an issue installing plugins during development with AMPS 9.4.0 - please refrain from upgrading until further notice.

Please also note that in the next EAP we will be removing the `org.apache.commons.fileupload2` packages from OSGi availability. If you rely on these packages you should bundle (`compile` scope) the corresponding dependency instead.

---

<div class="post-metadata">

**Author:** ![EliasBrattliSorensen](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/eliasbrattlisorensen/32/41934_2.png) [@EliasBrattliSorensen](https://community.developer.atlassian.com/u/EliasBrattliSorensen)\
**Post date:** [June 27, 2025, 7:33am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/214 "2025-06-27T07:33:44Z")

</div>

Hi,

We received this error upon crowd setup from Confluence (m-96). It’s a custom crowd directory. I just wanted to see if this error is familiar and perhaps fixed in newer versions? I wondered if this has something to do with bundled crowd version or if there is another explanation. Thanks!

 ![image](https://global.discourse-cdn.com/atlassiandeveloper/original/3X/a/6/a6ec4ffa368b4c926a6f2bc5c3c31cc7e98839a5.png)

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [June 27, 2025, 8:25am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/215 "2025-06-27T08:25:48Z")

</div>

Hi @EliasBrattliSorensen  
The error seems to suggest the response from the directory is malformed. Have you confirmed this custom directory works with other Confluence versions? If so, could you also confirm whether the problem is still reproducible with the latest Confluence EAP?

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [June 30, 2025, 4:22am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/216 "2025-06-30T04:22:03Z")

</div>

> [@Kusal](#):
>
> We are aware of an issue installing plugins during development with AMPS 9.4.0 - please refrain from upgrading until further notice.

AMPS 9.4.1 is now available with a fix.

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [July 3, 2025, 9:32am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/217 "2025-07-03T09:32:26Z")

</div>

Hi all,

We’re wrapping up the EAP program for Confluence DC 10.0, with the beta release scheduled in the coming days. Your valuable feedback throughout this process has been instrumental in improving the release quality and ensuring compatibility with marketplace plugins. Please continue to report any new issues you discover in the upcoming beta release thread.

On a related note, I’m pleased to announce the release of [Jakarta Adapters](https://github.com/atlassian-labs/jakarta-adapters) v0.2.5. We’ve lowered the minimum Java version requirement to Java 11, which enables its use in potential cross-major compatible plugin JARs. Special thanks to @jens for contributing this improvement!

Just to reiterate our stance on cross-major plugin compatibility: while our official recommendation is to publish separate major versions of your plugin for each major product version (and update your marketplace compatibility matrix accordingly), you’re welcome to pursue cross-major plugin JAR compatibility if you prefer. We won’t provide technical support for this approach, but we know several plugins have successfully implemented it.

As a helpful tip, remember you can restrict plugin modules by application version using the following syntax:

```xml
<rest key="rest" path="/myplugin">
  <restrict application="confluence" version="[10,)"/>
  <package>com.atlassian.marketplace.rest.jakarta</package>
</rest>

```

---

<div class="post-metadata">

**Author:** ![jens](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/jens/32/42967_2.png) [@jens](https://community.developer.atlassian.com/u/jens)\
**Post date:** [July 3, 2025, 2:02pm UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/218 "2025-07-03T14:02:02Z")

</div>

Hi @Kusal

I was wondering what Atlassian’s plans are for the `ContentPropertyManager` (not `ConfluencePropertySetManager`). In Confluence 10 it seems you’ve just reduced the API by removing the accessors for text properties but otherwise it seems to remain fully functional.  
In contrast to that the `ConfluencePropertySetManager` has been announced to be read-only in 10.x and scheduled for removal in Confluence 11.

I understand that the overall goal here is to get rid of the OS propertyset infrastructure eventually.

Some of our apps store a lot of properties in this storage (10-15 per Confluence page). If you remove OS propertyset in 11.0, will you also automatically migrate the existing data to a new storage, similar to what you have done with Bandana?

We also use the `PropertySet.getKeys()` API for listing property keys in scenarios where they are dynamic and we can’t hardcode them. It doesn’t seem like there is any replacement API for this yet, but we’d need it latest when the PropertySet APIs are finally removed.  
Wouldn’t it therefore make sense to introduce something like `ContentPropertyManager.getPropertyKeys(ceo)` in Confluence 10.0 so that apps can switch as quickly as possible to only the `ContentPropertyManager` API? Similar to what you’ve done in the Bandana-\>PluginSettings transition, where you’ve added a similar `getKeys` method.

Even if we were to later on manually migrate properties in a plugin upgrade task to a different storage, we’d also need such a key-iterating API.  
Tbh. I really hope it doesn’t come to this, because a `PluginUpgradeTask` migrating properties of millions of pages (I know of several such big instances) using the current high-level APIs will run a very long time …

Thanks,  
Jens

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [July 4, 2025, 3:32am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/219 "2025-07-04T03:32:17Z")

</div>

Hi @jens

Great questions.

`ContentPropertyManager` and `ConfluencePropertySetManager` were both backed by the PropertySet library. However, the latter exposed the PropertySet APIs directly, whereas the former kept them as an implementation detail.

While our intention is indeed to remove the PropertySet library entirely, the database storage format it uses isn’t problematic in itself (unlike Bandana which uses XML).

From Confluence 9.4 onwards, `ContentPropertyManager` is no longer backed by the PropertySet library but continues to use the same database table - we now interact with it directly and have unified the `String` and `Text` types for simplicity. We will remove `ConfluencePropertySetManager` alongside the PropertySet library in 11.0, but `String`/`Text` properties will remain accessible via `ContentPropertyManager`. No data migration will be required.

Regarding the suggestion to add a `#getKeys` API - this is a sensible addition, but unfortunately it’s too late to commit to this for 10.0. I’ve added it to our backlog to implement prior to 11.0.

---

<div class="post-metadata">

**Author:** ![jens](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/jens/32/42967_2.png) [@jens](https://community.developer.atlassian.com/u/jens)\
**Post date:** [July 4, 2025, 7:04am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/220 "2025-07-04T07:04:49Z")

</div>

> [@Kusal](#):
>
> We will remove `ConfluencePropertySetManager` alongside the PropertySet library in 11.0, but `String`/`Text` properties will remain accessible via `ContentPropertyManager`. No data migration will be required.
> 
> Regarding the suggestion to add a `#getKeys` API - this is a sensible addition, but unfortunately it’s too late to commit to this for 10.0. I’ve added it to our backlog to implement prior to 11.0.

Thanks, this is good news, looking forward to the new API in Confluence 11 then 🙂

One more question: Is the modified `ContentPropertyManager` still using the same cache (wrt. the cache management screen) as in previous versions? That’s important to know for our support folks, because we often have to instruct customers to tune their content property caches.

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [July 4, 2025, 7:19am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/221 "2025-07-04T07:19:19Z")

</div>

> [@jens](#):
>
> Is the modified `ContentPropertyManager` still using the same cache (wrt. the cache management screen) as in previous versions?

Yes, it is still using the ‘Content Properties’ cache in the UI (although the internal cache identifier has changed).

---

<div class="post-metadata">

**Author:** ![SashaKokot](https://avatars.discourse-cdn.com/v4/letter/s/838e76/32.png) [@SashaKokot](https://community.developer.atlassian.com/u/SashaKokot)\
**Post date:** [July 7, 2025, 7:21am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/222 "2025-07-07T07:21:43Z")

</div>

Hello,

While injecting `com.atlassian.confluence.themes.persistence.PersistentDecoratorDao` in one of our classes, we ran into this exception:

```auto
 org.eclipse.gemini.blueprint.service.ServiceUnavailableException: service matching filter=[(objectClass=com.atlassian.confluence.themes.persistence.PersistentDecoratorDao)] unavailable
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:405)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223)

```

Is this service no longer provided?

Advices on how to fix this would be appreciated.

Thank you,  
Sasha

---

<div class="post-metadata">

**Author:** ![GeorgSchmidlLA](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/georgschmidlla/32/43527_2.png) [@GeorgSchmidlLA](https://community.developer.atlassian.com/u/GeorgSchmidlLA)\
**Post date:** [July 8, 2025, 3:39pm UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/223 "2025-07-08T15:39:05Z")

</div>

@Kusal Will there be an update to [https://mvnrepository.com/artifact/com.atlassian.plugins/atlassian-plugins-osgi-javaconfig](https://mvnrepository.com/artifact/com.atlassian.plugins/atlassian-plugins-osgi-javaconfig) that is not using javax.annotation?

---

<div class="post-metadata">

**Author:** ![Kusal](https://sea1.discourse-cdn.com/atlassiandeveloper/user_avatar/community.developer.atlassian.com/kusal/32/46420_2.png) [@Kusal](https://community.developer.atlassian.com/u/Kusal)\
**Post date:** [July 9, 2025, 3:21am UTC](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659/224 "2025-07-09T03:21:27Z")

</div>

> [@SashaKokot](#):
>
> Is this service no longer provided?

No, please use the `com.atlassian.confluence.themes.CustomLayoutManager` instead.

> [@GeorgSchmidlLA](#):
>
> Will there be an update to atlassian-plugins-osgi-javaconfig that is not using javax.annotation?

Please explicitly exclude those packages from your plugin `<Import-Package>` instructions for the time being with: `!javax.annotation.*,`

[Previous page](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659.md?page=10)

[Next page](https://community.developer.atlassian.com/t/confluence-10-0-release-eap-is-available-now/88659.md?page=12)
