Skip to content

Commit

Permalink
Merge branch 'main' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
anidotnet committed Jul 1, 2024
2 parents 8efd36c + e81c6c5 commit b297790
Show file tree
Hide file tree
Showing 64 changed files with 680 additions and 465 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ on:
- release
paths-ignore:
- "README.md"
- "CHANGELOG.md"

jobs:
build_linux:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,7 @@ captures/
test.log
/build
!no2-old.db
!no2-v3.db
.diffblue
infer-out
secring.gpg
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
## Release 4.3.0

### New Changes

- Nitrite now supports JPMS. It is now modular and can be used in Java 9 or above.
- Version upgrade for several dependencies
- Repository type validation can be disabled in `NitriteBuilder` as a fix for #966

### Issue Fixes

- Fix for #935
- Fix for #948
- Fix for #961
- Fix for #966
- Fix for #977
- Fix for #990

## Release 4.2.2 - Mar 5, 2024

### Issue Fixes
Expand Down
2 changes: 1 addition & 1 deletion nitrite-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dizitart</groupId>
<artifactId>nitrite-java</artifactId>
<version>4.2.2</version>
<version>4.3.0-SNAPSHOT</version>
</parent>

<artifactId>nitrite-bom</artifactId>
Expand Down
13 changes: 12 additions & 1 deletion nitrite-jackson-mapper/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dizitart</groupId>
<artifactId>nitrite-java</artifactId>
<version>4.2.2</version>
<version>4.3.0-SNAPSHOT</version>
</parent>

<artifactId>nitrite-jackson-mapper</artifactId>
Expand Down Expand Up @@ -144,6 +144,17 @@
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive combine.children="append">
<manifestEntries>
<Automatic-Module-Name>org.dizitart.no2.jackson</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,183 +17,24 @@

package org.dizitart.no2.common.mapper;

import com.fasterxml.jackson.databind.DeserializationConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.cfg.ContextAttributes;
import com.fasterxml.jackson.databind.introspect.VisibilityChecker;
import com.fasterxml.jackson.databind.jsontype.PolymorphicTypeValidator;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.BinaryNode;
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
import org.dizitart.no2.NitriteConfig;
import org.dizitart.no2.common.mapper.modules.NitriteIdModule;
import org.dizitart.no2.exceptions.ObjectMappingException;
import org.junit.Test;

import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.text.DateFormat;

import static org.junit.Assert.*;

