remove warnings

This commit is contained in:
Athou
2025-07-19 11:17:07 +02:00
parent ed42db7a0d
commit 3f09e3ca64
11 changed files with 34 additions and 28 deletions

View File

@@ -16,9 +16,6 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommaFeedApplication { public class CommaFeedApplication {
public static final String USERNAME_ADMIN = "admin";
public static final String USERNAME_DEMO = "demo";
private final DatabaseStartupService databaseStartupService; private final DatabaseStartupService databaseStartupService;
private final FeedRefreshEngine feedRefreshEngine; private final FeedRefreshEngine feedRefreshEngine;
private final TaskScheduler taskScheduler; private final TaskScheduler taskScheduler;

View File

@@ -0,0 +1,9 @@
package com.commafeed;
import lombok.experimental.UtilityClass;
@UtilityClass
public class CommaFeedConstants {
public static final String USERNAME_ADMIN = "admin";
public static final String USERNAME_DEMO = "demo";
}

View File

@@ -25,7 +25,6 @@ import com.commafeed.backend.model.QFeedEntryTag;
import com.commafeed.backend.model.User; import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserSettings.ReadingOrder; import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.frontend.model.UnreadCount; import com.commafeed.frontend.model.UnreadCount;
import com.google.common.collect.Iterables;
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.Tuple; import com.querydsl.core.Tuple;
import com.querydsl.jpa.impl.JPAQuery; import com.querydsl.jpa.impl.JPAQuery;
@@ -49,7 +48,7 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
public FeedEntryStatus getStatus(User user, FeedSubscription sub, FeedEntry entry) { public FeedEntryStatus getStatus(User user, FeedSubscription sub, FeedEntry entry) {
List<FeedEntryStatus> statuses = query().selectFrom(STATUS).where(STATUS.entry.eq(entry), STATUS.subscription.eq(sub)).fetch(); List<FeedEntryStatus> statuses = query().selectFrom(STATUS).where(STATUS.entry.eq(entry), STATUS.subscription.eq(sub)).fetch();
FeedEntryStatus status = Iterables.getFirst(statuses, null); FeedEntryStatus status = statuses.stream().findFirst().orElse(null);
return handleStatus(user, status, sub, entry); return handleStatus(user, status, sub, entry);
} }

View File

@@ -22,7 +22,6 @@ import com.commafeed.backend.model.FeedSubscription;
import com.commafeed.backend.model.Models; import com.commafeed.backend.model.Models;
import com.commafeed.backend.model.QFeedSubscription; import com.commafeed.backend.model.QFeedSubscription;
import com.commafeed.backend.model.User; import com.commafeed.backend.model.User;
import com.google.common.collect.Iterables;
import com.querydsl.jpa.JPQLQuery; import com.querydsl.jpa.JPQLQuery;
@Singleton @Singleton
@@ -71,7 +70,8 @@ public class FeedSubscriptionDAO extends GenericDAO<FeedSubscription> {
.leftJoin(SUBSCRIPTION.category) .leftJoin(SUBSCRIPTION.category)
.fetchJoin() .fetchJoin()
.fetch(); .fetch();
return initRelations(Iterables.getFirst(subs, null)); FeedSubscription sub = subs.stream().findFirst().orElse(null);
return initRelations(sub);
} }
public List<FeedSubscription> findByFeed(Feed feed) { public List<FeedSubscription> findByFeed(Feed feed) {
@@ -82,7 +82,8 @@ public class FeedSubscriptionDAO extends GenericDAO<FeedSubscription> {
List<FeedSubscription> subs = query().selectFrom(SUBSCRIPTION) List<FeedSubscription> subs = query().selectFrom(SUBSCRIPTION)
.where(SUBSCRIPTION.user.eq(user), SUBSCRIPTION.feed.eq(feed)) .where(SUBSCRIPTION.user.eq(user), SUBSCRIPTION.feed.eq(feed))
.fetch(); .fetch();
return initRelations(Iterables.getFirst(subs, null)); FeedSubscription sub = subs.stream().findFirst().orElse(null);
return initRelations(sub);
} }
public List<FeedSubscription> findAll(User user) { public List<FeedSubscription> findAll(User user) {

View File

@@ -24,7 +24,6 @@ import com.commafeed.backend.feed.parser.FeedParserResult.Content;
import com.commafeed.backend.feed.parser.FeedParserResult.Enclosure; import com.commafeed.backend.feed.parser.FeedParserResult.Enclosure;
import com.commafeed.backend.feed.parser.FeedParserResult.Entry; import com.commafeed.backend.feed.parser.FeedParserResult.Entry;
import com.commafeed.backend.feed.parser.FeedParserResult.Media; import com.commafeed.backend.feed.parser.FeedParserResult.Media;
import com.google.common.collect.Iterables;
import com.rometools.modules.mediarss.MediaEntryModule; import com.rometools.modules.mediarss.MediaEntryModule;
import com.rometools.modules.mediarss.MediaModule; import com.rometools.modules.mediarss.MediaModule;
import com.rometools.modules.mediarss.types.MediaGroup; import com.rometools.modules.mediarss.types.MediaGroup;
@@ -148,7 +147,7 @@ public class FeedParser {
} }
private Enclosure buildEnclosure(SyndEntry item) { private Enclosure buildEnclosure(SyndEntry item) {
SyndEnclosure enclosure = Iterables.getFirst(item.getEnclosures(), null); SyndEnclosure enclosure = item.getEnclosures().stream().findFirst().orElse(null);
if (enclosure == null) { if (enclosure == null) {
return null; return null;
} }

View File

@@ -12,8 +12,8 @@ import jakarta.inject.Singleton;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.commafeed.CommaFeedApplication;
import com.commafeed.CommaFeedConfiguration; import com.commafeed.CommaFeedConfiguration;
import com.commafeed.CommaFeedConstants;
import com.commafeed.backend.Digests; import com.commafeed.backend.Digests;
import com.commafeed.backend.dao.FeedCategoryDAO; import com.commafeed.backend.dao.FeedCategoryDAO;
import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO;
@@ -140,11 +140,11 @@ public class UserService {
} }
public void createAdminUser() { public void createAdminUser() {
register(CommaFeedApplication.USERNAME_ADMIN, "admin", "admin@commafeed.com", Arrays.asList(Role.ADMIN, Role.USER), true); register(CommaFeedConstants.USERNAME_ADMIN, "admin", "admin@commafeed.com", Arrays.asList(Role.ADMIN, Role.USER), true);
} }
public void createDemoUser() { public void createDemoUser() {
register(CommaFeedApplication.USERNAME_DEMO, "demo", "demo@commafeed.com", Collections.singletonList(Role.USER), true); register(CommaFeedConstants.USERNAME_DEMO, "demo", "demo@commafeed.com", Collections.singletonList(Role.USER), true);
} }
public void unregister(User user) { public void unregister(User user) {

View File

@@ -4,8 +4,8 @@ import java.util.concurrent.TimeUnit;
import jakarta.inject.Singleton; import jakarta.inject.Singleton;
import com.commafeed.CommaFeedApplication;
import com.commafeed.CommaFeedConfiguration; import com.commafeed.CommaFeedConfiguration;
import com.commafeed.CommaFeedConstants;
import com.commafeed.backend.dao.UnitOfWork; import com.commafeed.backend.dao.UnitOfWork;
import com.commafeed.backend.dao.UserDAO; import com.commafeed.backend.dao.UserDAO;
import com.commafeed.backend.model.User; import com.commafeed.backend.model.User;
@@ -32,7 +32,7 @@ public class DemoAccountCleanupTask extends ScheduledTask {
log.info("recreating demo user account"); log.info("recreating demo user account");
unitOfWork.run(() -> { unitOfWork.run(() -> {
User demoUser = userDAO.findByName(CommaFeedApplication.USERNAME_DEMO); User demoUser = userDAO.findByName(CommaFeedConstants.USERNAME_DEMO);
if (demoUser == null) { if (demoUser == null) {
return; return;
} }

View File

@@ -20,7 +20,7 @@ import jakarta.ws.rs.core.Response.Status;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.MetricRegistry;
import com.commafeed.CommaFeedApplication; import com.commafeed.CommaFeedConstants;
import com.commafeed.backend.dao.UserDAO; import com.commafeed.backend.dao.UserDAO;
import com.commafeed.backend.dao.UserRoleDAO; import com.commafeed.backend.dao.UserRoleDAO;
import com.commafeed.backend.model.User; import com.commafeed.backend.model.User;
@@ -102,7 +102,7 @@ public class AdminREST {
if (req.isAdmin() && !roles.contains(Role.ADMIN)) { if (req.isAdmin() && !roles.contains(Role.ADMIN)) {
userRoleDAO.persist(new UserRole(u, Role.ADMIN)); userRoleDAO.persist(new UserRole(u, Role.ADMIN));
} else if (!req.isAdmin() && roles.contains(Role.ADMIN)) { } else if (!req.isAdmin() && roles.contains(Role.ADMIN)) {
if (CommaFeedApplication.USERNAME_ADMIN.equals(u.getName())) { if (CommaFeedConstants.USERNAME_ADMIN.equals(u.getName())) {
return Response.status(Status.FORBIDDEN).entity("You cannot remove the admin role from the admin user.").build(); return Response.status(Status.FORBIDDEN).entity("You cannot remove the admin role from the admin user.").build();
} }
for (UserRole userRole : userRoleDAO.findAll(u)) { for (UserRole userRole : userRoleDAO.findAll(u)) {

View File

@@ -32,8 +32,8 @@ import org.apache.hc.core5.http.HttpStatus;
import org.jboss.resteasy.reactive.Cache; import org.jboss.resteasy.reactive.Cache;
import org.jboss.resteasy.reactive.RestForm; import org.jboss.resteasy.reactive.RestForm;
import com.commafeed.CommaFeedApplication;
import com.commafeed.CommaFeedConfiguration; import com.commafeed.CommaFeedConfiguration;
import com.commafeed.CommaFeedConstants;
import com.commafeed.backend.dao.FeedCategoryDAO; import com.commafeed.backend.dao.FeedCategoryDAO;
import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.dao.FeedEntryStatusDAO;
import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO;
@@ -472,7 +472,7 @@ public class FeedREST {
@Operation(summary = "OPML import", description = "Import an OPML file, posted as a FORM with the 'file' name") @Operation(summary = "OPML import", description = "Import an OPML file, posted as a FORM with the 'file' name")
public Response importOpml(@Parameter(description = "ompl file", required = true) @RestForm("file") String opml) { public Response importOpml(@Parameter(description = "ompl file", required = true) @RestForm("file") String opml) {
User user = authenticationContext.getCurrentUser(); User user = authenticationContext.getCurrentUser();
if (CommaFeedApplication.USERNAME_DEMO.equals(user.getName())) { if (CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
return Response.status(Status.FORBIDDEN).entity("Import is disabled for the demo account").build(); return Response.status(Status.FORBIDDEN).entity("Import is disabled for the demo account").build();
} }
try { try {

View File

@@ -1,5 +1,7 @@
package com.commafeed.frontend.resource; package com.commafeed.frontend.resource;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.time.Instant; import java.time.Instant;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.Collections; import java.util.Collections;
@@ -27,8 +29,8 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.hc.core5.net.URIBuilder; import org.apache.hc.core5.net.URIBuilder;
import com.commafeed.CommaFeedApplication;
import com.commafeed.CommaFeedConfiguration; import com.commafeed.CommaFeedConfiguration;
import com.commafeed.CommaFeedConstants;
import com.commafeed.backend.Digests; import com.commafeed.backend.Digests;
import com.commafeed.backend.dao.UserDAO; import com.commafeed.backend.dao.UserDAO;
import com.commafeed.backend.dao.UserRoleDAO; import com.commafeed.backend.dao.UserRoleDAO;
@@ -174,7 +176,7 @@ public class UserREST {
s.setShowRead(settings.isShowRead()); s.setShowRead(settings.isShowRead());
s.setScrollMarks(settings.isScrollMarks()); s.setScrollMarks(settings.isScrollMarks());
s.setCustomCss(settings.getCustomCss()); s.setCustomCss(settings.getCustomCss());
s.setCustomJs(CommaFeedApplication.USERNAME_DEMO.equals(user.getName()) ? "" : settings.getCustomJs()); s.setCustomJs(CommaFeedConstants.USERNAME_DEMO.equals(user.getName()) ? "" : settings.getCustomJs());
s.setLanguage(settings.getLanguage()); s.setLanguage(settings.getLanguage());
s.setScrollSpeed(settings.getScrollSpeed()); s.setScrollSpeed(settings.getScrollSpeed());
s.setScrollMode(ScrollMode.valueOf(settings.getScrollMode())); s.setScrollMode(ScrollMode.valueOf(settings.getScrollMode()));
@@ -233,7 +235,7 @@ public class UserREST {
@Operation(summary = "Save user's profile") @Operation(summary = "Save user's profile")
public Response saveUserProfile(@Valid @Parameter(required = true) ProfileModificationRequest request) { public Response saveUserProfile(@Valid @Parameter(required = true) ProfileModificationRequest request) {
User user = authenticationContext.getCurrentUser(); User user = authenticationContext.getCurrentUser();
if (CommaFeedApplication.USERNAME_DEMO.equals(user.getName())) { if (CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
return Response.status(Status.FORBIDDEN).build(); return Response.status(Status.FORBIDDEN).build();
} }
@@ -306,7 +308,7 @@ public class UserREST {
} }
} }
private String buildEmailContent(User user) throws Exception { private String buildEmailContent(User user) throws URISyntaxException, MalformedURLException {
String publicUrl = FeedUtils.removeTrailingSlash(uri.getBaseUri().toString()); String publicUrl = FeedUtils.removeTrailingSlash(uri.getBaseUri().toString());
publicUrl += "/rest/user/passwordResetCallback"; publicUrl += "/rest/user/passwordResetCallback";
return String.format( return String.format(
@@ -314,7 +316,7 @@ public class UserREST {
user.getName(), callbackUrl(user, publicUrl)); user.getName(), callbackUrl(user, publicUrl));
} }
private String callbackUrl(User user, String publicUrl) throws Exception { private String callbackUrl(User user, String publicUrl) throws URISyntaxException, MalformedURLException {
return new URIBuilder(publicUrl).addParameter("email", user.getEmail()) return new URIBuilder(publicUrl).addParameter("email", user.getEmail())
.addParameter("token", user.getRecoverPasswordToken()) .addParameter("token", user.getRecoverPasswordToken())
.build() .build()
@@ -364,7 +366,7 @@ public class UserREST {
@Operation(summary = "Delete the user account") @Operation(summary = "Delete the user account")
public Response deleteUser() { public Response deleteUser() {
User user = authenticationContext.getCurrentUser(); User user = authenticationContext.getCurrentUser();
if (CommaFeedApplication.USERNAME_ADMIN.equals(user.getName()) || CommaFeedApplication.USERNAME_DEMO.equals(user.getName())) { if (CommaFeedConstants.USERNAME_ADMIN.equals(user.getName()) || CommaFeedConstants.USERNAME_DEMO.equals(user.getName())) {
return Response.status(Status.FORBIDDEN).build(); return Response.status(Status.FORBIDDEN).build();
} }
userService.unregister(userDAO.findById(user.getId())); userService.unregister(userDAO.findById(user.getId()));

View File

@@ -25,7 +25,6 @@ import com.commafeed.backend.model.UserSettings.ReadingOrder;
import com.commafeed.backend.service.FeedEntryService; import com.commafeed.backend.service.FeedEntryService;
import com.commafeed.frontend.resource.CategoryREST; import com.commafeed.frontend.resource.CategoryREST;
import com.commafeed.security.AuthenticationContext; import com.commafeed.security.AuthenticationContext;
import com.google.common.collect.Iterables;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -54,7 +53,7 @@ public class NextUnreadServlet {
List<FeedSubscription> subs = feedSubscriptionDAO.findAll(user); List<FeedSubscription> subs = feedSubscriptionDAO.findAll(user);
List<FeedEntryStatus> statuses = feedEntryStatusDAO.findBySubscriptions(user, subs, true, null, null, 0, 1, order, true, null, List<FeedEntryStatus> statuses = feedEntryStatusDAO.findBySubscriptions(user, subs, true, null, null, 0, 1, order, true, null,
null, null); null, null);
s = Iterables.getFirst(statuses, null); s = statuses.stream().findFirst().orElse(null);
} else { } else {
FeedCategory category = feedCategoryDAO.findById(user, Long.valueOf(categoryId)); FeedCategory category = feedCategoryDAO.findById(user, Long.valueOf(categoryId));
if (category != null) { if (category != null) {
@@ -62,7 +61,7 @@ public class NextUnreadServlet {
List<FeedSubscription> subscriptions = feedSubscriptionDAO.findByCategories(user, children); List<FeedSubscription> subscriptions = feedSubscriptionDAO.findByCategories(user, children);
List<FeedEntryStatus> statuses = feedEntryStatusDAO.findBySubscriptions(user, subscriptions, true, null, null, 0, 1, order, List<FeedEntryStatus> statuses = feedEntryStatusDAO.findBySubscriptions(user, subscriptions, true, null, null, 0, 1, order,
true, null, null, null); true, null, null, null);
s = Iterables.getFirst(statuses, null); s = statuses.stream().findFirst().orElse(null);
} }
} }
if (s != null) { if (s != null) {