You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by an...@apache.org on 2025/03/07 10:33:57 UTC
(ignite-extensions) 01/01: IGNITE-24729 Spring Data: Fix checkstyle for the module.
This is an automated email from the ASF dual-hosted git repository.
anovikov pushed a commit to branch ignite-24729
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git
commit 1078f7b907e7650397ec1ab6648525bb0996d012
Author: nva <an...@apache.org>
AuthorDate: Fri Mar 7 17:28:26 2025 +0700
IGNITE-24729 Spring Data: Fix checkstyle for the module.
---
.../repository/query/IgniteCustomConversions.java | 30 +++++++++++++++++-----
.../repository/query/IgniteRepositoryQuery.java | 15 +++++++----
.../support/IgniteRepositoryFactory.java | 13 +++++-----
.../IgniteSpringDataConversionsTest.java | 18 +++++++++++--
.../CustomConvertersApplicationConfiguration.java | 12 +++++++--
.../org/apache/ignite/springdata/misc/Person.java | 8 +++++-
.../ignite/springdata/misc/PersonRepository.java | 1 +
7 files changed, 74 insertions(+), 23 deletions(-)
diff --git a/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteCustomConversions.java b/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteCustomConversions.java
index c23f7486..060839c1 100644
--- a/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteCustomConversions.java
+++ b/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteCustomConversions.java
@@ -29,8 +29,10 @@ import org.springframework.data.convert.CustomConversions;
import org.springframework.data.convert.WritingConverter;
import org.springframework.data.mapping.model.SimpleTypeHolder;
+import static java.util.Collections.emptyList;
+
/**
- * Custom conversions implementation.
+ * Custom conversion implementation.
* An application can define its own converter by defining the following bean:
* <pre>
* {@code
@@ -42,8 +44,8 @@ import org.springframework.data.mapping.model.SimpleTypeHolder;
* </pre>
*/
public class IgniteCustomConversions extends CustomConversions {
-
- private static final StoreConversions STORE_CONVERSIONS;
+ /** Default converters. */
+ private static final StoreConversions DEFAULT_CONVERTERS;
static {
List<Object> converters = new ArrayList<>();
@@ -51,19 +53,31 @@ public class IgniteCustomConversions extends CustomConversions {
converters.add(new TimestampToDateConverter());
List<Object> storeConverters = Collections.unmodifiableList(converters);
- STORE_CONVERSIONS = StoreConversions.of(SimpleTypeHolder.DEFAULT, storeConverters);
+ DEFAULT_CONVERTERS = StoreConversions.of(SimpleTypeHolder.DEFAULT, storeConverters);
}
+ /**
+ * Default constructor.
+ */
public IgniteCustomConversions() {
- this(Collections.emptyList());
+ this(emptyList());
}
+ /**
+ * Constructor.
+ *
+ * @param converters Custom converters to register.
+ */
public IgniteCustomConversions(List<?> converters) {
- super(STORE_CONVERSIONS, converters);
+ super(DEFAULT_CONVERTERS, converters);
}
+ /**
+ * {@link Timestamp} to {@link LocalDateTime} converter.
+ */
@WritingConverter
static class TimestampToLocalDateTimeConverter implements Converter<Timestamp, LocalDateTime> {
+ /** {@inheritDoc} */
@Override public LocalDateTime convert(Timestamp source) {
return source.toInstant()
.atZone(ZoneId.systemDefault())
@@ -71,8 +85,12 @@ public class IgniteCustomConversions extends CustomConversions {
}
}
+ /**
+ * {@link Timestamp} to {@link Date} converter.
+ */
@WritingConverter
static class TimestampToDateConverter implements Converter<Timestamp, Date> {
+ /** {@inheritDoc} */
@Override public Date convert(Timestamp source) {
return new Date((source).getTime());
}
diff --git a/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteRepositoryQuery.java b/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteRepositoryQuery.java
index 5615890a..d1243126 100644
--- a/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteRepositoryQuery.java
+++ b/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/query/IgniteRepositoryQuery.java
@@ -250,6 +250,7 @@ public class IgniteRepositoryQuery implements RepositoryQuery {
/** Static query configuration. */
private final DynamicQueryConfig staticQueryConfiguration;
+ /** Conversion service. */
private final ConversionService conversionService;
/**
@@ -895,12 +896,16 @@ public class IgniteRepositoryQuery implements RepositoryQuery {
}
}
+ /**
+ * @param source Source object.
+ * @param targetType Target type.
+ * @return Converted object.
+ */
private <T> T convert(Object source, Class<?> targetType) {
- if (conversionService.canConvert(source.getClass(), targetType)) {
- return (T) conversionService.convert(source, targetType);
- } else {
- return (T) source;
- }
+ if (conversionService.canConvert(source.getClass(), targetType))
+ return (T)conversionService.convert(source, targetType);
+
+ return (T)source;
}
/**
diff --git a/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/support/IgniteRepositoryFactory.java b/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/support/IgniteRepositoryFactory.java
index d4d79661..63e37959 100644
--- a/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/support/IgniteRepositoryFactory.java
+++ b/modules/spring-data-ext/spring-data/src/main/java/org/apache/ignite/springdata/repository/support/IgniteRepositoryFactory.java
@@ -33,7 +33,6 @@ import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.expression.StandardBeanExpressionResolver;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
-import org.springframework.core.convert.support.GenericConversionService;
import org.springframework.data.convert.CustomConversions;
import org.springframework.data.repository.core.EntityInformation;
import org.springframework.data.repository.core.RepositoryInformation;
@@ -68,6 +67,7 @@ public class IgniteRepositoryFactory extends RepositoryFactorySupport {
/** Ignite proxy instance associated with the current repository. */
private final IgniteProxy ignite;
+ /** Conversion service. */
private final ConversionService conversionService;
/**
@@ -77,7 +77,7 @@ public class IgniteRepositoryFactory extends RepositoryFactorySupport {
public IgniteRepositoryFactory(ApplicationContext ctx, Class<?> repoInterface) {
ignite = ctx.getBean(IgniteProxy.class, repoInterface);
- ConfigurableApplicationContext configurableCtx = (ConfigurableApplicationContext) ctx;
+ ConfigurableApplicationContext configurableCtx = (ConfigurableApplicationContext)ctx;
if (configurableCtx.getBeanNamesForType(CustomConversions.class).length == 0) {
configurableCtx.getBeanFactory().registerSingleton(CustomConversions.class.getCanonicalName(), new IgniteCustomConversions());
}
@@ -87,11 +87,10 @@ public class IgniteRepositoryFactory extends RepositoryFactorySupport {
null);
CustomConversions customConversions = configurableCtx.getBean(CustomConversions.class);
- DefaultConversionService defaultConversionService = new DefaultConversionService();
- if (defaultConversionService instanceof GenericConversionService) {
- customConversions.registerConvertersIn(defaultConversionService);
- }
- conversionService = defaultConversionService;
+ DefaultConversionService dfltConversionSrvc = new DefaultConversionService();
+ customConversions.registerConvertersIn(dfltConversionSrvc);
+
+ conversionService = dfltConversionSrvc;
RepositoryConfig cfg = getRepositoryConfiguration(repoInterface);
diff --git a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/IgniteSpringDataConversionsTest.java b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/IgniteSpringDataConversionsTest.java
index a99463ad..045e704d 100644
--- a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/IgniteSpringDataConversionsTest.java
+++ b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/IgniteSpringDataConversionsTest.java
@@ -26,6 +26,9 @@ import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+/**
+ * Test for Ignite Spring Data conversions.
+ */
public class IgniteSpringDataConversionsTest extends GridCommonAbstractTest {
/** Repository. */
protected PersonRepository repo;
@@ -33,10 +36,12 @@ public class IgniteSpringDataConversionsTest extends GridCommonAbstractTest {
/** Context. */
protected static AnnotationConfigApplicationContext ctx;
+ /** {@inheritDoc} */
@Override protected void beforeTest() {
ctx = new AnnotationConfigApplicationContext();
}
+ /** */
@Test
public void testPutGetWithDefaultConverters() {
init(ApplicationConfiguration.class);
@@ -46,6 +51,7 @@ public class IgniteSpringDataConversionsTest extends GridCommonAbstractTest {
assertEquals(person, savePerson(person));
}
+ /** */
@Test
public void testPutGetWithCustomConverters() {
init(CustomConvertersApplicationConfiguration.class);
@@ -55,13 +61,20 @@ public class IgniteSpringDataConversionsTest extends GridCommonAbstractTest {
assertNull(savePerson(person).getCreatedAt());
}
- private void init(Class<? extends ApplicationConfiguration> applicationConfiguration) {
- ctx.register(applicationConfiguration);
+ /**
+ * @param componentClasses Component classes.
+ */
+ private void init(Class<? extends ApplicationConfiguration> componentClasses) {
+ ctx.register(componentClasses);
ctx.refresh();
repo = ctx.getBean(PersonRepository.class);
}
+ /**
+ * @param person Person to save.
+ * @return Saved person.
+ */
private Person savePerson(Person person) {
int id = 1;
@@ -71,6 +84,7 @@ public class IgniteSpringDataConversionsTest extends GridCommonAbstractTest {
return repo.selectByFirstNameWithCreatedAt(person.getFirstName()).get(0);
}
+ /** {@inheritDoc} */
@Override protected void afterTest() {
ctx.close();
}
diff --git a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/CustomConvertersApplicationConfiguration.java b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/CustomConvertersApplicationConfiguration.java
index 69faeaff..8ed9507a 100644
--- a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/CustomConvertersApplicationConfiguration.java
+++ b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/CustomConvertersApplicationConfiguration.java
@@ -19,22 +19,30 @@ package org.apache.ignite.springdata.misc;
import java.sql.Timestamp;
import java.time.LocalDateTime;
-import java.util.Arrays;
import org.apache.ignite.springdata.repository.query.IgniteCustomConversions;
import org.springframework.context.annotation.Bean;
import org.springframework.core.convert.converter.Converter;
import org.springframework.data.convert.CustomConversions;
+import static java.util.Collections.singletonList;
+
/**
* Test configuration that overrides default converter for LocalDateTime type.
*/
public class CustomConvertersApplicationConfiguration extends ApplicationConfiguration {
+ /**
+ * @return Custom conversions bean.
+ */
@Bean
public CustomConversions customConversions() {
- return new IgniteCustomConversions(Arrays.asList(new LocalDateTimeWriteConverter()));
+ return new IgniteCustomConversions(singletonList(new LocalDateTimeWriteConverter()));
}
+ /**
+ * Converter for {@link Timestamp} to {@link LocalDateTime}.
+ */
static class LocalDateTimeWriteConverter implements Converter<Timestamp, LocalDateTime> {
+ /** {@inheritDoc} */
@Override public LocalDateTime convert(Timestamp source) {
return null;
}
diff --git a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/Person.java b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/Person.java
index d810c6bc..98eff8ce 100644
--- a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/Person.java
+++ b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/Person.java
@@ -40,6 +40,7 @@ public class Person {
@QuerySqlField
private Date birthday;
+ /** Created at. */
@QuerySqlField
private LocalDateTime createdAt;
@@ -53,6 +54,11 @@ public class Person {
birthday = new Date();
}
+ /**
+ * @param firstName First name.
+ * @param secondName Second name.
+ * @param createdAt Created at.
+ */
public Person(String firstName, String secondName, LocalDateTime createdAt) {
this.firstName = firstName;
this.secondName = secondName;
@@ -123,4 +129,4 @@ public class Person {
@Override public int hashCode() {
return Objects.hash(firstName, secondName, birthday);
}
-}
\ No newline at end of file
+}
diff --git a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/PersonRepository.java b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/PersonRepository.java
index 1c180d92..c845bb30 100644
--- a/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/PersonRepository.java
+++ b/modules/spring-data-ext/spring-data/src/test/java/org/apache/ignite/springdata/misc/PersonRepository.java
@@ -120,6 +120,7 @@ public interface PersonRepository extends IgniteRepository<Person, Integer> {
@Query("SELECT secondName FROM Person WHERE firstName REGEXP ?")
public List<String> selectField(String val, Pageable pageable);
+ /** */
@Query("SELECT firstName, secondName, birthday, createdAt FROM Person WHERE firstName = ?")
public List<Person> selectByFirstNameWithCreatedAt(String name);