This tutorial shows you how to migrate your app from atlassian-app-cloud-migration-tracker
to the discoverable listener in the
atlassian-app-cloud-migration-listener
library.
This section provides a sample app that you can use to verify your implementation. You can clone the repository that contains the source code of the sample app from Bitbucket.
There are two main steps to change your app code to using the discoverable listener in the
atlassian-app-cloud-migration-listener
library.
Step 1: Update dependency management
Step 2: Change to the DiscoverableListener
interface
Step 3: Atlassian Spring Scanner and atlassian-plugin.xml
These examples are for your pom.xml
and maven, but the steps are similar for other dependency management systems.
Remove the package com.atlassian.migration.app
from your <DynamicImport-Package>
instruction. Remove !com.atlassian.migration.app
from
your <Import-Package>
instruction.
Change the atlassian-app-cloud-migration-tracker
library from pom.xml
1 2<dependency> <groupId>com.atlassian</groupId> <artifactId>atlassian-app-cloud-migration-tracker</artifactId> <version>1.26.1</version> </dependency>
to the atlassian-app-cloud-migration-listener
library
1 2<dependency> <groupId>com.atlassian</groupId> <artifactId>atlassian-app-cloud-migration-listener</artifactId> <version>1.2.1</version> </dependency>
It is likely you will not need org.osgi.util.tracker
either.
1 2<dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.util.tracker</artifactId> <version>1.5.1</version> <scope>provided</scope> </dependency>
DiscoverableListener
interfaceChange your class to implement only DiscoverableListener
. It no longer needs to implement InitializingBean
nor DisposableBean
so you
do not need to register your class in afterPropertiesSet()
nor deregister your class in destroy()
.
1 2public class MyPluginComponentImpl implements DiscoverableListener { }
You will no longer need an implementation of ApplicationContextAware
, and it is not needed in the class constructor.
The first argument of onStartAppMigration()
is now AppCloudMigrationGateway
. You do not need to store a reference to it.
1 2public void onStartAppMigration(AppCloudMigrationGateway gateway, String transferId, MigrationDetailsV1 migrationDetails) { }
If your app key is different to your OSGi bundle name then you will need to implement getServerAppKey()
from DiscoverableListener
.
1 2@Override public String getServerAppKey() { return "my-server-app-key"; }
If your app key is the same as your OSGi bundle name, then you don't need to implement getServerAppKey()
as we provide a default implementation.
atlassian-plugin.xml
Atlassian Spring Scanner 1.0
If you are using Spring Scanner 1.0, then in your atlassian-plugin.xml
add
1 2<component key="myPlugin" class="com.vendor.impl.MyPluginComponentImpl" public="true"> <interface>com.atlassian.migration.app.listener.DiscoverableListener</interface> </component>
Atlassian Spring Scanner 2.0
If you are using Spring Scanner 2.0, then add the @ExportAsService
annotation to your class along with Spring's @Component
.
1 2@ExportAsService @Component public class MyPluginComponentImpl implements DiscoverableListener { }
Rate this page: