mirror of
https://github.com/fabioformosa/quartz-manager.git
synced 2026-05-14 22:00:30 +09:00
#130 imported the new version of metamorphosis lib and reverted the conversion service
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
</developers>
|
||||
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<org.projectlombok.version>1.18.42</org.projectlombok.version>
|
||||
<maven-surefire-plugin.version>3.5.4</maven-surefire-plugin.version>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<springdoc-openapi.version>3.0.3</springdoc-openapi.version>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
<sonar.exclusions>**/QuartManagerApplicationTests.java, **/OpenApiConfig.java</sonar.exclusions>
|
||||
</properties>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<dependency>
|
||||
<groupId>it.fabioformosa</groupId>
|
||||
<artifactId>metamorphosis-core</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<version>4.0.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.reflections</groupId>
|
||||
|
||||
@@ -1,38 +1,9 @@
|
||||
package it.fabioformosa.quartzmanager.api.configuration;
|
||||
|
||||
import it.fabioformosa.metamorphosis.core.converters.AbstractBaseConverter;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.core.convert.support.DefaultConversionService;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
@ComponentScan(basePackages = {"it.fabioformosa.quartzmanager.api"})
|
||||
@Configuration
|
||||
public class QuartzManagerApiConfig {
|
||||
|
||||
@Bean
|
||||
public ConversionService conversionService(List<Converter<?, ?>> converters) {
|
||||
DefaultConversionService conversionService = new DefaultConversionService();
|
||||
converters.forEach(conversionService::addConverter);
|
||||
converters.stream()
|
||||
.filter(AbstractBaseConverter.class::isInstance)
|
||||
.map(AbstractBaseConverter.class::cast)
|
||||
.forEach(converter -> setConversionService(converter, conversionService));
|
||||
return conversionService;
|
||||
}
|
||||
|
||||
private void setConversionService(AbstractBaseConverter<?, ?> converter, ConversionService conversionService) {
|
||||
try {
|
||||
Field conversionServiceField = AbstractBaseConverter.class.getDeclaredField("conversionService");
|
||||
conversionServiceField.setAccessible(true);
|
||||
conversionServiceField.set(converter, conversionService);
|
||||
} catch (NoSuchFieldException | IllegalAccessException e) {
|
||||
throw new IllegalStateException("Unable to initialize Quartz Manager converters", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,23 +8,15 @@ import it.fabioformosa.quartzmanager.api.dto.TriggerKeyDTO;
|
||||
import org.quartz.JobKey;
|
||||
import org.quartz.Trigger;
|
||||
import org.quartz.TriggerKey;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
public abstract class TriggerToTriggerDTO<S extends Trigger, T extends TriggerDTO> extends AbstractBaseConverter<S, T> {
|
||||
|
||||
@Autowired
|
||||
private TriggerKeyToTriggerKeyDTO triggerKeyToTriggerKeyDTO;
|
||||
|
||||
@Autowired
|
||||
private JobKeyToJobKeyDTO jobKeyToJobKeyDTO;
|
||||
|
||||
@Autowired
|
||||
private JobKeyToJobDetailDTO jobKeyToJobDetailDTO;
|
||||
@Component
|
||||
public class TriggerToTriggerDTO<S extends Trigger, T extends TriggerDTO> extends AbstractBaseConverter<S, T> {
|
||||
|
||||
@Override
|
||||
protected void convert(S source, T target) {
|
||||
TriggerKey triggerKey = source.getKey();
|
||||
TriggerKeyDTO triggerKeyDTO = triggerKeyToTriggerKeyDTO.convert(triggerKey);
|
||||
TriggerKeyDTO triggerKeyDTO = conversionService.convert(triggerKey, TriggerKeyDTO.class);
|
||||
target.setTriggerKeyDTO(triggerKeyDTO);
|
||||
|
||||
target.setStartTime(source.getStartTime());
|
||||
@@ -37,15 +29,16 @@ public abstract class TriggerToTriggerDTO<S extends Trigger, T extends TriggerDT
|
||||
target.setMayFireAgain(source.mayFireAgain());
|
||||
|
||||
JobKey jobKey = source.getJobKey();
|
||||
if (jobKey == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
JobKeyDTO jobKeyDTO = jobKeyToJobKeyDTO.convert(jobKey);
|
||||
JobKeyDTO jobKeyDTO = conversionService.convert(jobKey, JobKeyDTO.class);
|
||||
target.setJobKeyDTO(jobKeyDTO);
|
||||
|
||||
JobDetailDTO jobDetailDTO = jobKeyToJobDetailDTO.convert(jobKey);
|
||||
JobDetailDTO jobDetailDTO = conversionService.convert(jobKey, JobDetailDTO.class);
|
||||
target.setJobDetailDTO(jobDetailDTO);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected T createOrRetrieveTarget(S source) {
|
||||
return (T) new TriggerDTO();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<main.basedir>${basedir}/../..</main.basedir>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<main.basedir>${basedir}/../..</main.basedir>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
<springdoc-openapi.version>3.0.3</springdoc-openapi.version>
|
||||
<sonar.exclusions>**/SpringApplicationTest.java</sonar.exclusions>
|
||||
</properties>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<main.basedir>${basedir}/../..</main.basedir>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
<frontend.folderName>quartz-manager-frontend</frontend.folderName>
|
||||
<node.version>v16.14.1</node.version>
|
||||
<npm.version>8.19.3</npm.version>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
<springdoc-openapi.version>3.0.3</springdoc-openapi.version>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
||||
Reference in New Issue
Block a user