public class JacksonMapperTest {
@Test
public void testConstructor() {
ObjectMapper objectMapper = (new JacksonMapper()).getObjectMapper();
PolymorphicTypeValidator polymorphicTypeValidator = objectMapper.getPolymorphicTypeValidator();
assertTrue(polymorphicTypeValidator instanceof LaissezFaireSubTypeValidator);
VisibilityChecker<?> visibilityChecker = objectMapper.getVisibilityChecker();
assertTrue(visibilityChecker instanceof VisibilityChecker.Std);
assertNull(objectMapper.getPropertyNamingStrategy());
assertTrue(objectMapper
.getDeserializationContext() instanceof com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl);
assertSame(objectMapper.getFactory(), objectMapper.getJsonFactory());
assertTrue(objectMapper.getSerializerFactory() instanceof com.fasterxml.jackson.databind.ser.BeanSerializerFactory);
assertTrue(objectMapper
.getSerializerProvider() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(objectMapper
.getSerializerProviderInstance() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(
objectMapper.getSubtypeResolver() instanceof com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver);
DeserializationConfig deserializationConfig = objectMapper.getDeserializationConfig();
assertTrue(deserializationConfig
.getAnnotationIntrospector() instanceof com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector);
assertNull(deserializationConfig.getActiveView());
assertNull(deserializationConfig.getHandlerInstantiator());
assertSame(visibilityChecker, deserializationConfig.getDefaultVisibilityChecker());
assertTrue(deserializationConfig
.getClassIntrospector() instanceof com.fasterxml.jackson.databind.introspect.BasicClassIntrospector);
DateFormat expectedDateFormat = objectMapper.getDateFormat();
assertSame(expectedDateFormat, deserializationConfig.getDateFormat());
assertNull(deserializationConfig.getFullRootName());
JsonNodeFactory expectedNodeFactory = objectMapper.getNodeFactory();
assertSame(expectedNodeFactory, deserializationConfig.getNodeFactory());
assertSame(polymorphicTypeValidator, deserializationConfig.getPolymorphicTypeValidator());
assertNull(deserializationConfig.getDefaultMergeable());
assertEquals(237020288, deserializationConfig.getDeserializationFeatures());
assertTrue(deserializationConfig.getAttributes() instanceof ContextAttributes.Impl);
}

@Test
public void testConstructor2() {
NitriteIdModule nitriteIdModule = new NitriteIdModule();
NitriteIdModule nitriteIdModule1 = new NitriteIdModule();
JacksonMapper jacksonMapper = new JacksonMapper();
jacksonMapper.registerJacksonModule(nitriteIdModule);
jacksonMapper.registerJacksonModule(nitriteIdModule1);
jacksonMapper.registerJacksonModule(new NitriteIdModule());
ObjectMapper objectMapper = jacksonMapper.getObjectMapper();
PolymorphicTypeValidator polymorphicTypeValidator = objectMapper.getPolymorphicTypeValidator();
assertTrue(polymorphicTypeValidator instanceof LaissezFaireSubTypeValidator);
VisibilityChecker<?> visibilityChecker = objectMapper.getVisibilityChecker();
assertTrue(visibilityChecker instanceof VisibilityChecker.Std);
assertNull(objectMapper.getPropertyNamingStrategy());
assertTrue(objectMapper
.getDeserializationContext() instanceof com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl);
assertSame(objectMapper.getFactory(), objectMapper.getJsonFactory());
assertTrue(objectMapper.getSerializerFactory() instanceof com.fasterxml.jackson.databind.ser.BeanSerializerFactory);
assertTrue(objectMapper
.getSerializerProvider() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(objectMapper
.getSerializerProviderInstance() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(
objectMapper.getSubtypeResolver() instanceof com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver);
DeserializationConfig deserializationConfig = objectMapper.getDeserializationConfig();
assertTrue(deserializationConfig
.getAnnotationIntrospector() instanceof com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector);
assertNull(deserializationConfig.getActiveView());
assertNull(deserializationConfig.getHandlerInstantiator());
assertSame(visibilityChecker, deserializationConfig.getDefaultVisibilityChecker());
assertTrue(deserializationConfig
.getClassIntrospector() instanceof com.fasterxml.jackson.databind.introspect.BasicClassIntrospector);
DateFormat expectedDateFormat = objectMapper.getDateFormat();
assertSame(expectedDateFormat, deserializationConfig.getDateFormat());
assertNull(deserializationConfig.getFullRootName());
JsonNodeFactory expectedNodeFactory = objectMapper.getNodeFactory();
assertSame(expectedNodeFactory, deserializationConfig.getNodeFactory());
assertSame(polymorphicTypeValidator, deserializationConfig.getPolymorphicTypeValidator());
assertNull(deserializationConfig.getDefaultMergeable());
assertEquals(237020288, deserializationConfig.getDeserializationFeatures());
assertTrue(deserializationConfig.getAttributes() instanceof ContextAttributes.Impl);
}

@Test
public void testConstructor3() {
JacksonMapper jacksonMapper = new JacksonMapper();
jacksonMapper.registerJacksonModule(new NitriteIdModule());
ObjectMapper objectMapper = jacksonMapper.getObjectMapper();
PolymorphicTypeValidator polymorphicTypeValidator = objectMapper.getPolymorphicTypeValidator();
assertTrue(polymorphicTypeValidator instanceof LaissezFaireSubTypeValidator);
VisibilityChecker<?> visibilityChecker = objectMapper.getVisibilityChecker();
assertTrue(visibilityChecker instanceof VisibilityChecker.Std);
assertNull(objectMapper.getPropertyNamingStrategy());
assertTrue(objectMapper
.getDeserializationContext() instanceof com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl);
assertSame(objectMapper.getFactory(), objectMapper.getJsonFactory());
assertTrue(objectMapper.getSerializerFactory() instanceof com.fasterxml.jackson.databind.ser.BeanSerializerFactory);
assertTrue(objectMapper
.getSerializerProvider() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(objectMapper
.getSerializerProviderInstance() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(
objectMapper.getSubtypeResolver() instanceof com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver);
DeserializationConfig deserializationConfig = objectMapper.getDeserializationConfig();
assertTrue(deserializationConfig
.getAnnotationIntrospector() instanceof com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector);
assertNull(deserializationConfig.getActiveView());
assertNull(deserializationConfig.getHandlerInstantiator());
assertSame(visibilityChecker, deserializationConfig.getDefaultVisibilityChecker());
assertTrue(deserializationConfig
.getClassIntrospector() instanceof com.fasterxml.jackson.databind.introspect.BasicClassIntrospector);
DateFormat expectedDateFormat = objectMapper.getDateFormat();
assertSame(expectedDateFormat, deserializationConfig.getDateFormat());
assertNull(deserializationConfig.getFullRootName());
JsonNodeFactory expectedNodeFactory = objectMapper.getNodeFactory();
assertSame(expectedNodeFactory, deserializationConfig.getNodeFactory());
assertSame(polymorphicTypeValidator, deserializationConfig.getPolymorphicTypeValidator());
assertNull(deserializationConfig.getDefaultMergeable());
assertEquals(237020288, deserializationConfig.getDeserializationFeatures());
assertTrue(deserializationConfig.getAttributes() instanceof ContextAttributes.Impl);
}

@Test
public void testGetObjectMapper() {
ObjectMapper actualCreateObjectMapperResult = (new JacksonMapper()).getObjectMapper();
PolymorphicTypeValidator polymorphicTypeValidator = actualCreateObjectMapperResult.getPolymorphicTypeValidator();
assertTrue(polymorphicTypeValidator instanceof LaissezFaireSubTypeValidator);
VisibilityChecker<?> visibilityChecker = actualCreateObjectMapperResult.getVisibilityChecker();
assertTrue(visibilityChecker instanceof VisibilityChecker.Std);
assertNull(actualCreateObjectMapperResult.getPropertyNamingStrategy());
assertTrue(actualCreateObjectMapperResult
.getDeserializationContext() instanceof com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.Impl);
assertSame(actualCreateObjectMapperResult.getFactory(), actualCreateObjectMapperResult.getJsonFactory());
assertTrue(actualCreateObjectMapperResult
.getSerializerFactory() instanceof com.fasterxml.jackson.databind.ser.BeanSerializerFactory);
assertTrue(actualCreateObjectMapperResult
.getSerializerProvider() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(actualCreateObjectMapperResult
.getSerializerProviderInstance() instanceof com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.Impl);
assertTrue(actualCreateObjectMapperResult
.getSubtypeResolver() instanceof com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver);
DeserializationConfig deserializationConfig = actualCreateObjectMapperResult.getDeserializationConfig();
assertTrue(deserializationConfig.getAttributes() instanceof ContextAttributes.Impl);
assertTrue(deserializationConfig
.getAnnotationIntrospector() instanceof com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector);
assertNull(deserializationConfig.getActiveView());
assertEquals(237020288, deserializationConfig.getDeserializationFeatures());
DateFormat expectedDateFormat = actualCreateObjectMapperResult.getDateFormat();
assertSame(expectedDateFormat, deserializationConfig.getDateFormat());
assertNull(deserializationConfig.getDefaultMergeable());
assertSame(visibilityChecker, deserializationConfig.getDefaultVisibilityChecker());
assertNull(deserializationConfig.getHandlerInstantiator());
JsonNodeFactory expectedNodeFactory = actualCreateObjectMapperResult.getNodeFactory();
assertSame(expectedNodeFactory, deserializationConfig.getNodeFactory());
assertSame(polymorphicTypeValidator, deserializationConfig.getPolymorphicTypeValidator());
assertTrue(deserializationConfig
.getClassIntrospector() instanceof com.fasterxml.jackson.databind.introspect.BasicClassIntrospector);
assertNull(deserializationConfig.getFullRootName());
assertNull(deserializationConfig.getProblemHandlers());
assertNotNull(actualCreateObjectMapperResult);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import org.dizitart.no2.repository.ObjectRepository;
import org.dizitart.no2.repository.annotations.Id;
import org.dizitart.no2.repository.annotations.Index;
import org.dizitart.no2.repository.annotations.Indices;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
Expand Down Expand Up @@ -264,9 +263,7 @@ public void testNoUniqueAndTextIndex() {
@Data
@NoArgsConstructor
@AllArgsConstructor
@Indices({
@Index(fields = "synced", type = IndexType.NON_UNIQUE)
})
@Index(fields = "synced", type = IndexType.NON_UNIQUE)
public static class Receipt {
@Id
private String clientRef;
Expand All @@ -283,21 +280,17 @@ public enum Status {
public static class EmptyClass {
}

@Indices({
@Index(fields = "value", type = IndexType.FULL_TEXT),
@Index(fields = "value")
})
@Data
@NoArgsConstructor
@AllArgsConstructor
@Index(fields = "value", type = IndexType.FULL_TEXT)
@Index(fields = "value")
public static class EntityUniqueFullText {
private String value;
}

@Indices({
@Index(fields = "value", type = IndexType.FULL_TEXT),
@Index(fields = "value", type = IndexType.NON_UNIQUE)
})
@Index(fields = "value", type = IndexType.FULL_TEXT)
@Index(fields = "value", type = IndexType.NON_UNIQUE)
@Data
@NoArgsConstructor
@AllArgsConstructor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.dizitart.no2.repository.ObjectRepository;
import org.dizitart.no2.repository.annotations.Id;
import org.dizitart.no2.repository.annotations.Index;
import org.dizitart.no2.repository.annotations.Indices;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Expand Down Expand Up @@ -113,11 +112,9 @@ public void testFindByEmbeddedField() {

@ToString
@EqualsAndHashCode
@Indices({
@Index(fields = "joinDate", type = IndexType.NON_UNIQUE),
@Index(fields = "address", type = IndexType.FULL_TEXT),
@Index(fields = "employeeNote:text", type = IndexType.FULL_TEXT)
})
@Index(fields = "joinDate", type = IndexType.NON_UNIQUE)
@Index(fields = "address", type = IndexType.FULL_TEXT)
@Index(fields = "employeeNote:text", type = IndexType.FULL_TEXT)
public static class EmployeeForCustomSeparator implements Serializable {
@Id
@Getter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
import org.dizitart.no2.repository.Cursor;
import org.dizitart.no2.repository.ObjectRepository;
import org.dizitart.no2.repository.annotations.Index;
import org.dizitart.no2.repository.annotations.Indices;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
Expand Down Expand Up @@ -173,9 +172,7 @@ public void testUniversalFullTextIndexing() {
}
}

@Indices(
@Index(fields = "text", type = IndexType.FULL_TEXT)
)
@Index(fields = "text", type = IndexType.FULL_TEXT)
public static class TextData {
public int id;
public String text;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import lombok.ToString;
import org.dizitart.no2.repository.annotations.Id;
import org.dizitart.no2.repository.annotations.Index;
import org.dizitart.no2.repository.annotations.Indices;

import java.io.Serializable;
import java.util.Date;
Expand All @@ -38,9 +37,7 @@
@Setter
@ToString
@EqualsAndHashCode
@Indices({
@Index(fields = "companyName")
})
@Index(fields = "companyName")
public class Company implements Serializable {
@Id(fieldName = "company_id")
@JsonProperty("company_id")
Expand Down
13 changes: 12 additions & 1 deletion nitrite-mvstore-adapter/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>org.dizitart</groupId>
<artifactId>nitrite-java</artifactId>
<version>4.2.2</version>
<version>4.3.0-SNAPSHOT</version>
</parent>

<artifactId>nitrite-mvstore-adapter</artifactId>
Expand Down Expand Up @@ -182,6 +182,17 @@
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive combine.children="append">
<manifestEntries>
<Automatic-Module-Name>org.dizitart.no2.mvstore</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>

Expand Down
Loading

0 comments on commit b297790

Please sign in to comment.