I am writing a custom listener for Fisheye/Crucible. I am following the new Annotated Listener as per this Annotated Listener link.
The plugin gets installed fine. But my listener doesnt seem to be registered and doesnt get invoked during review state change event as its supposed.
The Custom event listener class
public class FisheyeMailListener implements DisposableBean {
private final Logger logger = Logger.getLogger(FisheyeMailListener.class);
EventPublisher eventPublisher;
final ReviewService reviewService;
public FisheyeMailListener(EventPublisher eventPublisher, ReviewService reviewService) {
logger.warn("Fisheye Mail Listener intialized...");
logger.warn("event publisher available to custom listener is "+eventPublisher.getClass().getName());
this.eventPublisher = eventPublisher;
this.eventPublisher.register(this);
this.reviewService = reviewService;
logger.warn("Custom Mail Listener registered with the event publisher");
}
@Override
public void destroy() throws Exception {
eventPublisher.unregister(this);
}
@EventListener
public void onEvent(ReviewStateChangedEvent event) {
PermId<ReviewData> review = event.getReviewId();
String reviewId = review.getId();
logger.warn("FisheyeMailListener -- called for review id [" + reviewId + "]");
DetailedReviewData reviewDetails = reviewService.getReviewDetails(review);
for(FisheyeReviewItemData fileCommit : reviewDetails.getReviewItems().reviewItem) {
logger.warn("URI to fetch changeset details /cru/"+fileCommit.getRepositoryName()+"/"+fileCommit.getToRevision());
logger.warn("File revision "+fileCommit.getToPath());
}
}
}
My atlassian-plugin.xml
<component-import key="fecruMailListener" class="com.example.fecru.plugins.listener.FisheyeMailListener" public="false">
<description>Sends an email different Review state change events</description>
<interface>org.springframework.beans.factory.DisposableBean</interface>
</component-import>
The old method of declariing a listener in atlassian-plugin.xml and implementing EventListener works!
Community moderators have prevented the ability to post new answers.
I resolved this issue myself. The entry in the atlassian-plugin .xml was incorrect. Here is the correct entry
<component key="fecruMailListener" class="com.example.fecru.plugins.listener.FisheyeMailListener">
<description>Sends an email different Review state change events</description>
</component>
Please refer this atlassian-plugin.xml
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.