Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
package org.eclipse.hawkbit.repository.event.remote;

import java.io.Serial;
import java.util.Collections;
import java.util.List;

import lombok.EqualsAndHashCode;
import lombok.Getter;
Expand All @@ -29,16 +31,22 @@ public class TargetPollEvent extends RemoteTenantAwareEvent {
@Serial
private static final long serialVersionUID = 1L;

private String controllerId;
private String targetAddress;
private long lastTargetPoll;
private List<String> controllerIds;

public TargetPollEvent(final String controllerId, final String tenant) {
super(tenant, controllerId);
this.controllerId = controllerId;
public TargetPollEvent(final List<String> controllerIds, final long lastTargetPoll, final String tenant) {
super(tenant, tenant); // source is tenant
this.lastTargetPoll = lastTargetPoll;
this.controllerIds = Collections.unmodifiableList(controllerIds);
}

public TargetPollEvent(final String controllerId, final long timestamp, final String tenant) {
this(List.of(controllerId), timestamp, tenant);
}

public TargetPollEvent(final Target target) {
this(target.getControllerId(), target.getTenant());
this(List.of(target.getControllerId()), target.getLastTargetQuery(), target.getTenant()); // here expect last target query to be already set
this.targetAddress = target.getAddress();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -712,9 +712,10 @@ private Void updateLastTargetQueries(final String tenant, final List<TargetPoll>
Constants.MAX_ENTRIES_IN_STATEMENT);

pollChunks.forEach(chunk -> {
setLastTargetQuery(tenant, java.lang.System.currentTimeMillis(), chunk);
chunk.forEach(controllerId -> afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher()
.publishEvent(new TargetPollEvent(controllerId, tenant))));
final long lastTargetQuery = java.lang.System.currentTimeMillis();
setLastTargetQuery(tenant, lastTargetQuery, chunk);
afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher()
.publishEvent(new TargetPollEvent(chunk, lastTargetQuery, tenant)));
});

return null;
Expand Down
Loading