Warning! this documentation is out of date.

Access the latest version right here.

Events listeners

In this section, we will explain how to work with Profields event listeners.
For the moment, these are the events you can listen:

We will provide more event listeners in the future. If you have any suggestions, contact us or let us know in the comments.

How to use Profields event listeners

We have built Profields event listeners with a similar structure as Jira ones. So, if you are familiar with Jira listeners, you will find Profields' listeners really easy to use.
You can extend from 2 different abstract classes to develop your own Profields event listeners:

ProfieldsListener

Default ProfieldsListener implementation
package com.deiser.jira.profields.event.listener;

import com.atlassian.crowd.embedded.api.Group;
import com.atlassian.event.api.EventPublisher;
import com.atlassian.jira.project.Project;
import com.atlassian.jira.user.ApplicationUser;
import com.deiser.jira.profields.api.event.model.ValueUpdatedEvent;
import com.deiser.jira.profields.api.event.model.ProfieldsEvent;
import com.deiser.jira.profields.api.event.listener.ProfieldsListener;
import com.deiser.jira.profields.api.field.Field;
import com.deiser.jira.profields.api.field.item.list.ListItem;
import com.deiser.jira.profields.api.field.item.priority.PriorityItem;
import com.deiser.jira.profields.api.field.item.status.StatusItem;
import org.apache.log4j.Logger;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class DefaultProfieldsListener extends ProfieldsListener {
   private static final Logger log = Logger.getLogger(DefaultProfieldsListener.class);

   private EventPublisher eventPublisher;

   public DefaultProfieldsListener(EventPublisher eventPublisher) {
      this.eventPublisher = eventPublisher;
   }

   @Override
   public void afterPropertiesSet() throws Exception {
      eventPublisher.register(this);
   }

   @Override
   public void destroy() throws Exception {
      eventPublisher.unregister(this);
   }

   @Override
   protected void onProfieldsEvent(ProfieldsEvent profieldsEvent) {
      log.debug("DefaultProfieldsListener - profieldsEvent");
   }

   @Override
   protected void onValueUpdated(ApplicationUser user, Project project, Field field, Object oldValue, Object newValue) {
      log.debug("DefaultProfieldsListener - onValueUpdated");
   }
}




ProfieldsAutoRegListener

This event listener is registered on the Jira Event Publisher by default. 
Remember that you have to init your listener class to be able to be notified by Profields events. You can do it by registering your component to the App descriptor or just creating an instance of your class.

Default ProfieldsAutoRegListener implementation
package com.deiser.jira.profields.event.listener;

import com.atlassian.crowd.embedded.api.Group;
import com.atlassian.event.api.EventPublisher;
import com.atlassian.jira.project.Project;
import com.atlassian.jira.user.ApplicationUser;
import com.deiser.jira.profields.api.event.listener.ProfieldsAutoRegListener;
import com.deiser.jira.profields.api.event.model.ProfieldsEvent;
import com.deiser.jira.profields.api.field.Field;
import com.deiser.jira.profields.api.field.item.list.ListItem;
import com.deiser.jira.profields.api.field.item.priority.PriorityItem;
import com.deiser.jira.profields.api.field.item.status.StatusItem;
import org.apache.log4j.Logger;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class DefaultProfieldsAutoRegListener extends ProfieldsAutoRegListener {
   private static final Logger log = Logger.getLogger(DefaultProfieldsAutoRegListener.class);

    public DefaultProfieldsAutoRegListener(EventPublisher eventPublisher) {
       super(eventPublisher);
   }

   @Override
   protected void onProfieldsEvent(ProfieldsEvent profieldsEvent) {
      log.debug("DefaultProfieldsAutoRegListener - profieldsEvent");
   }

   @Override
   protected void onValueUpdated(ApplicationUser user, Project project, Field field, Object oldValue, Object newValue) {
      log.debug("DefaultProfieldsAutoRegListener - onValueUpdated");
   }
}