Skip to content

Commit

Permalink
Keep direct link to trigger in EventListener
Browse files Browse the repository at this point in the history
It would speed up event processing a lot. As scanning all jobs and
looking for trigger needs significant amount of time.
  • Loading branch information
Jimilian committed May 23, 2018
1 parent a3bf98d commit 9b398d0
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,23 +73,27 @@ public final class EventListener implements GerritEventListener {
private static final Logger logger = LoggerFactory.getLogger(EventListener.class);

private final String job;
private final transient GerritTrigger trigger;

/**
* Standard constructor.
*
* @param job the job to handle.
* @param trigger the trigger
*/
EventListener(@Nonnull Job job) {
this(job.getFullName());
EventListener(@Nonnull Job job, GerritTrigger trigger) {
this(job.getFullName(), trigger);
}

/**
* Standard constructor.
*
* @param fullName the job to handle full name.
* @param trigger the trigger
*/
EventListener(@Nonnull String fullName) {
EventListener(@Nonnull String fullName, GerritTrigger trigger) {
this.job = fullName;
this.trigger = trigger;
}

/**
Expand All @@ -104,7 +108,7 @@ public String getJob() {
@Override
public void gerritEvent(GerritEvent event) {
logger.trace("event: {}", event);
GerritTrigger t = getTrigger();
GerritTrigger t = trigger;
if (t == null) {
logger.warn("Couldn't find a configured trigger for {}", job);
return;
Expand All @@ -126,7 +130,7 @@ public void gerritEvent(GerritEvent event) {
*/
public void gerritEvent(ManualPatchsetCreated event) {
logger.trace("event: {}", event);
GerritTrigger t = getTrigger();
GerritTrigger t = trigger;
if (t == null) {
logger.warn("Couldn't find a configured trigger for {}", job);
return;
Expand All @@ -145,7 +149,7 @@ public void gerritEvent(ManualPatchsetCreated event) {
*/
public void gerritEvent(CommentAdded event) {
logger.trace("event: {}", event);
GerritTrigger t = getTrigger();
GerritTrigger t = trigger;
if (t == null) {
logger.warn("Couldn't find a configured trigger for {}", job);
return;
Expand Down Expand Up @@ -370,11 +374,7 @@ private void notifyOnTriggered(GerritTrigger t, GerritTriggeredEvent event) {
@CheckForNull
@Restricted(NoExternalUse.class)
public GerritTrigger getTrigger() {
Job p = findJob();
if (p == null) {
return null;
}
return GerritTrigger.getTrigger(p);
return trigger;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ void onJobRenamed(String oldFullName, String newFullName) {
if (plugin != null) {
GerritHandler handler = plugin.getHandler();
if (handler != null) {
handler.removeListener(new EventListener(oldFullName));
handler.removeListener(new EventListener(oldFullName, this));
handler.addListener(createListener());
}
}
Expand Down Expand Up @@ -572,7 +572,7 @@ private void addThisTriggerAsListener(Job project) {
if (plugin != null) {
GerritHandler handler = plugin.getHandler();
if (handler != null) {
handler.addListener(createListener(project));
handler.addListener(createListener(project, this));
} else {
logger.warn("The plugin has no handler instance (BUG)! Project {} will not be triggered!",
project.getFullDisplayName());
Expand All @@ -586,19 +586,20 @@ private void addThisTriggerAsListener(Job project) {
/**
* Creates an {@link EventListener} for the provided project.
* @param project the project
* @param trigger the trigger
* @return a new listener instance
*/
/*package*/ static EventListener createListener(Job project) {
return new EventListener(project);
/*package*/ static EventListener createListener(Job project, GerritTrigger trigger) {
return new EventListener(project, trigger);
}

/**
* Creates an {@link EventListener} for this trigger's job.
* @return a new listener instance.
* @see #createListener(hudson.model.Job)
* @see #createListener(hudson.model.Job, GerritTrigger)
*/
/*package*/ EventListener createListener() {
return createListener(job);
return createListener(job, this);
}

@Override
Expand Down

0 comments on commit 9b398d0

Please sign in to comment.