diff --git a/.mvn/maven.config b/.mvn/maven.config deleted file mode 100644 index aa764e4..0000000 --- a/.mvn/maven.config +++ /dev/null @@ -1,2 +0,0 @@ -revision=1.0.0 -changelist=-SNAPSHOT \ No newline at end of file diff --git a/pom.xml b/pom.xml index 361648e..1b5fc20 100644 --- a/pom.xml +++ b/pom.xml @@ -6,33 +6,15 @@ io.github.ngocnhan-tran1996 spring-jdbc-oracle - ${revision}{changelist} - Spring Jdbc Oracle - - - 21 - 21 - UTF-8 - - 6.1.11 - 23.4.0.24.05 - + 1.0.0-SNAPSHOT + pom - - - org.springframework - spring-jdbc - ${spring-jdbc.version} - provided - + Spring Jdbc Oracle - - com.oracle.database.jdbc - ojdbc11 - ${oracle.jdbc.version} - provided - - + + spring-jdbc-oracle-core + spring-jdbc-oracle-test + @@ -41,33 +23,4 @@ - - - - org.jacoco - jacoco-maven-plugin - 0.8.12 - - - - prepare-agent - - - - report - prepare-package - - report - - - - - - - org.apache.maven.plugins - maven-site-plugin - 3.12.1 - - - \ No newline at end of file diff --git a/spring-jdbc-oracle-core/pom.xml b/spring-jdbc-oracle-core/pom.xml new file mode 100644 index 0000000..3dcf654 --- /dev/null +++ b/spring-jdbc-oracle-core/pom.xml @@ -0,0 +1,41 @@ + + + + 4.0.0 + + + io.github.ngocnhan-tran1996 + spring-jdbc-oracle + 1.0.0-SNAPSHOT + + + spring-jdbc-oracle-core + + + 22 + 22 + UTF-8 + + 6.1.11 + 23.4.0.24.05 + + + + + org.springframework + spring-jdbc + ${spring-jdbc.version} + provided + + + + com.oracle.database.jdbc + ojdbc11 + ${oracle.jdbc.version} + provided + + + + \ No newline at end of file diff --git a/src/main/java/io/spring/jdbc/oracle/accessor/ClassRecord.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/accessor/ClassRecord.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/accessor/ClassRecord.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/accessor/ClassRecord.java diff --git a/src/main/java/io/spring/jdbc/oracle/accessor/ParameterAccessor.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/accessor/ParameterAccessor.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/accessor/ParameterAccessor.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/accessor/ParameterAccessor.java diff --git a/src/main/java/io/spring/jdbc/oracle/annotation/OracleParameter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/annotation/OracleParameter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/annotation/OracleParameter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/annotation/OracleParameter.java diff --git a/src/main/java/io/spring/jdbc/oracle/annotation/OracleType.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/annotation/OracleType.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/annotation/OracleType.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/annotation/OracleType.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/ConvertKey.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/ConvertKey.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/ConvertKey.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/ConvertKey.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/GenericOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/GenericOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/GenericOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/GenericOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/OracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/OracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/OracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/OracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/OracleConverters.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/OracleConverters.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/OracleConverters.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/OracleConverters.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToArrayGenericOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToArrayGenericOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToArrayGenericOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToArrayGenericOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToCollectionGenericOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToCollectionGenericOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToCollectionGenericOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/ArrayToCollectionGenericOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToArrayGenericOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToArrayGenericOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToArrayGenericOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToArrayGenericOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToCollectionGenericOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToCollectionGenericOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToCollectionGenericOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/CollectionToCollectionGenericOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/DefaultOracleConverters.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/DefaultOracleConverters.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/DefaultOracleConverters.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/DefaultOracleConverters.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/LocalDatetimeToTimestampOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/LocalDatetimeToTimestampOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/LocalDatetimeToTimestampOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/LocalDatetimeToTimestampOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/NoneOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/NoneOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/NoneOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/NoneOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/NumberToStringGenericOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/NumberToStringGenericOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/NumberToStringGenericOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/NumberToStringGenericOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/converter/support/TimestampToLocalDatetimeOracleConverter.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/TimestampToLocalDatetimeOracleConverter.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/converter/support/TimestampToLocalDatetimeOracleConverter.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/converter/support/TimestampToLocalDatetimeOracleConverter.java diff --git a/src/main/java/io/spring/jdbc/oracle/exception/ValueException.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/exception/ValueException.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/exception/ValueException.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/exception/ValueException.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/AbstractMapper.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/AbstractMapper.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/AbstractMapper.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/AbstractMapper.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/BeanPropertyMapper.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/BeanPropertyMapper.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/BeanPropertyMapper.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/BeanPropertyMapper.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/DelegateMapper.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/DelegateMapper.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/DelegateMapper.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/DelegateMapper.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/Mapper.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/Mapper.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/Mapper.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/Mapper.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/RecordPropertyMapper.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/RecordPropertyMapper.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/RecordPropertyMapper.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/RecordPropertyMapper.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/property/MapperProperty.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/property/MapperProperty.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/property/MapperProperty.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/property/MapperProperty.java diff --git a/src/main/java/io/spring/jdbc/oracle/mapper/property/TypeProperty.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/property/TypeProperty.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/mapper/property/TypeProperty.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/mapper/property/TypeProperty.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/input/AbstractTypeValue.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/AbstractTypeValue.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/input/AbstractTypeValue.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/AbstractTypeValue.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/input/ArrayTypeValue.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/ArrayTypeValue.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/input/ArrayTypeValue.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/ArrayTypeValue.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/input/ParameterInput.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/ParameterInput.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/input/ParameterInput.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/ParameterInput.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/input/StructArrayTypeValue.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/StructArrayTypeValue.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/input/StructArrayTypeValue.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/StructArrayTypeValue.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/input/StructTypeValue.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/StructTypeValue.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/input/StructTypeValue.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/input/StructTypeValue.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/output/AbstractReturnType.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/AbstractReturnType.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/output/AbstractReturnType.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/AbstractReturnType.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/output/ArrayReturnType.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/ArrayReturnType.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/output/ArrayReturnType.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/ArrayReturnType.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/output/ParameterOutput.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/ParameterOutput.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/output/ParameterOutput.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/ParameterOutput.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/output/StructArrayReturnType.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/StructArrayReturnType.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/output/StructArrayReturnType.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/StructArrayReturnType.java diff --git a/src/main/java/io/spring/jdbc/oracle/parameter/output/StructReturnType.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/StructReturnType.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/parameter/output/StructReturnType.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/parameter/output/StructReturnType.java diff --git a/src/main/java/io/spring/jdbc/oracle/utils/Mappers.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Mappers.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/utils/Mappers.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Mappers.java diff --git a/src/main/java/io/spring/jdbc/oracle/utils/Matchers.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Matchers.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/utils/Matchers.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Matchers.java diff --git a/src/main/java/io/spring/jdbc/oracle/utils/Strings.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Strings.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/utils/Strings.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Strings.java diff --git a/src/main/java/io/spring/jdbc/oracle/utils/Validators.java b/spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Validators.java similarity index 100% rename from src/main/java/io/spring/jdbc/oracle/utils/Validators.java rename to spring-jdbc-oracle-core/src/main/java/io/spring/jdbc/oracle/utils/Validators.java diff --git a/spring-jdbc-oracle-test/pom.xml b/spring-jdbc-oracle-test/pom.xml index 689bc15..8dcedc4 100644 --- a/spring-jdbc-oracle-test/pom.xml +++ b/spring-jdbc-oracle-test/pom.xml @@ -6,14 +6,14 @@ org.springframework.boot - spring-boot-starter-parent + spring-boot-dependencies 3.3.2 io.github.ngocnhan-tran1996 spring-jdbc-oracle-test - ${revision}{changelist} + 1.0.0-SNAPSHOT 22 @@ -22,7 +22,7 @@ io.github.ngocnhan-tran1996 - spring-jdbc-oracle + spring-jdbc-oracle-core 1.0.0-SNAPSHOT diff --git a/spring-jdbc-oracle-test/src/test/java/io/spring/jdbc/oracle/mapper/DelegateMapperTest.java b/spring-jdbc-oracle-test/src/test/java/io/spring/jdbc/oracle/mapper/DelegateMapperTest.java index 09cbdae..9e23af5 100644 --- a/spring-jdbc-oracle-test/src/test/java/io/spring/jdbc/oracle/mapper/DelegateMapperTest.java +++ b/spring-jdbc-oracle-test/src/test/java/io/spring/jdbc/oracle/mapper/DelegateMapperTest.java @@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import io.spring.jdbc.oracle.annotation.OracleParameter; +import io.spring.jdbc.oracle.annotation.OracleType; import io.spring.jdbc.oracle.converter.OracleConverter; import io.spring.jdbc.oracle.converter.support.DefaultOracleConverters; import io.spring.jdbc.oracle.exception.ValueException; @@ -17,7 +18,6 @@ import java.util.Map; import java.util.Optional; import javax.sql.DataSource; -import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -123,6 +123,16 @@ public LocalDate convert(LocalDateTime source) { } + public record StringToTString() implements OracleConverter { + + @Override + public String convert(String source) { + + return source; + } + + } + record Person( String firstName, String lastName, @@ -209,9 +219,7 @@ void convert() { Map.of( "first_name", "hello@world", "lastname", "info", - "AGE", BigDecimal.TEN, - "biRthDate", - Timestamp.valueOf(LocalDateTime.of(LocalDate.now(), LocalTime.MIN)) + "AGE", BigDecimal.TEN ) ); assertThat(output) @@ -221,7 +229,7 @@ void convert() { "hello@world", "info", BigDecimal.TEN, - Timestamp.valueOf(LocalDateTime.of(LocalDate.now(), LocalTime.MIN)) + null ) ); } @@ -229,13 +237,26 @@ void convert() { @Getter @Setter @NoArgsConstructor - @AllArgsConstructor static class Person { + @OracleParameter( + input = @OracleType(converter = StringToTString.class), + output = @OracleType(converter = StringToTString.class) + ) private String firstName; private String lastName; private BigDecimal age; private Timestamp birthDate; + private String unknown; + + public Person(String firstName, String lastName, BigDecimal age, Timestamp birthDate) { + + this.firstName = firstName; + this.lastName = lastName; + this.age = age; + this.birthDate = birthDate; + } + } } @@ -375,6 +396,7 @@ void mock_throw_exception_if_class_has_no_same_type() throws SQLException { // arrange var mapper = DelegateMapper.newInstance(PersonWrongBirthDatePojo.class); + mapper.setConverters(null); // assert var output = mapper.toStruct( @@ -390,17 +412,20 @@ void mock_throw_exception_if_class_has_no_same_type() throws SQLException { @Setter static class PersonSetterPojo { - private String firstName; + String firstName; + @OracleParameter("firstName") - private String lastName; + String lastName; + } @Getter static class PersonGetterPojo { - private String firstName; + private final String firstName = "X"; + @OracleParameter("firstName") - private String lastName; + private final String lastName = "X"; } @Getter