Confluence 10.0 release is available now

We have found an incompatibility causing our app to cease to function.

We haven’t discovered this issue before, because it does or does not appear depending on the jar names, which were slightly different in our beta test environment. We assume that the jar names change the order in which the jars are loaded.

The issue causes the email protocol providers from our app not to be used although they are loaded. It may be an issue that is caused the Eclipse Angus mail library used in Confluence 10.

We’ve filed a ticket under ECOHELP-79631, but also wanted to make @Kusal and other partners aware of it.

The funny thing is, if we rename the org.eclipse.angus_angus-mail-2.0.4.jar to com.sun.mail…., it works again (but that does not feel like a reliable solution).

We’ve been able to track down the issue to a bug in the jakarta.mail-api library. The bug has already been fixed, and we are now awaiting the fix release, so Atlassian will hopefully include it in their next Confluence 10 release.

Not sure what exactly is missing. Your approach is different from ours a few ways. Here’s what we do, perhaps it helps:

We have this script setup-app-signing.sh

#!/bin/bash

# Set up the Atlassian trust store for app signing

if [ "$#" -ne 1 ]; then
    SCRIPT=`basename "$0"`
    echo "Usage: $SCRIPT 'path/to/certs/*'"
    exit 1
fi

CERTFILES=$1	

# Create necessary directories if they do not exist
mkdir -p upmconfig/truststore

# Create config file
cat >upmconfig/upm.properties <<EOD
atlassian.upm.signature.check.disabled=true
atlassian.upm.signature.check.upload.disabled=true
atlassian.upm.signature.check.marketplace.disabled=true
EOD

# Copy the certs
for CERTFILE in $CERTFILES; do
    cp $CERTFILE upmconfig/truststore/
done

Provided the Atlassian zip file has been extracted to certs/atlassian (not part of the script, but could become), then we

setup-app-signing.sh 'certs/atlassian/*'

Hi Metin, thank you for your script! I’ve done the same. With atlassian.upm.signature.check.disabled=true, you are disabling app signing. And given how difficult it is to make it work, I assume most customers will do that.

@Kusal At least in Confluence 10.0.2, the SpaceManager has no Method removeSpace anymore.

There has been no mention of this in the “Preparing for …” page, and we need this method.

As far as I remember, the SpaceService methods respects the permissions of the current user, which we don’t want in our use cases.

Any suggestions? I don’t think we should use the Reflection API to get the method from SpaceManagerInternal / DefaultSpaceManager…

If you wrap the SpaceService call in com.atlassian.confluence.security.PermissionManager#withExemption, it should run as an administrator.

Seems like this piece of code is not working anymore on Confluence 10.x

public List<User> getActiveUsers()
{
    List<User> users = new ArrayList<>();

    PropertyRestriction<Boolean> isActiveRestriction = Restriction.on(UserTermKeys.ACTIVE).exactlyMatching(Boolean.TRUE);
    EntityQuery<User> userQuery = QueryBuilder.queryFor(User.class, EntityDescriptor.user())
            .with(isActiveRestriction)
            .returningAtMost(EntityQuery.ALL_RESULTS);

    crowdService.search(userQuery).forEach(users::add);

    return users;
}

What’s the correct way of creating that userQuery now as in Confluence 10.x plugins have no acccess to QueryBuilder.class

Any ideas @Kusal / @jponting ?

@JackNolddor The QueryBuilder class is working for us, so maybe it’s an import issue? I believe you need to include this in your POM:

        <dependency>
            <groupId>com.atlassian.crowd</groupId>
            <artifactId>crowd-api</artifactId>
            <scope>provided</scope>
        </dependency>

Hey! It was not needed on Confluence 9.x so indeed adding this as provided dependency solved the compilation issue. You rock!