Skip to content

Commit

Permalink
Merge branch 'dev_jdk8'
Browse files Browse the repository at this point in the history
  • Loading branch information
marcos-lg committed Nov 14, 2024
2 parents 0662487 + 15d4e5f commit 79f46b0
Show file tree
Hide file tree
Showing 20 changed files with 191 additions and 210 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package org.gbif.vocabulary.persistence.handlers;

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

/**
* @author Tomas Rohovsky
*/
public class ZonedDateTimeTypeHandler extends BaseTypeHandler<ZonedDateTime> {

@Override
public void setNonNullParameter(
PreparedStatement ps, int i, ZonedDateTime parameter, JdbcType jdbcType) throws SQLException {
ps.setTimestamp(i, Timestamp.from(parameter.toInstant()));
}

@Override
public ZonedDateTime getNullableResult(ResultSet rs, String columnName) throws SQLException {
Timestamp timestamp = rs.getTimestamp(columnName);
return getZonedDateTime(timestamp);
}

@Override
public ZonedDateTime getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
Timestamp timestamp = rs.getTimestamp(columnIndex);
return getZonedDateTime(timestamp);
}

@Override
public ZonedDateTime getNullableResult(CallableStatement cs, int columnIndex)
throws SQLException {
Timestamp timestamp = cs.getTimestamp(columnIndex);
return getZonedDateTime(timestamp);
}

private static ZonedDateTime getZonedDateTime(Timestamp timestamp) {
if (timestamp != null) {
return ZonedDateTime.ofInstant(timestamp.toInstant(), ZoneId.systemDefault());
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,29 @@
*/
package org.gbif.vocabulary.service.impl;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.ZonedDateTime;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Nullable;
import javax.validation.constraints.NotBlank;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.gbif.api.model.common.paging.Pageable;
import org.gbif.api.model.common.paging.PagingRequest;
import org.gbif.api.model.common.paging.PagingResponse;
Expand All @@ -35,39 +58,11 @@
import org.gbif.vocabulary.service.ExportService;
import org.gbif.vocabulary.service.VocabularyService;
import org.gbif.vocabulary.service.export.ReleasePersister;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.annotation.Nullable;
import javax.validation.constraints.NotBlank;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.annotation.Secured;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;

import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;

/** Default implementation for {@link ExportService}. */
@Service
@Validated
Expand Down Expand Up @@ -126,7 +121,7 @@ public Path exportVocabulary(@NotBlank String vocabularyName, String version) {

// write metadata
ExportMetadata metadata = new ExportMetadata();
metadata.setCreatedDate(LocalDateTime.now());
metadata.setCreatedDate(ZonedDateTime.now());
if (!Strings.isNullOrEmpty(version)) {
metadata.setVersion(version);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,22 @@
*/
package org.gbif.vocabulary.service;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.when;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import java.io.IOException;
import java.nio.file.Path;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.gbif.api.model.common.paging.PagingRequest;
import org.gbif.api.model.common.paging.PagingResponse;
import org.gbif.vocabulary.model.Concept;
Expand All @@ -26,31 +42,12 @@
import org.gbif.vocabulary.model.export.Export;
import org.gbif.vocabulary.model.export.VocabularyExportView;
import org.gbif.vocabulary.persistence.mappers.VocabularyReleaseMapper;

import java.io.IOException;
import java.nio.file.Path;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.test.context.support.WithMockUser;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.when;

/** Tests the {@link ExportService}. */
public class ExportServiceTest extends MockServiceBaseTest {

Expand Down Expand Up @@ -109,7 +106,7 @@ private void mockVocabulary(String vocabularyName) {
c1.setKey(1L);
c1.setName("c1");
c1.setVocabularyKey(vocabulary.getKey());
c1.setCreated(LocalDateTime.now());
c1.setCreated(ZonedDateTime.now());

// tags
Tag tag1 = new Tag();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,21 @@
*/
package org.gbif.vocabulary.service;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;

import java.time.ZonedDateTime;
import javax.validation.ConstraintViolationException;
import org.gbif.vocabulary.model.UserRoles;
import org.gbif.vocabulary.model.VocabularyEntity;
import org.gbif.vocabulary.persistence.mappers.BaseMapper;

import java.time.LocalDateTime;

import javax.validation.ConstraintViolationException;

import org.junit.jupiter.api.Test;
import org.springframework.beans.BeanUtils;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.test.context.support.WithMockUser;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.when;

/**
* Base class to test a {@link BaseService} that can be reused for all the implemenations.
*
Expand Down Expand Up @@ -119,7 +116,7 @@ public void deprecatingWhenUpdatingTest() {
public void restoringDeprecatedWhenUpdatingTest() {
T entityDB = createNewEntity("e1");
entityDB.setKey(TEST_KEY);
entityDB.setDeprecated(LocalDateTime.now());
entityDB.setDeprecated(ZonedDateTime.now());
entityDB.setDeprecatedBy("test");
T updatedEntity = createNewEntity("e1");
BeanUtils.copyProperties(entityDB, updatedEntity);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,10 @@
package org.gbif.vocabulary.model;

import java.net.URI;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.List;

import javax.validation.constraints.NotBlank;

import lombok.Data;

/**
Expand All @@ -36,12 +34,12 @@ public abstract class AbstractVocabularyEntity implements VocabularyEntity {

// deprecation fields
Long replacedByKey;
LocalDateTime deprecated;
ZonedDateTime deprecated;
String deprecatedBy;

// audit fields
LocalDateTime created;
ZonedDateTime created;
String createdBy;
LocalDateTime modified;
ZonedDateTime modified;
String modifiedBy;
}
10 changes: 5 additions & 5 deletions model/src/main/java/org/gbif/vocabulary/model/Auditable.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@
*/
package org.gbif.vocabulary.model;

import java.time.LocalDateTime;
import java.time.ZonedDateTime;

/** Defines the minimum fields that an entity must have in order to be auditable. */
public interface Auditable {

LocalDateTime getCreated();
ZonedDateTime getCreated();

void setCreated(LocalDateTime created);
void setCreated(ZonedDateTime created);

String getCreatedBy();

void setCreatedBy(String createdBy);

LocalDateTime getModified();
ZonedDateTime getModified();

void setModified(LocalDateTime modified);
void setModified(ZonedDateTime modified);

String getModifiedBy();

Expand Down
11 changes: 4 additions & 7 deletions model/src/main/java/org/gbif/vocabulary/model/Definition.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,13 @@
*/
package org.gbif.vocabulary.model;

import org.gbif.vocabulary.model.utils.LenientEquals;

import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.util.Objects;

import javax.validation.constraints.NotNull;

import lombok.Builder;
import lombok.Data;
import lombok.extern.jackson.Jacksonized;
import org.gbif.vocabulary.model.utils.LenientEquals;

@Data
@Builder
Expand All @@ -33,9 +30,9 @@ public class Definition implements ValueEntity, Auditable, LenientEquals<Definit
@NotNull private LanguageRegion language;
private String value;
private String createdBy;
private LocalDateTime created;
private ZonedDateTime created;
private String modifiedBy;
private LocalDateTime modified;
private ZonedDateTime modified;

@Override
public boolean lenientEquals(Definition other) {
Expand Down
Loading

0 comments on commit 79f46b0

Please sign in to comment.