Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Can a Bamboo plugin be notified when a plan is deleted? Edited

I'm developing a plugin that stores settings per plan in PluginSettings. I'm wondering if there's some sort of callback mechanism whereby my plugin can be notified when a plan is deleted so it can remove its corresponding settings.

I'm fairly new to Bamboo development, so apologies if this obvious. :)

EDIT:

In case another n00b runs across this, here's my working example. Just need to add the appropriate bambooEventListener block in your atlassian-plugin.xml.

 

package com.example.bamboo.testPlugin

import com.atlassian.bamboo.event.ChainDeletedEvent;
import com.atlassian.bamboo.plan.PlanKey;
import com.atlassian.event.api.EventListener;
import com.atlassian.event.api.EventPublisher;
import com.atlassian.plugin.spring.scanner.annotation.component.Scanned;
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;

import javax.inject.Inject;


@Scanned
public class PlanDeletionListener implements DisposableBean {
    private static final Logger log = LoggerFactory.getLogger(PlanDeletionListener.class);
    @ComponentImport private final EventPublisher eventPublisher;

    @Inject
    public PlanDeletionListener(EventPublisher eventPublisher) {
        log.info("PlanDeletionListener instantiated.");
        this.eventPublisher = eventPublisher;
        eventPublisher.register(this);
    }

    @EventListener
    public void onChainRemoved(@NotNull ChainDeletedEvent chainDeletedEvent) {
        PlanKey key = chainDeletedEvent.getPlanKey();
        String message = ("Plugin received deletion event for plan with key "+key.getKey());
        log.info(message);
    }

    public void destroy() throws Exception {
        eventPublisher.unregister(this);
        log.info("PlanDeletionListener destroyed.");
    }
}

 

1 answer

1 accepted

1 vote
Answer accepted

Yes, there's com.atlassian.bamboo.event.ChainDeletedEvent

You can create listener

@EventListener
public void onChainRemoved(@NotNull ChainDeletedEvent chainDeletedEvent)
{
     ....do what you need
}

 

Thanks, that sent me down the right path.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bamboo

Bamboo 7.1 is here and is packed with value!

I'm happy to announce that Bamboo 7.1 has been released and it’s overflowing with awesome new features. Top-voted issues First and foremost, a bunch of JAC top voted issues has been delivered - y...

587 views 1 6
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you