Posts

Resolver for token headers

 Header values in class:  @Data  @Builder  @NoArgsConstructor  @AllArgsConstructor  public class UserClaims {        private Long userId;      private String customerId;      private String taxId;      private Boolean isDirector;      private String personalCode;  } Resolver class:  import jakarta.servlet.http.HttpServletRequest;  import java.util.Objects;  import org.apache.commons.lang3.StringUtils;  import org.springframework.core.MethodParameter;  import org.springframework.web.bind.MissingRequestHeaderException;  import org.springframework.web.bind.support.WebDataBinderFactory;  import org.springframework.web.context.request.NativeWebRequest;  import org.springframework.web.method.support.HandlerMethodArgumentResolver;  import org.springframework.web.method.support.ModelAndViewContainer;      public class User...

AuditableDate for entities in jpa

 import jakarta.persistence.Column;  import jakarta.persistence.EntityListeners;  import jakarta.persistence.MappedSuperclass;  import java.io.Serial;  import java.io.Serializable;  import java.time.LocalDateTime;  import lombok.Getter;  import lombok.Setter;  import org.springframework.data.annotation.CreatedDate;  import org.springframework.data.annotation.LastModifiedDate;  import org.springframework.data.jpa.domain.support.AuditingEntityListener;    @Getter  @Setter  @MappedSuperclass  @EntityListeners(AuditingEntityListener.class)  public class AuditableDate implements Serializable {        @Serial      private static final long serialVersionUID = 1L;        @CreatedDate      @Column(updatable = false)      private LocalDateTime createdAt;        @LastModifiedDate      private Loc...

Spring boot kafka job example

application-kafka.yml file:  spring:    kafka:      listener:        ack-mode: manual      consumer:        key-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer        value-deserializer: org.springframework.kafka.support.serializer.ErrorHandlingDeserializer        properties:          spring.json.use.type.headers: false          spring.json.trusted.packages: com.example.*          spring.deserializer.key.delegate.class: org.apache.kafka.common.serialization.StringDeserializer          spring.deserializer.value.delegate.class: org.springframework.kafka.support.serializer.JsonDeserializer        auto-offset-reset: latest        enable-auto-commit: false        operation-re...

write huge text into clob column in oracle

 varchar2 max character size is 32767 , that's why writing huge texts into column is problem. CLOB type is used for this, it can store 2,147,483,647 characters. But it is a bit problematic to write more than 32767 characters into CLOB typed column. For doing that either we should read from file or divide into small chunks. In example we will do this by chunks Firstly: package org.example; import java.io.*; import java.util.ArrayList; import java.util.List; public class FileChunker { private static final int CHUNK_SIZE = 21000; // Size of each chunk public static void main(String[] args) { String filePath = "/Users/bbb/Documents/aaa/new_license/license_en.html"; // Path to your file String outputDir = "/Users/bbb/Documents/aaa/new_license/chunks_en"; // Directory to save chunks try { List<String> chunks = splitFileIntoChunks (filePath); createFilesFromChunks (chunks, outputDir); System. out...

entity id sequence la generate olan zaman hibernate in bazaya select gondermesi

hibernate, entity id uchun sequence istifade ederken @GeneratedValue( generator = "USERS_ID_SEQ_GEN", strategy = GenerationType.SEQUENCE) @SequenceGenerator( name = "USERS_ID_SEQ_GEN", sequenceName = "USERS_ID_SEQ", allocationSize = 1)  her save etmezden qabag bazaya sequencein novbeti valuesunu oyrenmek uchun sorgu atir bu selectin sayini azaltmaq uchun allocationSize -i boyuk eded vermek olar. Onda her eded tamamlandiqda sorgu gonderilib novbeti tsikl oyrenilecek. Bunun menfisi odur ki, app restart olanda yeni save olunacaq entitylerin idsi bazadaki sonuncu id + allocation size a beraber olur. Yeni sonuncu id = 5 olanda restart gedibse , eger allocation = 50 dirse , onda yeniler 55den bashlayacaq.  selecti umumyetle legv etmek uchun, @GeneratedValue(strategy = GenerationType.IDENTITY) istifade ede bilerik. Bu zaman hibernate save olunacaq entitynin idsini bilmir ve id bazada yaradilir. Bunun menfisi odur ki, bulk i...

Inject private field from unit test

public class DeeplinkService {  @Value("${deeplink}")  private String deeplink; } class DeeplinkServiceTest { @InjectMocks private DeeplinkService deeplinkService; @BeforeEach  public void setup() { { ReflectionTestUtils.setField( deeplinkService, "deeplink", TestConstants.TEST_DEEPLINK ); } } It is possible to inject private field from unit test with Reflection

libfontmanager.so: libfreetype.so.6 not found error in docker image when trying to generate excel with Apache Poi

  FROM openjdk: 11.0.3 - jdk-slim-stretch imageinde  libfontmanager.so: libfreetype.so.6 bu lib olmur ona gorede. ,apache poi ile excel generate etmeye chalishanda xeta aliriq Xetanin ozu:  "java.lang.UnsatisfiedLinkError: /usr/local/openjdk-11/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory Hell etmek uchun Dockerfile a bu stepi elave etmek lazimdir RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends fontconfig libfreetype6; \ rm -rf /var/lib/apt/lists/* Menbe: https://hub.docker.com/r/hydrz/openjdk/dockerfile