migrate from java.util.Date to java.time

This commit is contained in:
Athou
2024-01-08 20:42:45 +01:00
parent b1a4debb95
commit 69c9988404
35 changed files with 203 additions and 206 deletions

View File

@@ -1,6 +1,7 @@
package com.commafeed.frontend.model;
import java.io.Serializable;
import java.time.Instant;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -67,10 +68,10 @@ public class Entry implements Serializable {
private Integer mediaThumbnailHeight;
@Schema(description = "entry publication date", type = "number", requiredMode = RequiredMode.REQUIRED)
private Date date;
private Instant date;
@Schema(description = "entry insertion date in the database", type = "number", requiredMode = RequiredMode.REQUIRED)
private Date insertedDate;
private Instant insertedDate;
@Schema(description = "feed id", requiredMode = RequiredMode.REQUIRED)
private String feedId;
@@ -165,7 +166,7 @@ public class Entry implements Serializable {
}
entry.setLink(getUrl());
entry.setPublishedDate(getDate());
entry.setPublishedDate(getDate() == null ? null : Date.from(getDate()));
return entry;
}
}

View File

@@ -1,7 +1,7 @@
package com.commafeed.frontend.model;
import java.io.Serializable;
import java.util.Date;
import java.time.Instant;
import com.commafeed.backend.feed.FeedUtils;
import com.commafeed.backend.model.Feed;
@@ -30,10 +30,10 @@ public class Subscription implements Serializable {
private int errorCount;
@Schema(description = "last time the feed was refreshed", type = "number")
private Date lastRefresh;
private Instant lastRefresh;
@Schema(description = "next time the feed refresh is planned, null if refresh is already queued", type = "number")
private Date nextRefresh;
private Instant nextRefresh;
@Schema(description = "this subscription's feed url", requiredMode = RequiredMode.REQUIRED)
private String feedUrl;
@@ -54,13 +54,12 @@ public class Subscription implements Serializable {
private int position;
@Schema(description = "date of the newest item", type = "number")
private Date newestItemTime;
private Instant newestItemTime;
@Schema(description = "JEXL string evaluated on new entries to mark them as read if they do not match")
private String filter;
public static Subscription build(FeedSubscription subscription, UnreadCount unreadCount) {
Date now = new Date();
FeedCategory category = subscription.getCategory();
Feed feed = subscription.getFeed();
Subscription sub = new Subscription();
@@ -73,7 +72,8 @@ public class Subscription implements Serializable {
sub.setFeedLink(feed.getLink());
sub.setIconUrl(FeedUtils.getFaviconUrl(subscription));
sub.setLastRefresh(feed.getLastUpdated());
sub.setNextRefresh((feed.getDisabledUntil() != null && feed.getDisabledUntil().before(now)) ? null : feed.getDisabledUntil());
sub.setNextRefresh(
(feed.getDisabledUntil() != null && feed.getDisabledUntil().isBefore(Instant.now())) ? null : feed.getDisabledUntil());
sub.setUnread(unreadCount.getUnreadCount());
sub.setNewestItemTime(unreadCount.getNewestItemTime());
sub.setCategoryId(category == null ? null : String.valueOf(category.getId()));

View File

@@ -1,7 +1,7 @@
package com.commafeed.frontend.model;
import java.io.Serializable;
import java.util.Date;
import java.time.Instant;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -18,12 +18,12 @@ public class UnreadCount implements Serializable {
private long unreadCount;
@Schema(type = "number")
private Date newestItemTime;
private Instant newestItemTime;
public UnreadCount() {
}
public UnreadCount(long feedId, long unreadCount, Date newestItemTime) {
public UnreadCount(long feedId, long unreadCount, Instant newestItemTime) {
this.feedId = feedId;
this.unreadCount = unreadCount;
this.newestItemTime = newestItemTime;

View File

@@ -1,7 +1,7 @@
package com.commafeed.frontend.model;
import java.io.Serializable;
import java.util.Date;
import java.time.Instant;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.media.Schema.RequiredMode;
@@ -31,10 +31,10 @@ public class UserModel implements Serializable {
private boolean enabled;
@Schema(description = "account creation date", type = "number")
private Date created;
private Instant created;
@Schema(description = "last login date", type = "number")
private Date lastLogin;
private Instant lastLogin;
@Schema(description = "user is admin", requiredMode = RequiredMode.REQUIRED)
private boolean admin;

View File

@@ -1,9 +1,9 @@
package com.commafeed.frontend.resource;
import java.io.StringWriter;
import java.time.Instant;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -131,7 +131,7 @@ public class CategoryREST {
id = ALL;
}
Date newerThanDate = newerThan == null ? null : new Date(newerThan);
Instant newerThanDate = newerThan == null ? null : Instant.ofEpochMilli(newerThan);
List<Long> excludedIds = null;
if (StringUtils.isNotEmpty(excludedSubscriptionIds)) {
@@ -242,8 +242,8 @@ public class CategoryREST {
Preconditions.checkNotNull(req);
Preconditions.checkNotNull(req.getId());
Date olderThan = req.getOlderThan() == null ? null : new Date(req.getOlderThan());
Date insertedBefore = req.getInsertedBefore() == null ? null : new Date(req.getInsertedBefore());
Instant olderThan = req.getOlderThan() == null ? null : Instant.ofEpochMilli(req.getOlderThan());
Instant insertedBefore = req.getInsertedBefore() == null ? null : Instant.ofEpochMilli(req.getInsertedBefore());
String keywords = req.getKeywords();
List<FeedEntryKeyword> entryKeywords = FeedEntryKeyword.fromQueryString(keywords);

View File

@@ -4,6 +4,7 @@ import java.io.InputStream;
import java.io.StringWriter;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
@@ -164,7 +165,7 @@ public class FeedREST {
boolean unreadOnly = readType == ReadingMode.unread;
Date newerThanDate = newerThan == null ? null : new Date(newerThan);
Instant newerThanDate = newerThan == null ? null : Instant.ofEpochMilli(newerThan);
FeedSubscription subscription = feedSubscriptionDAO.findById(user, Long.valueOf(id));
if (subscription != null) {
@@ -321,8 +322,8 @@ public class FeedREST {
Preconditions.checkNotNull(req);
Preconditions.checkNotNull(req.getId());
Date olderThan = req.getOlderThan() == null ? null : new Date(req.getOlderThan());
Date insertedBefore = req.getInsertedBefore() == null ? null : new Date(req.getInsertedBefore());
Instant olderThan = req.getOlderThan() == null ? null : Instant.ofEpochMilli(req.getOlderThan());
Instant insertedBefore = req.getInsertedBefore() == null ? null : Instant.ofEpochMilli(req.getInsertedBefore());
String keywords = req.getKeywords();
List<FeedEntryKeyword> entryKeywords = FeedEntryKeyword.fromQueryString(keywords);
@@ -379,7 +380,7 @@ public class FeedREST {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1);
builder.expires(calendar.getTime());
builder.lastModified(CommaFeedApplication.STARTUP_TIME);
builder.lastModified(Date.from(CommaFeedApplication.STARTUP_TIME));
return builder.build();
}

View File

@@ -1,14 +1,14 @@
package com.commafeed.frontend.resource;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Collections;
import java.util.Date;
import java.util.Optional;
import java.util.UUID;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.hc.core5.net.URIBuilder;
import com.codahale.metrics.annotation.Timed;
@@ -282,7 +282,7 @@ public class UserREST {
try {
user.setRecoverPasswordToken(DigestUtils.sha1Hex(UUID.randomUUID().toString()));
user.setRecoverPasswordTokenDate(new Date());
user.setRecoverPasswordTokenDate(Instant.now());
userDAO.saveOrUpdate(user);
mailService.sendMail(user, "Password recovery", buildEmailContent(user));
return Response.ok().build();
@@ -325,7 +325,7 @@ public class UserREST {
if (user.getRecoverPasswordToken() == null || !user.getRecoverPasswordToken().equals(token)) {
return Response.status(Status.UNAUTHORIZED).entity("Invalid token.").build();
}
if (user.getRecoverPasswordTokenDate().before(DateUtils.addDays(new Date(), -2))) {
if (ChronoUnit.DAYS.between(user.getRecoverPasswordTokenDate(), Instant.now()) >= 2) {
return Response.status(Status.UNAUTHORIZED).entity("token expired.").build();
}

View File

@@ -5,7 +5,6 @@ import java.util.ArrayList;
import java.util.Base64;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -189,7 +188,7 @@ public class FeverREST {
if (params.containsKey("mark") && params.containsKey("id") && params.containsKey("as")) {
long id = Long.parseLong(params.get("id"));
String before = params.get("before");
Date insertedBefore = before == null ? null : Date.from(Instant.ofEpochSecond(Long.parseLong(before)));
Instant insertedBefore = before == null ? null : Instant.ofEpochSecond(Long.parseLong(before));
mark(user, params.get("mark"), id, params.get("as"), insertedBefore);
}
@@ -206,7 +205,7 @@ public class FeverREST {
.map(Feed::getLastUpdated)
.filter(Objects::nonNull)
.max(Comparator.naturalOrder())
.map(d -> d.toInstant().getEpochSecond())
.map(d -> d.getEpochSecond())
.orElse(0L);
}
@@ -242,7 +241,7 @@ public class FeverREST {
f.setUrl(s.getFeed().getUrl());
f.setSiteUrl(s.getFeed().getLink());
f.setSpark(false);
f.setLastUpdatedOnTime(s.getFeed().getLastUpdated() == null ? 0 : s.getFeed().getLastUpdated().toInstant().getEpochSecond());
f.setLastUpdatedOnTime(s.getFeed().getLastUpdated() == null ? 0 : s.getFeed().getLastUpdated().getEpochSecond());
return f;
}).toList();
}
@@ -291,7 +290,7 @@ public class FeverREST {
i.setUrl(s.getEntry().getUrl());
i.setSaved(s.isStarred());
i.setRead(s.isRead());
i.setCreatedOnTime(s.getEntryUpdated().toInstant().getEpochSecond());
i.setCreatedOnTime(s.getEntryUpdated().getEpochSecond());
return i;
}
@@ -306,7 +305,7 @@ public class FeverREST {
}).toList();
}
private void mark(User user, String source, long id, String action, Date insertedBefore) {
private void mark(User user, String source, long id, String action, Instant insertedBefore) {
if ("item".equals(source)) {
if ("read".equals(action) || "unread".equals(action)) {
feedEntryService.markEntry(user, id, "read".equals(action));