Skip to content

Instantly share code, notes, and snippets.

View anaxdem's full-sized avatar
🏠
Working from home

Kopot Anastasia anaxdem

🏠
Working from home
  • Ukraine, Zaporozhye
View GitHub Profile
@Component
public class EventHandler{
private final RequestLimitService requestLimitService;
private final ExternalServiceClient client;
public void handle(){
migrationService.increaseRequestUse();
client.doCall();
}
}
import com.backgroundjob.BackgroundJobLogicService;
import com.model.MigrationResultStatus;
import com.google.common.base.Preconditions;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import entity.IssueReportEntity;
import registry.EventHandlerRegistry;
import service.IssueReportService;
import exceptions.EventHandlingException;
import service.TraceService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import io.awspring.cloud.messaging.listener.Acknowledgment;
@anaxdem
anaxdem / EventListenerWithRetry.java
Last active October 3, 2025 08:30
RetryableEventHandler
import handler.RetryableEventHandler;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import io.awspring.cloud.messaging.listener.Acknowledgment;
import io.awspring.cloud.messaging.listener.SqsMessageDeletionPolicy;
import io.awspring.cloud.messaging.listener.annotation.SqsListener;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
@anaxdem
anaxdem / EntityRepository.java
Last active December 22, 2020 21:22
PagingAndSortingRepository repository example
public interface EntityRepository extends PagingAndSortingRepository<Entity, Long>
{
@Query("{ 'publisher' : ?0}")
Stream<Entity> findAllByPublisherAndStream(String publisher);
Page<Entity> findAll(Pageable pageable);
Long countByEntityCategory(String category);
@anaxdem
anaxdem / MainScheduler.java
Created December 22, 2020 21:16
Spring cron type of scheduling jobs
/**
* Job for checking of deleted items
* Will be run at 1 am ech day
*/
@Scheduled(cron = "0 0 2 * * ?")
public void checkJobScheduler() {
logger.info("Start checkJobScheduler job");
doJob();
}
@anaxdem
anaxdem / WebSecurityConfig.java
Last active December 22, 2020 21:21
WebSecurityConfig configuration example
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/css/**", "/js/**", "/images/**").permitAll() //Adding this line solved it
.antMatchers("/public").permitAll()
.antMatchers("/admin**").hasRole("ADMIN")
@anaxdem
anaxdem / RabbitMQReceiver.java
Last active December 15, 2020 22:26
RabbitMQ receiver with ResultCallback interface usage on fallback
/**
* Here will be declared RabbitMQ listeners for Update Articles Queue
*/
@EnableRabbit
public class RabbitMQReceiver {
private static final Logger logger = Logger.getLogger(RabbitMQReceiver.class);
@Autowired
private ArticleUpdateService articleUpdateService;
@anaxdem
anaxdem / ResultCallback.java
Created December 15, 2020 22:22
Result callback interface for tasks with ability of re-run after some time on fallback
public interface ResultCallback {
void onSuccessEndTask();
void onFailureEndTask();
void pauseAndResendTask();
}
Logger logger = Logger.getLogger('org.package');
logger.trace('Calling method Y');
logger.debug('Creating new object');
logger.info('Process has finished');
logger.warn("It could'n create this object, the process will try later.");
logger.error('Unable to load setting file');
logger.fatal('The app has crashed and its state is unavailable');