We are pleased to announce the availability of the new version of Bamboo Data Center 10.0 Early Access Program (EAP) release (rc5).
This EAP release allows partners and customers who have written in-house apps to update their apps before the public release of Bamboo 10.0.
Due no earlier than Aug 14, 2024, Bamboo 10.0 is our next platform release and will contain breaking changes.
Important things to note about this EAP release:
Do not use this EAP release in production environments. For all production use and testing of Bamboo, use the latest official release 9 instead.
The general availability release is still underway and may contain some minor API changes. However, this EAP release is intended to contain a complete picture of Bamboo 10.0’s API.
Using the EAP
EAP is available for download as a zip archive for Windows x64 and tar.gz archive for Linux. For installation instructions, refer to documentation.
Overview of changes in the EAP
Please read this post to learn about important changes that were released in the previous eap version (rc3)
Removal of Guava from API
Guava usage removed from public API in bamboo-api and bamboo-core packages
We have an app using resources (custom js and css files), these resources not loaded at first run, after restarting bamboo the resources enabled and works as expected, can not see any useful logs on browser console or in the application logs, really apricated for suggestions
The com.atlassian.plugin.web.model.WebPanel is still defined in webfragment-7.0.2, but deprecated.
However, at runtime using the deprecated class fails to resolve:
Caused by: java.lang.ClassNotFoundException: com.atlassian.plugin.web.model.WebPanel not found by ch.mibex.bamboo.sonar4bamboo [128]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591) ~[org.apache.felix.framework-7.0.5.jar:?]
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[org.apache.felix.framework-7.0.5.jar:?]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976) ~[org.apache.felix.framework-7.0.5.jar:?]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
... 140 more
The new com.atlassian.plugin.web.api.model.WebPanel does work on Bamboo 10, but isn’t available in still supported 9.x releases. This prevents us from having the app work across versions, supporting all still supported Bamboo versions and Bamboo 10.
So, my question:
Any chance to still export the deprecated edition of the class?
Or is there a way declare different versions of theweb-panel in the atlassian-plugin.xml. Or reference a factory for the instance. This way we could instantiate
Here the test I made, after a clean setup of atlassian-bamboo-10.0.0-rc5-x64, and uploading the app, A servet screen in the app is broken (custom js and css files not load properly)., even re-install the plugin not fix the problem. After stop bamboo and start it again, the UI coming back as usual, also I clear the plugin cache and still the UI is working good. Just until restart Bamboo UI is broken after restart bamboo everything works fine.
This is an expected issue and will be documented in the upcoming Bamboo 10.0.0 release notes. Bamboo 10.0.0 uses a new login URI from userlogin!doDefault.action to userlogin.action.
As official Bamboo 10.0.0 Docker images are still to be published, you can retrieve a Bamboo 9.6.x image and copy the contents of the following file to your Bamboo 10.0.0 custom image:
/opt/atlassian/etc/seraph-config.xml.j2
Here’s the relevant part:
<security-config>
<parameters>
<init-param>
{%- set bamboo_version_parts = bamboo_version.split('.') %}
{%- if bamboo_version_parts[0]|int >= 10 %}
{%- set login_url = '/userlogin.action?os_destination=${originalurl}' %}
{%- else %}
{%- set login_url = '/userlogin!doDefault.action?os_destination=${originalurl}' %}
{%- endif %}
We understand your concern. Luckly the issue is not present on the latest atlassian/bamboo:10.0.0-rc5-jdk17 image.
So you can understand, the docker image’s entrypoint script creates the /opt/atlassian/bamboo/atlassian-bamboo/WEB-INF/seraph-config.xml file during the container startup. That file is created based on a Jinja2 template in /opt/atlassian/etc/seraph-config.xml.j2.
Can you validate your Docker setup and make sure there’s nothing blocking /opt/atlassian/bamboo/atlassian-bamboo/WEB-INF/classes/seraph-config.xml from being created/modified inside the container?
Apologies for overseeing your last message. I had the impression I saw /userlogin.action but you actually have /userlogin!doDefault.action which is not correct.
The userlogin!doDefault.action URI is not used in Bamboo 10.0.0. If you still see that page we recommend you investigate your local implementation for any caches, proxy configurations, etc.
Bamboo uses the value of the BAMBOO_VERSION docker environment variable to determine its version. If you are injecting variables in your container, that may be interfering with its decision towards the correct version to use.
Can you share how you are running your docker container? We’d be interested to find the exact docker run or the contents of the docker-compose file. Investigate the contents of your /opt/atlassian/bamboo/atlassian-bamboo/WEB-INF/classes/seraph-config.xml and validate if they are correct.
If you are running Bamboo behind a reverse Proxy, check its configuration as it may be modifying the requests.
Config file are typically generated in the image entrypoint, however, when running containers as non root (for example in OpenShift), templates can’t be generated, and in this case, they can be generated by Helm and mounted from a ConfigMap. The above template is not yet 10.x ready.
Here the test I made, after a clean setup of atlassian-bamboo-10.0.0-rc5-x64, and uploading the app, A servet screen in the app is broken (custom js and css files not load properly)., even re-install the plugin not fix the problem. After stop bamboo and start it again, the UI coming back as usual, also I clear the plugin cache and still the UI is working good. Just until restart Bamboo UI is broken after restart bamboo everything works fine.
It seems webresourcemanager caches not correctly invalidated after plugins are installed and requests for plugin webresources are not included in the batch when freshly installed until after a bamboo restart.
Caused by: java.lang.ClassNotFoundException: com.atlassian.crowd.service.cluster.ClusterService not found by de.resolution.usersync.app [123]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591) ~[org.apache.felix.framework-7.0.5.jar:?]
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[org.apache.felix.framework-7.0.5.jar:?]
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976) ~[org.apache.felix.framework-7.0.5.jar:?]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
at de.resolution.usersync.impl.bamboo.BambooClusterNodeInformation.<init>(BambooClusterNodeInformation.java:29) ~[?:?]
Using the @ComponentImport - annotation instead of the ComponentLocator results in a similar error. Is that a known issue?