Skip to content

Commit

Permalink
[pinpoint-apm#10900] Bump spring-batch from 4.3.7 to 5.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
emeroad authored and minwoo-jung committed May 10, 2024
1 parent 5e83c54 commit a987d70
Show file tree
Hide file tree
Showing 12 changed files with 50 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@
import com.navercorp.pinpoint.web.alarm.vo.Rule;
import jakarta.annotation.Nonnull;
import jakarta.annotation.Nullable;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.StepExecutionListener;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import java.util.List;
Expand All @@ -51,18 +50,10 @@ public AlarmWriter(
this.interceptor = Objects.requireNonNullElseGet(alarmWriterInterceptor, DefaultAlarmWriterInterceptor::new);
}

@Override
public void beforeStep(@Nonnull StepExecution stepExecution) {
}

@Override
public ExitStatus afterStep(@Nonnull StepExecution stepExecution) {
return null;
}

@Override
public void write(@Nonnull List<? extends AppAlarmChecker> appAlarmCheckers) {
List<AlarmChecker<?>> checkers = AppAlarmChecker.flatten(appAlarmCheckers);
public void write(@Nonnull Chunk<? extends AppAlarmChecker> appAlarmCheckers) {
List<AlarmChecker<?>> checkers = AppAlarmChecker.flatten(appAlarmCheckers.getItems());
interceptor.before(checkers);
try {
for (AppAlarmChecker appAlarmChecker: appAlarmCheckers) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,17 @@
import com.navercorp.pinpoint.web.dao.AgentStatisticsDao;
import com.navercorp.pinpoint.web.util.DateTimeUtils;
import com.navercorp.pinpoint.web.vo.AgentCountStatistics;
import jakarta.annotation.Nonnull;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.batch.core.*;
import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.JobExecutionException;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.StepExecutionListener;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import jakarta.annotation.Nonnull;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicInteger;

Expand Down Expand Up @@ -69,8 +73,9 @@ public ExitStatus afterStep(@Nonnull StepExecution stepExecution) {
}

@Override
public void write(List<? extends Integer> items) {
count.getAndAdd(items.stream().mapToInt(el -> el).sum());
public void write(Chunk<? extends Integer> items) {
int sum = items.getItems().stream().mapToInt(el -> el).sum();
count.getAndAdd(sum);
}

private void writeCount(int count) throws JobExecutionException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
import jakarta.annotation.Nonnull;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import java.util.List;
import java.util.Objects;

/**
Expand All @@ -40,7 +40,7 @@ public AgentRemover(BatchAgentService agentService) {
}

@Override
public void write(@Nonnull List<? extends String> serAgentKeys) throws Exception {
public void write(@Nonnull Chunk<? extends String> serAgentKeys) throws Exception {
for (String serKey: serAgentKeys) {
logger.info("Removing agent: {}", serKey);
ClusterKey key = ClusterKey.parse(serKey);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@
import com.navercorp.pinpoint.batch.service.BatchApplicationService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import java.util.List;
import java.util.Objects;

/**
Expand All @@ -38,7 +38,7 @@ public ApplicationRemover(BatchApplicationService applicationService) {
}

@Override
public void write(List<? extends String> applicationNames) throws Exception {
public void write(Chunk<? extends String> applicationNames) throws Exception {
for (String applicationName : applicationNames) {
logger.info("Removing application: {}", applicationName);
this.applicationService.remove(applicationName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.navercorp.pinpoint.batch.vo.CleanTarget;
import jakarta.annotation.Nonnull;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import java.util.ArrayList;
Expand All @@ -37,13 +38,14 @@ public CleanTargetWriter(ItemWriter<String> applicationRemover, ItemWriter<Strin
}

@Override
public void write(@Nonnull List<? extends CleanTarget> items) throws Exception {
public void write(@Nonnull Chunk<? extends CleanTarget> chunks) throws Exception {
List<? extends CleanTarget> items = chunks.getItems();
if (this.applicationRemover != null) {
this.applicationRemover.write(getApplicationNames(items));
this.applicationRemover.write(new Chunk<>(getApplicationNames(items)));
}

if (this.agentRemover != null) {
this.agentRemover.write(getAgents(items));
this.agentRemover.write(new Chunk<>(getAgents(items)));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,15 @@
import jakarta.annotation.Nonnull;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import java.util.List;

public class EmptyItemWriter<T> implements ItemWriter<T> {

private static final Logger logger = LogManager.getLogger(EmptyItemWriter.class);

@Override
public void write(@Nonnull List<? extends T> items) throws Exception {
public void write(@Nonnull Chunk<? extends T> items) throws Exception {
logger.info("Write items: {}", items);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
package com.navercorp.pinpoint.batch.job;

import jakarta.annotation.Nonnull;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import java.util.ArrayList;
import java.util.List;


/**
* @author youngjin.kim2
*/
Expand All @@ -34,25 +35,18 @@ public ItemListWriter(ItemWriter<T> delegate) {
}

@Override
public void write(@Nonnull List<? extends List<T>> items) throws Exception {
public void write(@Nonnull Chunk<? extends List<T>> items) throws Exception {
if (this.delegate != null) {
this.delegate.write(flatten(items));
}
}

private List<T> flatten(List<? extends List<T>> items) {
List<T> lst = new ArrayList<>(size(items));
private Chunk<T> flatten(Chunk<? extends List<T>> items) {
Chunk<T> lst = new Chunk<>();
for (List<T> sub: items) {
lst.addAll(sub);
}
return lst;
}

private int size(List<? extends List<T>> items) {
int size = 0;
for (List<T> item : items) {
size += item.size();
}
return size;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,12 @@

import org.springframework.batch.core.BatchStatus;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameter;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.JobParametersBuilder;
import org.springframework.batch.test.JobLauncherTestUtils;
import org.springframework.context.support.GenericXmlApplicationContext;

import java.util.Date;
import java.util.Map;

import static org.junit.jupiter.api.Assertions.assertEquals;

Expand All @@ -43,7 +42,8 @@ public static void main(String[] args) throws Exception {
}

private static JobParameters getParameters() {
Map<String, JobParameter> parameters = Map.of("schedule.scheduledFireTime", new JobParameter(new Date()));
return new JobParameters(parameters);
JobParametersBuilder builder = new JobParametersBuilder();
builder.addDate("schedule.scheduledFireTime", new Date());
return builder.toJobParameters();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.batch.item.Chunk;

import java.util.HashMap;
import java.util.List;
Expand Down Expand Up @@ -75,7 +76,7 @@ public void whenSequenceCountIsLessThanTimingCountDoSendAlarm() {
mockingAlarmMessageSender(checker);

// when
writer.write(List.of(new AppAlarmChecker(checkers)));
writer.write(Chunk.of(new AppAlarmChecker(checkers)));

// then
verify(alarmMessageSender).sendSms(checker, 1);
Expand All @@ -95,7 +96,7 @@ public void whenSequenceCountIsEqualToTimingCountDoNotSendAlarm() {
mockingAlarmMessageSender(checker);

// when
writer.write(List.of(new AppAlarmChecker(checkers)));
writer.write(Chunk.of(new AppAlarmChecker(checkers)));

// then
verify(alarmMessageSender, never()).sendSms(checker, 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.batch.item.Chunk;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
Expand Down Expand Up @@ -55,7 +56,7 @@ protected Long getDetectedValue() {
};

List<AlarmChecker<?>> checkers = List.of(checker);
writer.write(List.of(new AppAlarmChecker(checkers)));
writer.write(Chunk.of(new AppAlarmChecker(checkers)));
}

@Disabled
Expand All @@ -75,7 +76,7 @@ protected Long getDetectedValue() {
};

List<AlarmChecker<?>> checkers = List.of(checker);
writer.write(List.of(new AppAlarmChecker(checkers)));
writer.write(Chunk.of(new AppAlarmChecker(checkers)));
}

}
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@

<spring4.version>4.3.30.RELEASE</spring4.version>
<spring5.version>5.3.28</spring5.version>
<spring.batch.version>4.3.7</spring.batch.version>
<spring.batch.version>5.1.1</spring.batch.version>

<!-- <spring.security.version>5.8.1</spring.security.version>-->
<spring.security.version>6.1.8</spring.security.version>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,28 @@
package com.navercorp.pinpoint.batch.alarm;

import com.navercorp.pinpoint.common.util.CollectionUtils;
import com.navercorp.pinpoint.pinot.alarm.DefaultPinotAlarmWriterInterceptor;
import com.navercorp.pinpoint.pinot.alarm.PinotAlarmWriterInterceptor;
import com.navercorp.pinpoint.pinot.alarm.checker.PinotAlarmChecker;
import com.navercorp.pinpoint.pinot.alarm.checker.PinotAlarmCheckers;
import com.navercorp.pinpoint.pinot.alarm.service.PinotAlarmService;
import com.navercorp.pinpoint.pinot.alarm.vo.PinotAlarmHistory;
import com.navercorp.pinpoint.pinot.alarm.vo.PinotAlarmRule;
import com.navercorp.pinpoint.common.util.CollectionUtils;
import jakarta.annotation.Nullable;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.StepExecutionListener;
import org.springframework.batch.item.Chunk;
import org.springframework.batch.item.ItemWriter;

import jakarta.annotation.Nonnull;
import jakarta.annotation.Nullable;
import java.util.List;
import java.util.Objects;

public class UriStatAlarmWriter implements ItemWriter<PinotAlarmCheckers>, StepExecutionListener {
public class UriStatAlarmWriter implements ItemWriter<PinotAlarmCheckers> {
private final Logger logger = LogManager.getLogger(UriStatAlarmWriter.class);

private final PinotAlarmService alarmService;
private final AlarmMessageSender alarmMessageSender;
private final PinotAlarmWriterInterceptor interceptor;
private StepExecution stepExecution;

public UriStatAlarmWriter(AlarmMessageSender alarmMessageSender,
PinotAlarmService alarmService,
Expand All @@ -37,29 +33,20 @@ public UriStatAlarmWriter(AlarmMessageSender alarmMessageSender,
}

@Override
public void beforeStep(StepExecution stepExecution) {
this.stepExecution = stepExecution;
}

@Override
public ExitStatus afterStep(@Nonnull StepExecution stepExecution) {
return null;
}

@Override
public void write(List<? extends PinotAlarmCheckers> checkersList) throws Exception {
interceptor.before(checkersList);
if (CollectionUtils.isEmpty(checkersList)) {
public void write(Chunk<? extends PinotAlarmCheckers> checkersList) throws Exception {
final List<? extends PinotAlarmCheckers> items = checkersList.getItems();
interceptor.before(items);
if (checkersList.isEmpty()) {
return;
}
for (PinotAlarmCheckers alarmCheckers : checkersList) {
for (PinotAlarmCheckers alarmCheckers : items) {
List<PinotAlarmChecker<? extends Number>> children = alarmCheckers.getChildren();
if (CollectionUtils.isEmpty(children)) {
return;
}
execute(children);
}
interceptor.after(checkersList);
interceptor.after(items);
}

private void execute(List<PinotAlarmChecker<? extends Number>> alarmCheckers) {
Expand Down

0 comments on commit a987d70

Please sign in to comment.