Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c210a96
[MODEXPS-296] Replace converters with simpler mappers
Saba-Zedginidze-EPAM Oct 28, 2025
73704be
[MODEXPS-296] Update configuration
Saba-Zedginidze-EPAM Oct 28, 2025
ad13b3f
[MODEXPS-296] Add export config entity
Saba-Zedginidze-EPAM Oct 28, 2025
497710b
[MODEXPS-296] Update services
Saba-Zedginidze-EPAM Oct 28, 2025
548af9d
[MODEXPS-296] Add mapstruct
Saba-Zedginidze-EPAM Oct 28, 2025
9af119a
[MODEXPS-296] Remove configuration schema usage
Saba-Zedginidze-EPAM Oct 28, 2025
99ae8ca
[MODEXPS-296] Improve mapper validations
Saba-Zedginidze-EPAM Oct 28, 2025
3bfecd3
[MODEXPS-296] Add mapper tests
Saba-Zedginidze-EPAM Oct 28, 2025
6c3de75
[MODEXPS-296] Update services with own mappers
Saba-Zedginidze-EPAM Oct 29, 2025
32216d9
[MODEXPS-296] Update migration script
Saba-Zedginidze-EPAM Oct 29, 2025
9273e6c
[MODEXPS-296] Remove configuration client from tests
Saba-Zedginidze-EPAM Oct 29, 2025
8a1ec75
[MODEXPS-296] Update and simplify export service tests
Saba-Zedginidze-EPAM Oct 29, 2025
74cff15
[MODEXPS-296] Update export config manager test to use DB
Saba-Zedginidze-EPAM Oct 29, 2025
70c0df2
[MODEXPS-296] Update configs controller test
Saba-Zedginidze-EPAM Oct 29, 2025
7fea442
[MODEXPS-296] Address copilot suggestions
Saba-Zedginidze-EPAM Oct 30, 2025
409549d
[MODEXPS-296] Remove mod-configuration verification from InstallUpgra…
Saba-Zedginidze-EPAM Oct 31, 2025
16829ae
[MODEXPS-296] Fix sonar issues
Saba-Zedginidze-EPAM Oct 31, 2025
32b315d
[MODEXPS-296] Fix TestUtils indentation
Saba-Zedginidze-EPAM Oct 31, 2025
2613e3f
[MODEXPS-296] Address comments and fix filtering
Saba-Zedginidze-EPAM Nov 3, 2025
87f968f
[MODEXPS-296] Fix failing tests
Saba-Zedginidze-EPAM Nov 3, 2025
dddf74c
[MODEXPS-296] Use correct schema
Saba-Zedginidze-EPAM Nov 3, 2025
12f2da7
Merge branch 'master' into MODEXPS-296
Saba-Zedginidze-EPAM Nov 3, 2025
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
44 changes: 5 additions & 39 deletions descriptors/ModuleDescriptor-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
"id": "circulation-logs",
"version": "1.2"
},
{
"id": "configuration",
"version": "2.0"
},
{
"id" : "bulk-edit",
"version": "4.1"
Expand Down Expand Up @@ -83,11 +79,6 @@
"feesfines.accounts-bulk.transfer.post",
"accounts.collection.get",
"circulation-logs.collection.get",
"configuration.entries.collection.get",
"configuration.entries.item.get",
"configuration.entries.item.post",
"configuration.entries.item.put",
"configuration.entries.item.delete",
"data-export.job.collection.get",
"data-export.config.collection.get",
"feefineactions.collection.get",
Expand Down Expand Up @@ -138,9 +129,7 @@
"permissionsRequired": [
"data-export.config.collection.get"
],
"modulePermissions": [
"configuration.entries.collection.get"
]
"modulePermissions": []
},
{
"methods": [
Expand All @@ -150,9 +139,7 @@
"permissionsRequired": [
"data-export.config.item.get"
],
"modulePermissions": [
"configuration.entries.item.get"
]
"modulePermissions": []
},
{
"methods": [
Expand All @@ -162,9 +149,7 @@
"permissionsRequired": [
"data-export.config.item.post"
],
"modulePermissions": [
"configuration.entries.item.post"
]
"modulePermissions": []
},
{
"methods": [
Expand All @@ -174,9 +159,7 @@
"permissionsRequired": [
"data-export.config.item.put"
],
"modulePermissions": [
"configuration.entries.item.put"
]
"modulePermissions": []
},
{
"methods": [
Expand All @@ -186,9 +169,7 @@
"permissionsRequired": [
"data-export.config.item.delete"
],
"modulePermissions": [
"configuration.entries.item.delete"
]
"modulePermissions": []
},
{
"methods": [
Expand All @@ -203,11 +184,6 @@
"feesfines.accounts-bulk.transfer.post",
"accounts.collection.get",
"circulation-logs.collection.get",
"configuration.entries.collection.get",
"configuration.entries.item.get",
"configuration.entries.item.post",
"configuration.entries.item.put",
"configuration.entries.item.delete",
"data-export.job.collection.get",
"data-export.config.collection.get",
"feefineactions.collection.get",
Expand Down Expand Up @@ -296,9 +272,6 @@
"login.item.delete",
"perms.users.item.post",
"perms.users.get",
"configuration.entries.collection.get",
"configuration.entries.item.post",
"configuration.entries.item.put",
"perms.users.assign.immutable",
"data-export.job.collection.get",
"data-export.config.collection.get"
Expand Down Expand Up @@ -413,8 +386,6 @@
"displayName": "Edifact export create permission",
"description": "Edifact export create permission",
"subPermissions": [
"configuration.entries.collection.get",
"configuration.entries.item.get",
"data-export.job.item.post",
"finance.expense-classes.item.get",
"inventory-storage.holdings.item.get",
Expand Down Expand Up @@ -476,11 +447,6 @@
"feesfines.accounts-bulk.transfer.post",
"accounts.collection.get",
"circulation-logs.collection.get",
"configuration.entries.collection.get",
"configuration.entries.item.get",
"configuration.entries.item.post",
"configuration.entries.item.put",
"configuration.entries.item.delete",
"data-export.job.collection.get",
"data-export.config.collection.get",
"feefineactions.collection.get",
Expand Down
42 changes: 42 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@
<folio-service-tools.version>4.1.1</folio-service-tools.version>
<folio-module-descriptor-validator.version>1.0.0</folio-module-descriptor-validator.version>
<hypersistence-utils-hibernate-63.version>3.9.2</hypersistence-utils-hibernate-63.version>
<lombok.version>1.18.42</lombok.version>
<mapstruct.version>1.6.3</mapstruct.version>
<mapstruct-binding.version>0.2.0</mapstruct-binding.version>
Comment thread
SerhiiNosko marked this conversation as resolved.
<commons-collections4.version>4.4</commons-collections4.version>
<openapi-generator.version>6.2.1</openapi-generator.version>

Expand All @@ -53,6 +56,7 @@
<copy-rename-maven-plugin>1.0.1</copy-rename-maven-plugin>
<maven-release-plugin.version>3.0.0-M7</maven-release-plugin.version>
<maven-surefire-plugin.version>3.0.0-M7</maven-surefire-plugin.version>
<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>

<sonar.exclusions>
**/src/main/java/org/folio/des/ModDataExportSpringApplication.java,
Expand Down Expand Up @@ -164,9 +168,16 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
Expand Down Expand Up @@ -283,6 +294,37 @@
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
Comment thread
SerhiiNosko marked this conversation as resolved.
<release>${java.version}</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>${mapstruct-binding.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<compilerArg>
-Amapstruct.defaultComponentModel=spring
</compilerArg>
</compilerArgs>
</configuration>
</plugin>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
Expand Down
55 changes: 55 additions & 0 deletions src/main/java/org/folio/de/entity/ExportConfigEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package org.folio.de.entity;

import java.util.List;
import java.util.UUID;

import org.folio.de.entity.base.AuditableEntity;
import org.hibernate.annotations.Type;

import io.hypersistence.utils.hibernate.type.json.JsonBinaryType;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Entity
@Table(name = "export_config")
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class ExportConfigEntity extends AuditableEntity {

@Id
@Column(name = "id", updatable = false, nullable = false)
private UUID id;

@Column(name = "config_name", nullable = false)
private String configName;

@Column(name = "type", nullable = false)
private String type;

@Column(name = "tenant", nullable = false)
private String tenant;

@Type(JsonBinaryType.class)
@Column(name = "export_type_specific_parameters", columnDefinition = "jsonb", nullable = false)
private Object exportTypeSpecificParameters;

@Column(name = "schedule_frequency")
private Integer scheduleFrequency;

@Column(name = "schedule_period")
private String schedulePeriod;

@Column(name = "schedule_time")
private String scheduleTime;

@Type(JsonBinaryType.class)
@Column(name = "week_days", columnDefinition = "jsonb")
private List<String> weekDays;

}
42 changes: 42 additions & 0 deletions src/main/java/org/folio/de/entity/base/AuditableEntity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.folio.de.entity.base;

import java.time.LocalDateTime;
import java.util.UUID;

import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class AuditableEntity {

@CreatedDate
@Column(name = "created_date", nullable = false, updatable = false)
private LocalDateTime createdDate;

@CreatedBy
@Column(name = "created_by", updatable = false)
private UUID createdBy;

@LastModifiedDate
@Column(name = "updated_date", nullable = false)
private LocalDateTime updatedDate;

@LastModifiedBy
@Column(name = "updated_by")
private UUID updatedBy;

}
33 changes: 0 additions & 33 deletions src/main/java/org/folio/des/client/ConfigurationClient.java

This file was deleted.

28 changes: 28 additions & 0 deletions src/main/java/org/folio/des/config/FolioAuditorAware.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.folio.des.config;

import java.util.Optional;
import java.util.UUID;

import org.folio.spring.FolioExecutionContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.AuditorAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

import lombok.RequiredArgsConstructor;

/**
* FolioAuditorAware class is being used for populating "createdBy" field automatically while performing any DB operation.
* getCurrentAuditor() is needed to get current logged in user.
*/
@Configuration
@EnableJpaAuditing
@RequiredArgsConstructor
public class FolioAuditorAware implements AuditorAware<UUID> {

private final FolioExecutionContext folioExecutionContext;

@Override
public Optional<UUID> getCurrentAuditor() {
return Optional.ofNullable(folioExecutionContext.getUserId());
}
}
Loading