From 9cd1cde57136be32c0a43983b64a8f1826914a21 Mon Sep 17 00:00:00 2001 From: Athou Date: Wed, 27 Dec 2023 08:52:24 +0100 Subject: [PATCH] apply intellij fixes --- .../src/components/content/add/Subscribe.tsx | 2 +- .../src/pages/app/FeedDetailsPage.tsx | 2 +- .../com/commafeed/CommaFeedApplication.java | 54 +++++++++++-------- .../commafeed/backend/FixedSizeSortedSet.java | 2 +- .../backend/cache/RedisCacheService.java | 4 +- .../backend/dao/FeedCategoryDAO.java | 7 ++- .../commafeed/backend/dao/FeedEntryDAO.java | 3 +- .../backend/dao/FeedEntryStatusDAO.java | 17 +++--- .../backend/dao/FeedSubscriptionDAO.java | 9 ++-- .../com/commafeed/backend/dao/GenericDAO.java | 2 +- .../commafeed/backend/dao/UserRoleDAO.java | 2 +- .../favicon/DefaultFaviconFetcher.java | 6 +-- .../favicon/FacebookFaviconFetcher.java | 2 +- .../commafeed/backend/feed/FeedFetcher.java | 2 +- .../commafeed/backend/feed/FeedParser.java | 2 +- .../backend/feed/FeedRefreshEngine.java | 3 +- .../backend/feed/FeedRefreshUpdater.java | 3 +- .../backend/feed/FeedRefreshWorker.java | 3 +- .../com/commafeed/backend/feed/FeedUtils.java | 7 ++- .../commafeed/backend/feed/HtmlEntities.java | 4 +- .../commafeed/backend/opml/OPMLExporter.java | 17 +++--- .../backend/rome/RSSRDF10Parser.java | 2 +- .../service/FeedEntryFilteringService.java | 6 +-- .../backend/service/FeedEntryTagService.java | 4 +- .../commafeed/backend/task/ScheduledTask.java | 13 ++--- .../frontend/auth/SecurityCheckFactory.java | 8 ++- .../com/commafeed/frontend/model/Entry.java | 9 ++-- .../frontend/resource/CategoryREST.java | 22 ++------ .../frontend/resource/EntryREST.java | 3 +- .../commafeed/frontend/resource/FeedREST.java | 17 ++---- .../commafeed/frontend/resource/UserREST.java | 2 +- .../frontend/resource/fever/FeverREST.java | 18 +++---- .../resource/fever/FeverResponse.java | 2 +- .../servlet/AbstractCustomCodeServlet.java | 2 +- .../frontend/servlet/LogoutServlet.java | 3 +- .../frontend/servlet/NextUnreadServlet.java | 9 ++-- .../frontend/ws/WebSocketConfigurator.java | 6 +-- .../backend/FixedSizeSortedSetTest.java | 7 +-- .../backend/opml/OPMLExporterTest.java | 14 ++--- .../FeedEntryFilteringServiceTest.java | 15 +++--- .../backend/service/UserServiceTest.java | 6 +-- .../com/commafeed/e2e/PlaywrightTestBase.java | 2 +- .../commafeed/integration/rest/FeedIT.java | 18 +++++-- 43 files changed, 151 insertions(+), 190 deletions(-) diff --git a/commafeed-client/src/components/content/add/Subscribe.tsx b/commafeed-client/src/components/content/add/Subscribe.tsx index 7bbd7b88..f92c445f 100644 --- a/commafeed-client/src/components/content/add/Subscribe.tsx +++ b/commafeed-client/src/components/content/add/Subscribe.tsx @@ -80,7 +80,7 @@ export function Subscribe() { > Feed URL} - placeholder="http://www.mysite.com/rss" + placeholder="https://www.mysite.com/rss" description={ The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed diff --git a/commafeed-client/src/pages/app/FeedDetailsPage.tsx b/commafeed-client/src/pages/app/FeedDetailsPage.tsx index 4c22dd31..c68464f0 100644 --- a/commafeed-client/src/pages/app/FeedDetailsPage.tsx +++ b/commafeed-client/src/pages/app/FeedDetailsPage.tsx @@ -38,7 +38,7 @@ function FilteringExpressionDescription() {
Complete syntax is available - + here . diff --git a/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java b/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java index 75a33c24..77aa20a2 100644 --- a/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java +++ b/commafeed-server/src/main/java/com/commafeed/CommaFeedApplication.java @@ -88,30 +88,14 @@ public class CommaFeedApplication extends Application { @Override public void initialize(Bootstrap bootstrap) { - bootstrap.setConfigurationFactoryFactory(new DefaultConfigurationFactoryFactory() { - @Override - protected ObjectMapper configureObjectMapper(ObjectMapper objectMapper) { - // disable case sensitivity because EnvironmentSubstitutor maps MYPROPERTY to myproperty and not to myProperty - return objectMapper - .setConfig(objectMapper.getDeserializationConfig().with(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)); - } - }); - - // enable config.yml string substitution - // e.g. having a custom config.yml file with app.session.path=${SOME_ENV_VAR} will substitute SOME_ENV_VAR - SubstitutingSourceProvider substitutingSourceProvider = new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(), - new EnvironmentVariableSubstitutor(false)); - // enable config.yml properties override with env variables prefixed with CF_ - // e.g. setting CF_APP_ALLOWREGISTRATIONS=true will set app.allowRegistrations to true - EnvironmentSubstitutor environmentSubstitutor = new EnvironmentSubstitutor("CF", substitutingSourceProvider); - bootstrap.setConfigurationSourceProvider(environmentSubstitutor); + configureEnvironmentSubstitutor(bootstrap); bootstrap.getObjectMapper().registerModule(new MetricsModule(TimeUnit.SECONDS, TimeUnit.SECONDS, false)); bootstrap.addBundle(websocketBundle = new WebsocketBundle<>()); - bootstrap.addBundle(hibernateBundle = new HibernateBundle(AbstractModel.class, Feed.class, - FeedCategory.class, FeedEntry.class, FeedEntryContent.class, FeedEntryStatus.class, FeedEntryTag.class, - FeedSubscription.class, User.class, UserRole.class, UserSettings.class) { + bootstrap.addBundle(hibernateBundle = new HibernateBundle<>(AbstractModel.class, Feed.class, FeedCategory.class, FeedEntry.class, + FeedEntryContent.class, FeedEntryStatus.class, FeedEntryTag.class, FeedSubscription.class, User.class, UserRole.class, + UserSettings.class) { @Override public DataSourceFactory getDataSourceFactory(CommaFeedConfiguration configuration) { DataSourceFactory factory = configuration.getDataSourceFactory(); @@ -126,7 +110,7 @@ public class CommaFeedApplication extends Application { } }); - bootstrap.addBundle(new MigrationsBundle() { + bootstrap.addBundle(new MigrationsBundle<>() { @Override public DataSourceFactory getDataSourceFactory(CommaFeedConfiguration configuration) { return configuration.getDataSourceFactory(); @@ -137,8 +121,32 @@ public class CommaFeedApplication extends Application { bootstrap.addBundle(new MultiPartBundle()); } + private static void configureEnvironmentSubstitutor(Bootstrap bootstrap) { + bootstrap.setConfigurationFactoryFactory(new DefaultConfigurationFactoryFactory<>() { + @Override + protected ObjectMapper configureObjectMapper(ObjectMapper objectMapper) { + // disable case sensitivity because EnvironmentSubstitutor maps MYPROPERTY to myproperty and not to myProperty + return objectMapper + .setConfig(objectMapper.getDeserializationConfig().with(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)); + } + }); + + bootstrap.setConfigurationSourceProvider(buildEnvironmentSubstitutor(bootstrap)); + } + + private static EnvironmentSubstitutor buildEnvironmentSubstitutor(Bootstrap bootstrap) { + // enable config.yml string substitution + // e.g. having a custom config.yml file with app.session.path=${SOME_ENV_VAR} will substitute SOME_ENV_VAR + SubstitutingSourceProvider substitutingSourceProvider = new SubstitutingSourceProvider(bootstrap.getConfigurationSourceProvider(), + new EnvironmentVariableSubstitutor(false)); + + // enable config.yml properties override with env variables prefixed with CF_ + // e.g. setting CF_APP_ALLOWREGISTRATIONS=true will set app.allowRegistrations to true + return new EnvironmentSubstitutor("CF", substitutingSourceProvider); + } + @Override - public void run(CommaFeedConfiguration config, Environment environment) throws Exception { + public void run(CommaFeedConfiguration config, Environment environment) { PasswordConstraintValidator.setStrict(config.getApplicationSettings().getStrictPasswordPolicy()); // guice init @@ -180,7 +188,7 @@ public class CommaFeedApplication extends Application { websocketBundle.addEndpoint(serverEndpointConfig); // Scheduled tasks - Set tasks = injector.getInstance(Key.get(new TypeLiteral>() { + Set tasks = injector.getInstance(Key.get(new TypeLiteral<>() { })); ScheduledExecutorService executor = environment.lifecycle() .scheduledExecutorService("task-scheduler", true) diff --git a/commafeed-server/src/main/java/com/commafeed/backend/FixedSizeSortedSet.java b/commafeed-server/src/main/java/com/commafeed/backend/FixedSizeSortedSet.java index ae811579..5de30477 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/FixedSizeSortedSet.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/FixedSizeSortedSet.java @@ -18,7 +18,7 @@ public class FixedSizeSortedSet { private final int capacity; public FixedSizeSortedSet(int capacity, Comparator comparator) { - this.inner = new ArrayList(Math.max(0, capacity)); + this.inner = new ArrayList<>(Math.max(0, capacity)); this.capacity = capacity < 0 ? Integer.MAX_VALUE : capacity; this.comparator = comparator; } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/cache/RedisCacheService.java b/commafeed-server/src/main/java/com/commafeed/backend/cache/RedisCacheService.java index 362533d3..52ec76b5 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/cache/RedisCacheService.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/cache/RedisCacheService.java @@ -34,9 +34,7 @@ public class RedisCacheService extends CacheService { try (Jedis jedis = pool.getResource()) { String key = buildRedisEntryKey(feed); Set members = jedis.smembers(key); - for (String member : members) { - list.add(member); - } + list.addAll(members); } return list; } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java index 6aa4fc01..d29f8dbc 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedCategoryDAO.java @@ -2,7 +2,6 @@ package com.commafeed.backend.dao; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; import org.hibernate.SessionFactory; @@ -34,7 +33,7 @@ public class FeedCategoryDAO extends GenericDAO { } public FeedCategory findByName(User user, String name, FeedCategory parent) { - Predicate parentPredicate = null; + Predicate parentPredicate; if (parent == null) { parentPredicate = category.parent.isNull(); } else { @@ -44,7 +43,7 @@ public class FeedCategoryDAO extends GenericDAO { } public List findByParent(User user, FeedCategory parent) { - Predicate parentPredicate = null; + Predicate parentPredicate; if (parent == null) { parentPredicate = category.parent.isNull(); } else { @@ -54,7 +53,7 @@ public class FeedCategoryDAO extends GenericDAO { } public List findAllChildrenCategories(User user, FeedCategory parent) { - return findAll(user).stream().filter(c -> isChild(c, parent)).collect(Collectors.toList()); + return findAll(user).stream().filter(c -> isChild(c, parent)).toList(); } private boolean isChild(FeedCategory child, FeedCategory parent) { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java index 86197c9f..b119efa9 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryDAO.java @@ -1,7 +1,6 @@ package com.commafeed.backend.dao; import java.util.List; -import java.util.stream.Collectors; import org.apache.commons.codec.digest.DigestUtils; import org.hibernate.SessionFactory; @@ -43,7 +42,7 @@ public class FeedEntryDAO extends GenericDAO { .having(count.gt(maxCapacity)) .limit(max) .fetch(); - return tuples.stream().map(t -> new FeedCapacity(t.get(entry.feed.id), t.get(count))).collect(Collectors.toList()); + return tuples.stream().map(t -> new FeedCapacity(t.get(entry.feed.id), t.get(count))).toList(); } public int delete(Long feedId, long max) { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java index c99be768..fede9df1 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedEntryStatusDAO.java @@ -38,14 +38,11 @@ import jakarta.inject.Singleton; @Singleton public class FeedEntryStatusDAO extends GenericDAO { - private static final Comparator STATUS_COMPARATOR_DESC = new Comparator() { - @Override - public int compare(FeedEntryStatus o1, FeedEntryStatus o2) { - CompareToBuilder builder = new CompareToBuilder(); - builder.append(o2.getEntryUpdated(), o1.getEntryUpdated()); - builder.append(o2.getId(), o1.getId()); - return builder.toComparison(); - } + private static final Comparator STATUS_COMPARATOR_DESC = (o1, o2) -> { + CompareToBuilder builder = new CompareToBuilder(); + builder.append(o2.getEntryUpdated(), o1.getEntryUpdated()); + builder.append(o2.getId(), o1.getId()); + return builder.toComparison(); }; private static final Comparator STATUS_COMPARATOR_ASC = Ordering.from(STATUS_COMPARATOR_DESC).reverse(); @@ -239,7 +236,7 @@ public class FeedEntryStatusDAO extends GenericDAO { } placeholders = placeholders.subList(Math.max(offset, 0), size); - List statuses = null; + List statuses; if (onlyIds) { statuses = placeholders; } else { @@ -264,7 +261,7 @@ public class FeedEntryStatusDAO extends GenericDAO { for (Tuple tuple : tuples) { Long count = tuple.get(entry.count()); Date updated = tuple.get(entry.updated.max()); - uc = new UnreadCount(subscription.getId(), count, updated); + uc = new UnreadCount(subscription.getId(), count == null ? 0 : count, updated); } return uc; } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java index af24490f..32122507 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/FeedSubscriptionDAO.java @@ -6,6 +6,7 @@ import java.util.stream.Collectors; import org.hibernate.SessionFactory; +import com.commafeed.backend.model.AbstractModel; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedSubscription; @@ -74,14 +75,12 @@ public class FeedSubscriptionDAO extends GenericDAO { } public List findByCategories(User user, List categories) { - Set categoryIds = categories.stream().map(c -> c.getId()).collect(Collectors.toSet()); - return findAll(user).stream() - .filter(s -> s.getCategory() != null && categoryIds.contains(s.getCategory().getId())) - .collect(Collectors.toList()); + Set categoryIds = categories.stream().map(AbstractModel::getId).collect(Collectors.toSet()); + return findAll(user).stream().filter(s -> s.getCategory() != null && categoryIds.contains(s.getCategory().getId())).toList(); } private List initRelations(List list) { - list.forEach(s -> initRelations(s)); + list.forEach(this::initRelations); return list; } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/GenericDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/GenericDAO.java index bba1c3c9..d21777c3 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/GenericDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/GenericDAO.java @@ -58,7 +58,7 @@ public abstract class GenericDAO extends AbstractDAO } public int delete(Collection objects) { - objects.forEach(o -> delete(o)); + objects.forEach(this::delete); return objects.size(); } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java b/commafeed-server/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java index b882a58b..36246566 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/dao/UserRoleDAO.java @@ -33,6 +33,6 @@ public class UserRoleDAO extends GenericDAO { } public Set findRoles(User user) { - return findAll(user).stream().map(r -> r.getRole()).collect(Collectors.toSet()); + return findAll(user).stream().map(UserRole::getRole).collect(Collectors.toSet()); } } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/favicon/DefaultFaviconFetcher.java b/commafeed-server/src/main/java/com/commafeed/backend/favicon/DefaultFaviconFetcher.java index 69e64818..7b814fef 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/favicon/DefaultFaviconFetcher.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/favicon/DefaultFaviconFetcher.java @@ -84,7 +84,7 @@ public class DefaultFaviconFetcher extends AbstractFaviconFetcher { private Favicon getIconInPage(String url) { - Document doc = null; + Document doc; try { HttpResult result = getter.getBinary(url, TIMEOUT); doc = Jsoup.parse(new String(result.getContent()), url); @@ -109,8 +109,8 @@ public class DefaultFaviconFetcher extends AbstractFaviconFetcher { log.debug("Found unconfirmed iconInPage at {}", href); - byte[] bytes = null; - String contentType = null; + byte[] bytes; + String contentType; try { HttpResult result = getter.getBinary(href, TIMEOUT); bytes = result.getContent(); diff --git a/commafeed-server/src/main/java/com/commafeed/backend/favicon/FacebookFaviconFetcher.java b/commafeed-server/src/main/java/com/commafeed/backend/favicon/FacebookFaviconFetcher.java index 6de2eb45..fd9722f0 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/favicon/FacebookFaviconFetcher.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/favicon/FacebookFaviconFetcher.java @@ -58,7 +58,7 @@ public class FacebookFaviconFetcher extends AbstractFaviconFetcher { } private String extractUserName(String url) { - URI uri = null; + URI uri; try { uri = new URI(url); } catch (URISyntaxException e) { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedFetcher.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedFetcher.java index 1122380e..2955d09e 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedFetcher.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedFetcher.java @@ -36,7 +36,7 @@ public class FeedFetcher { private final Set urlProviders; public FeedFetcherResult fetch(String feedUrl, boolean extractFeedUrlFromHtml, String lastModified, String eTag, Date lastPublishedDate, - String lastContentHash) throws FeedException, IOException, NotModifiedException, InterruptedException { + String lastContentHash) throws FeedException, IOException, NotModifiedException { log.debug("Fetching feed {}", feedUrl); int timeout = 20000; diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedParser.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedParser.java index 3d21c0c6..2af2fef0 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedParser.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedParser.java @@ -184,7 +184,7 @@ public class FeedParser { } private String getContent(SyndEntry item) { - String content = null; + String content; if (item.getContents().isEmpty()) { content = item.getDescription() == null ? null : item.getDescription().getValue(); } else { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshEngine.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshEngine.java index 1aff7707..3a828081 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshEngine.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshEngine.java @@ -10,7 +10,6 @@ import java.util.concurrent.LinkedBlockingDeque; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import org.apache.commons.lang3.time.DateUtils; @@ -173,7 +172,7 @@ public class FeedRefreshEngine implements Managed { List feeds = feedDAO.findNextUpdatable(max, lastLoginThreshold); // update disabledUntil to prevent feeds from being returned again by feedDAO.findNextUpdatable() Date nextUpdateDate = DateUtils.addMinutes(new Date(), config.getApplicationSettings().getRefreshIntervalMinutes()); - feedDAO.setDisabledUntil(feeds.stream().map(AbstractModel::getId).collect(Collectors.toList()), nextUpdateDate); + feedDAO.setDisabledUntil(feeds.stream().map(AbstractModel::getId).toList(), nextUpdateDate); return feeds; }); } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java index 9342e6e5..d63a7e63 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshUpdater.java @@ -7,7 +7,6 @@ import java.util.Iterator; import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; -import java.util.stream.Collectors; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; @@ -150,7 +149,7 @@ public class FeedRefreshUpdater implements Managed { if (subscriptions == null) { feed.setMessage("No new entries found"); } else if (insertedAtLeastOneEntry) { - List users = subscriptions.stream().map(FeedSubscription::getUser).collect(Collectors.toList()); + List users = subscriptions.stream().map(FeedSubscription::getUser).toList(); cache.invalidateUnreadCount(subscriptions.toArray(new FeedSubscription[0])); cache.invalidateUserRootCategory(users.toArray(new User[0])); diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshWorker.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshWorker.java index f2eb0ad6..a8ed7b4c 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshWorker.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedRefreshWorker.java @@ -3,7 +3,6 @@ package com.commafeed.backend.feed; import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -52,7 +51,7 @@ public class FeedRefreshWorker { Integer maxFeedCapacity = config.getApplicationSettings().getMaxFeedCapacity(); if (maxFeedCapacity > 0) { - entries = entries.stream().limit(maxFeedCapacity).collect(Collectors.toList()); + entries = entries.stream().limit(maxFeedCapacity).toList(); } String urlAfterRedirect = feedFetcherResult.getUrlAfterRedirect(); diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedUtils.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedUtils.java index 4c2f1f2c..3fa87e93 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedUtils.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/FeedUtils.java @@ -8,7 +8,6 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.regex.Pattern; -import java.util.stream.Collectors; import org.ahocorasick.trie.Emit; import org.ahocorasick.trie.Trie; @@ -246,7 +245,7 @@ public class FeedUtils { } public static List getSortedTimestamps(List entries) { - return entries.stream().map(t -> t.getUpdated().getTime()).sorted(Collections.reverseOrder()).collect(Collectors.toList()); + return entries.stream().map(t -> t.getUpdated().getTime()).sorted(Collections.reverseOrder()).toList(); } public static String removeTrailingSlash(String url) { @@ -278,7 +277,7 @@ public class FeedUtils { return url; } - String result = null; + String result; try { result = new URL(new URL(baseUrl), url).toString(); } catch (MalformedURLException e) { @@ -307,7 +306,7 @@ public class FeedUtils { Elements elements = doc.select("img"); for (Element element : elements) { String href = element.attr("src"); - if (href != null) { + if (StringUtils.isNotBlank(href)) { String proxy = proxyImage(href); element.attr("src", proxy); } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/feed/HtmlEntities.java b/commafeed-server/src/main/java/com/commafeed/backend/feed/HtmlEntities.java index b6735671..8b30fd9a 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/feed/HtmlEntities.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/feed/HtmlEntities.java @@ -263,7 +263,7 @@ public class HtmlEntities { map.put("‌", "‌"); HTML_TO_NUMERIC_MAP = Collections.unmodifiableMap(map); - HTML_ENTITIES = map.keySet().toArray(new String[map.size()]); - NUMERIC_ENTITIES = map.values().toArray(new String[map.size()]); + HTML_ENTITIES = map.keySet().toArray(new String[0]); + NUMERIC_ENTITIES = map.values().toArray(new String[0]); } } diff --git a/commafeed-server/src/main/java/com/commafeed/backend/opml/OPMLExporter.java b/commafeed-server/src/main/java/com/commafeed/backend/opml/OPMLExporter.java index 6690758f..5dc3329d 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/opml/OPMLExporter.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/opml/OPMLExporter.java @@ -1,9 +1,8 @@ package com.commafeed.backend.opml; -import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; import org.apache.commons.lang3.ObjectUtils; @@ -34,20 +33,18 @@ public class OPMLExporter { opml.setCreated(new Date()); List categories = feedCategoryDAO.findAll(user); - Collections.sort(categories, - (e1, e2) -> ObjectUtils.firstNonNull(e1.getPosition(), 0) - ObjectUtils.firstNonNull(e2.getPosition(), 0)); + categories.sort(Comparator.comparingInt(e -> ObjectUtils.firstNonNull(e.getPosition(), 0))); List subscriptions = feedSubscriptionDAO.findAll(user); - Collections.sort(subscriptions, - (e1, e2) -> ObjectUtils.firstNonNull(e1.getPosition(), 0) - ObjectUtils.firstNonNull(e2.getPosition(), 0)); + subscriptions.sort(Comparator.comparingInt(e -> ObjectUtils.firstNonNull(e.getPosition(), 0))); // export root categories - for (FeedCategory cat : categories.stream().filter(c -> c.getParent() == null).collect(Collectors.toList())) { + for (FeedCategory cat : categories.stream().filter(c -> c.getParent() == null).toList()) { opml.getOutlines().add(buildCategoryOutline(cat, categories, subscriptions)); } // export root subscriptions - for (FeedSubscription sub : subscriptions.stream().filter(s -> s.getCategory() == null).collect(Collectors.toList())) { + for (FeedSubscription sub : subscriptions.stream().filter(s -> s.getCategory() == null).toList()) { opml.getOutlines().add(buildSubscriptionOutline(sub)); } @@ -62,13 +59,13 @@ public class OPMLExporter { for (FeedCategory child : categories.stream() .filter(c -> c.getParent() != null && c.getParent().getId().equals(cat.getId())) - .collect(Collectors.toList())) { + .toList()) { outline.getChildren().add(buildCategoryOutline(child, categories, subscriptions)); } for (FeedSubscription sub : subscriptions.stream() .filter(s -> s.getCategory() != null && s.getCategory().getId().equals(cat.getId())) - .collect(Collectors.toList())) { + .toList()) { outline.getChildren().add(buildSubscriptionOutline(sub)); } return outline; diff --git a/commafeed-server/src/main/java/com/commafeed/backend/rome/RSSRDF10Parser.java b/commafeed-server/src/main/java/com/commafeed/backend/rome/RSSRDF10Parser.java index e8db9961..49c4d230 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/rome/RSSRDF10Parser.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/rome/RSSRDF10Parser.java @@ -21,7 +21,7 @@ public class RSSRDF10Parser extends RSS10Parser { @Override public boolean isMyType(Document document) { - boolean ok = false; + boolean ok; Element rssRoot = document.getRootElement(); Namespace defaultNS = rssRoot.getNamespace(); diff --git a/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryFilteringService.java b/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryFilteringService.java index ea5bc479..2ca965a2 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryFilteringService.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryFilteringService.java @@ -41,7 +41,7 @@ public class FeedEntryFilteringService { // classloader that prevents object creation ClassLoader cl = new ClassLoader() { @Override - protected Class loadClass(String name, boolean resolve) throws ClassNotFoundException { + protected Class loadClass(String name, boolean resolve) { return null; } }; @@ -76,7 +76,7 @@ public class FeedEntryFilteringService { return true; } - Script script = null; + Script script; try { script = ENGINE.createScript(filter); } catch (JexlException e) { @@ -95,7 +95,7 @@ public class FeedEntryFilteringService { Callable callable = script.callable(context); Future future = executor.submit(callable); - Object result = null; + Object result; try { result = future.get(500, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { diff --git a/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryTagService.java b/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryTagService.java index 512c07d8..70f451c9 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryTagService.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/service/FeedEntryTagService.java @@ -33,8 +33,8 @@ public class FeedEntryTagService { List addList = tagNames.stream() .filter(name -> !existingTagNames.contains(name)) .map(name -> new FeedEntryTag(user, entry, name)) - .collect(Collectors.toList()); - List removeList = existingTags.stream().filter(tag -> !tagNames.contains(tag.getName())).collect(Collectors.toList()); + .toList(); + List removeList = existingTags.stream().filter(tag -> !tagNames.contains(tag.getName())).toList(); feedEntryTagDAO.saveOrUpdate(addList); feedEntryTagDAO.delete(removeList); diff --git a/commafeed-server/src/main/java/com/commafeed/backend/task/ScheduledTask.java b/commafeed-server/src/main/java/com/commafeed/backend/task/ScheduledTask.java index 7ae8e85f..2531be3c 100644 --- a/commafeed-server/src/main/java/com/commafeed/backend/task/ScheduledTask.java +++ b/commafeed-server/src/main/java/com/commafeed/backend/task/ScheduledTask.java @@ -16,14 +16,11 @@ public abstract class ScheduledTask { protected abstract TimeUnit getTimeUnit(); public void register(ScheduledExecutorService executor) { - Runnable runnable = new Runnable() { - @Override - public void run() { - try { - ScheduledTask.this.run(); - } catch (Exception e) { - log.error(e.getMessage(), e); - } + Runnable runnable = () -> { + try { + ScheduledTask.this.run(); + } catch (Exception e) { + log.error(e.getMessage(), e); } }; log.info("registering task {} for execution every {} {}, starting in {} {}", getClass().getSimpleName(), getPeriod(), getTimeUnit(), diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java b/commafeed-server/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java index 0a89f744..58fcc7a4 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/auth/SecurityCheckFactory.java @@ -33,10 +33,10 @@ public class SecurityCheckFactory implements Function { @Override public User apply(ContainerRequest req) { Optional user = apiKeyLogin(); - if (!user.isPresent()) { + if (user.isEmpty()) { user = basicAuthenticationLogin(); } - if (!user.isPresent()) { + if (user.isEmpty()) { user = cookieSessionLogin(new SessionHelper(request)); } @@ -60,9 +60,7 @@ public class SecurityCheckFactory implements Function { Optional cookieSessionLogin(SessionHelper sessionHelper) { Optional loggedInUser = sessionHelper.getLoggedInUser(); - if (loggedInUser.isPresent()) { - userService.performPostLoginActivities(loggedInUser.get()); - } + loggedInUser.ifPresent(userService::performPostLoginActivities); return loggedInUser; } diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/model/Entry.java b/commafeed-server/src/main/java/com/commafeed/frontend/model/Entry.java index 693b177a..c2e65fb2 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/model/Entry.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/model/Entry.java @@ -4,7 +4,6 @@ import java.io.Serializable; import java.util.Collections; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -14,9 +13,7 @@ import com.commafeed.backend.model.FeedEntryContent; import com.commafeed.backend.model.FeedEntryStatus; import com.commafeed.backend.model.FeedEntryTag; import com.commafeed.backend.model.FeedSubscription; -import com.rometools.rome.feed.synd.SyndContent; import com.rometools.rome.feed.synd.SyndContentImpl; -import com.rometools.rome.feed.synd.SyndEnclosure; import com.rometools.rome.feed.synd.SyndEnclosureImpl; import com.rometools.rome.feed.synd.SyndEntry; import com.rometools.rome.feed.synd.SyndEntryImpl; @@ -125,7 +122,7 @@ public class Entry implements Serializable { entry.setFeedUrl(sub.getFeed().getUrl()); entry.setFeedLink(sub.getFeed().getLink()); entry.setIconUrl(FeedUtils.getFaviconUrl(sub)); - entry.setTags(status.getTags().stream().map(FeedEntryTag::getName).collect(Collectors.toList())); + entry.setTags(status.getTags().stream().map(FeedEntryTag::getName).toList()); if (content != null) { entry.setRtl(FeedUtils.isRTL(feedEntry)); @@ -158,13 +155,13 @@ public class Entry implements Serializable { SyndContentImpl content = new SyndContentImpl(); content.setValue(getContent()); - entry.setContents(Collections. singletonList(content)); + entry.setContents(Collections.singletonList(content)); if (getEnclosureUrl() != null) { SyndEnclosureImpl enclosure = new SyndEnclosureImpl(); enclosure.setType(getEnclosureType()); enclosure.setUrl(getEnclosureUrl()); - entry.setEnclosures(Collections. singletonList(enclosure)); + entry.setEnclosures(Collections.singletonList(enclosure)); } entry.setLink(getUrl()); diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java index d470e928..c20b70ea 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/CategoryREST.java @@ -2,15 +2,12 @@ package com.commafeed.frontend.resource; import java.io.StringWriter; import java.util.Arrays; -import java.util.Collections; import java.util.Comparator; import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -136,7 +133,7 @@ public class CategoryREST { List excludedIds = null; if (StringUtils.isNotEmpty(excludedSubscriptionIds)) { - excludedIds = Arrays.stream(excludedSubscriptionIds.split(",")).map(Long::valueOf).collect(Collectors.toList()); + excludedIds = Arrays.stream(excludedSubscriptionIds.split(",")).map(Long::valueOf).toList(); } if (ALL.equals(id)) { @@ -220,7 +217,7 @@ public class CategoryREST { feed.setTitle("CommaFeed - " + entries.getName()); feed.setDescription("CommaFeed - " + entries.getName()); feed.setLink(config.getApplicationSettings().getPublicUrl()); - feed.setEntries(entries.getEntries().stream().map(Entry::asRss).collect(Collectors.toList())); + feed.setEntries(entries.getEntries().stream().map(Entry::asRss).toList()); SyndFeedOutput output = new SyndFeedOutput(); StringWriter writer = new StringWriter(); @@ -265,13 +262,7 @@ public class CategoryREST { private void removeExcludedSubscriptions(List subs, List excludedIds) { if (CollectionUtils.isNotEmpty(excludedIds)) { - Iterator it = subs.iterator(); - while (it.hasNext()) { - FeedSubscription sub = it.next(); - if (excludedIds.contains(sub.getId())) { - it.remove(); - } - } + subs.removeIf(sub -> excludedIds.contains(sub.getId())); } } @@ -361,12 +352,7 @@ public class CategoryREST { if (req.getPosition() != null) { List categories = feedCategoryDAO.findByParent(user, parent); - Collections.sort(categories, new Comparator() { - @Override - public int compare(FeedCategory o1, FeedCategory o2) { - return ObjectUtils.compare(o1.getPosition(), o2.getPosition()); - } - }); + categories.sort((o1, o2) -> ObjectUtils.compare(o1.getPosition(), o2.getPosition())); int existingIndex = -1; for (int i = 0; i < categories.size(); i++) { diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/EntryREST.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/EntryREST.java index 45547d5c..b9f2e0b8 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/EntryREST.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/EntryREST.java @@ -65,7 +65,8 @@ public class EntryREST { Preconditions.checkNotNull(req.getRequests()); for (MarkRequest r : req.getRequests()) { - markEntry(user, r); + Preconditions.checkNotNull(r.getId()); + feedEntryService.markEntry(user, Long.valueOf(r.getId()), r.isRead()); } return Response.ok().build(); diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/FeedREST.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/FeedREST.java index 21314e12..b70693fa 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/FeedREST.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/FeedREST.java @@ -6,11 +6,9 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.util.Calendar; import java.util.Collections; -import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ObjectUtils; @@ -225,7 +223,7 @@ public class FeedREST { feed.setTitle("CommaFeed - " + entries.getName()); feed.setDescription("CommaFeed - " + entries.getName()); feed.setLink(config.getApplicationSettings().getPublicUrl()); - feed.setEntries(entries.getEntries().stream().map(Entry::asRss).collect(Collectors.toList())); + feed.setEntries(entries.getEntries().stream().map(Entry::asRss).toList()); SyndFeedOutput output = new SyndFeedOutput(); StringWriter writer = new StringWriter(); @@ -239,7 +237,7 @@ public class FeedREST { } private FeedInfo fetchFeedInternal(String url) { - FeedInfo info = null; + FeedInfo info; url = StringUtils.trimToEmpty(url); url = prependHttp(url); try { @@ -268,7 +266,7 @@ public class FeedREST { Preconditions.checkNotNull(req); Preconditions.checkNotNull(req.getUrl()); - FeedInfo info = null; + FeedInfo info; try { info = fetchFeedInternal(req.getUrl()); } catch (Exception e) { @@ -490,12 +488,7 @@ public class FeedREST { if (req.getPosition() != null) { List subs = feedSubscriptionDAO.findByCategory(user, parent); - Collections.sort(subs, new Comparator() { - @Override - public int compare(FeedSubscription o1, FeedSubscription o2) { - return ObjectUtils.compare(o1.getPosition(), o2.getPosition()); - } - }); + subs.sort((o1, o2) -> ObjectUtils.compare(o1.getPosition(), o2.getPosition())); int existingIndex = -1; for (int i = 0; i < subs.size(); i++) { @@ -549,7 +542,7 @@ public class FeedREST { public Response exportOpml(@Parameter(hidden = true) @SecurityCheck User user) { Opml opml = opmlExporter.export(user); WireFeedOutput output = new WireFeedOutput(); - String opmlString = null; + String opmlString; try { opmlString = output.outputString(opml); } catch (Exception e) { diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/UserREST.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/UserREST.java index d47ef4a2..df3c0280 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/UserREST.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/UserREST.java @@ -206,7 +206,7 @@ public class UserREST { } Optional login = userService.login(user.getEmail(), request.getCurrentPassword()); - if (!login.isPresent()) { + if (login.isEmpty()) { throw new BadRequestException("invalid password"); } diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverREST.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverREST.java index 21e7016b..4b3189ef 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverREST.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverREST.java @@ -167,7 +167,7 @@ public class FeverREST { if (params.containsKey("items")) { if (params.containsKey("with_ids")) { String withIds = params.get("with_ids"); - List entryIds = Stream.of(withIds.split(",")).map(String::trim).collect(Collectors.toList()); + List entryIds = Stream.of(withIds.split(",")).map(String::trim).toList(); resp.setItems(buildItems(user, subscriptions, entryIds)); } else { Long sinceId = params.containsKey("since_id") ? Long.valueOf(params.get("since_id")) : null; @@ -216,10 +216,10 @@ public class FeverREST { .map(e -> { FeverFeedGroup fg = new FeverFeedGroup(); fg.setGroupId(e.getKey()); - fg.setFeedIds(e.getValue().stream().map(FeedSubscription::getId).collect(Collectors.toList())); + fg.setFeedIds(e.getValue().stream().map(FeedSubscription::getId).toList()); return fg; }) - .collect(Collectors.toList()); + .toList(); } private List buildGroups(List categories) { @@ -228,7 +228,7 @@ public class FeverREST { g.setId(c.getId()); g.setTitle(c.getName()); return g; - }).collect(Collectors.toList()); + }).toList(); } private List buildFeeds(List subscriptions) { @@ -242,18 +242,18 @@ public class FeverREST { f.setSpark(false); f.setLastUpdatedOnTime(s.getFeed().getLastUpdated() == null ? 0 : s.getFeed().getLastUpdated().toInstant().getEpochSecond()); return f; - }).collect(Collectors.toList()); + }).toList(); } private List buildUnreadItemIds(User user, List subscriptions) { List statuses = feedEntryStatusDAO.findBySubscriptions(user, subscriptions, true, null, null, 0, UNREAD_ITEM_IDS_BATCH_SIZE, ReadingOrder.desc, false, true, null, null, null); - return statuses.stream().map(s -> s.getEntry().getId()).collect(Collectors.toList()); + return statuses.stream().map(s -> s.getEntry().getId()).toList(); } private List buildSavedItemIds(User user) { List statuses = feedEntryStatusDAO.findStarred(user, null, 0, SAVED_ITEM_IDS_BATCH_SIZE, ReadingOrder.desc, false); - return statuses.stream().map(s -> s.getEntry().getId()).collect(Collectors.toList()); + return statuses.stream().map(s -> s.getEntry().getId()).toList(); } private List buildItems(User user, List subscriptions, List entryIds) { @@ -276,7 +276,7 @@ public class FeverREST { private List buildItems(User user, List subscriptions, Long sinceId, Long maxId) { List statuses = feedEntryStatusDAO.findBySubscriptions(user, subscriptions, false, null, null, 0, ITEMS_BATCH_SIZE, ReadingOrder.desc, false, false, null, sinceId, maxId); - return statuses.stream().map(this::mapStatus).collect(Collectors.toList()); + return statuses.stream().map(this::mapStatus).toList(); } private FeverItem mapStatus(FeedEntryStatus s) { @@ -301,7 +301,7 @@ public class FeverREST { f.setId(s.getFeed().getId()); f.setData(String.format("data:%s;base64,%s", favicon.getMediaType(), Base64.getEncoder().encodeToString(favicon.getIcon()))); return f; - }).collect(Collectors.toList()); + }).toList(); } private void mark(User user, String source, long id, String action, Date olderThan) { diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverResponse.java b/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverResponse.java index 73c6eaf0..96e00ad7 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverResponse.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/resource/fever/FeverResponse.java @@ -172,7 +172,7 @@ public class FeverResponse { @Override public List deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { String value = ctxt.readValue(p, String.class); - return Stream.of(value.split(",")).map(Long::valueOf).collect(Collectors.toList()); + return Stream.of(value.split(",")).map(Long::valueOf).toList(); } } } diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/servlet/AbstractCustomCodeServlet.java b/commafeed-server/src/main/java/com/commafeed/frontend/servlet/AbstractCustomCodeServlet.java index 0399004f..9f3b83e2 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/servlet/AbstractCustomCodeServlet.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/servlet/AbstractCustomCodeServlet.java @@ -27,7 +27,7 @@ abstract class AbstractCustomCodeServlet extends HttpServlet { resp.setContentType(getMimeType()); final Optional user = new SessionHelper(req).getLoggedInUser(); - if (!user.isPresent()) { + if (user.isEmpty()) { return; } diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/servlet/LogoutServlet.java b/commafeed-server/src/main/java/com/commafeed/frontend/servlet/LogoutServlet.java index 760b0e07..6d405709 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/servlet/LogoutServlet.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/servlet/LogoutServlet.java @@ -6,7 +6,6 @@ import com.commafeed.CommaFeedConfiguration; import jakarta.inject.Inject; import jakarta.inject.Singleton; -import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -20,7 +19,7 @@ public class LogoutServlet extends HttpServlet { private final CommaFeedConfiguration config; @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { req.getSession().invalidate(); resp.sendRedirect(resp.encodeRedirectURL(config.getApplicationSettings().getPublicUrl())); } diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/servlet/NextUnreadServlet.java b/commafeed-server/src/main/java/com/commafeed/frontend/servlet/NextUnreadServlet.java index 51c47329..dbd598c0 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/servlet/NextUnreadServlet.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/servlet/NextUnreadServlet.java @@ -24,7 +24,6 @@ import com.google.common.collect.Iterables; import jakarta.inject.Inject; import jakarta.inject.Singleton; -import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @@ -47,16 +46,14 @@ public class NextUnreadServlet extends HttpServlet { private final CommaFeedConfiguration config; @Override - protected void doGet(final HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + protected void doGet(final HttpServletRequest req, HttpServletResponse resp) throws IOException { final String categoryId = req.getParameter(PARAM_CATEGORYID); String orderParam = req.getParameter(PARAM_READINGORDER); SessionHelper sessionHelper = new SessionHelper(req); Optional user = sessionHelper.getLoggedInUser(); - if (user.isPresent()) { - unitOfWork.run(() -> userService.performPostLoginActivities(user.get())); - } - if (!user.isPresent()) { + user.ifPresent(value -> unitOfWork.run(() -> userService.performPostLoginActivities(value))); + if (user.isEmpty()) { resp.sendRedirect(resp.encodeRedirectURL(config.getApplicationSettings().getPublicUrl())); return; } diff --git a/commafeed-server/src/main/java/com/commafeed/frontend/ws/WebSocketConfigurator.java b/commafeed-server/src/main/java/com/commafeed/frontend/ws/WebSocketConfigurator.java index 94785ae2..54dd8407 100644 --- a/commafeed-server/src/main/java/com/commafeed/frontend/ws/WebSocketConfigurator.java +++ b/commafeed-server/src/main/java/com/commafeed/frontend/ws/WebSocketConfigurator.java @@ -27,15 +27,13 @@ public class WebSocketConfigurator extends Configurator { HttpSession httpSession = (HttpSession) request.getHttpSession(); if (httpSession != null) { Optional user = SessionHelper.getLoggedInUser(httpSession); - if (user.isPresent()) { - config.getUserProperties().put(SESSIONKEY_USERID, user.get().getId()); - } + user.ifPresent(value -> config.getUserProperties().put(SESSIONKEY_USERID, value.getId())); } } @SuppressWarnings("unchecked") @Override - public T getEndpointInstance(Class endpointClass) throws InstantiationException { + public T getEndpointInstance(Class endpointClass) { return (T) new WebSocketEndpoint(webSocketSessions); } } diff --git a/commafeed-server/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java b/commafeed-server/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java index 97d339ac..dc1616d4 100644 --- a/commafeed-server/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java +++ b/commafeed-server/src/test/java/com/commafeed/backend/FixedSizeSortedSetTest.java @@ -9,12 +9,7 @@ import org.junit.jupiter.api.Test; class FixedSizeSortedSetTest { - private static final Comparator COMP = new Comparator() { - @Override - public int compare(String o1, String o2) { - return ObjectUtils.compare(o1, o2); - } - }; + private static final Comparator COMP = ObjectUtils::compare; private FixedSizeSortedSet set; diff --git a/commafeed-server/src/test/java/com/commafeed/backend/opml/OPMLExporterTest.java b/commafeed-server/src/test/java/com/commafeed/backend/opml/OPMLExporterTest.java index 8cdbe4cf..13eba78e 100644 --- a/commafeed-server/src/test/java/com/commafeed/backend/opml/OPMLExporterTest.java +++ b/commafeed-server/src/test/java/com/commafeed/backend/opml/OPMLExporterTest.java @@ -7,9 +7,10 @@ import java.util.List; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; import com.commafeed.backend.dao.FeedCategoryDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO; @@ -20,6 +21,7 @@ import com.commafeed.backend.model.User; import com.rometools.opml.feed.opml.Opml; import com.rometools.opml.feed.opml.Outline; +@ExtendWith(MockitoExtension.class) class OPMLExporterTest { @Mock @@ -41,21 +43,19 @@ class OPMLExporterTest { @BeforeEach public void init() { - MockitoAnnotations.openMocks(this); - user.setName("John Doe"); cat1.setId(1L); cat1.setName("cat1"); cat1.setParent(null); - cat1.setChildren(new HashSet()); - cat1.setSubscriptions(new HashSet()); + cat1.setChildren(new HashSet<>()); + cat1.setSubscriptions(new HashSet<>()); cat2.setId(2L); cat2.setName("cat2"); cat2.setParent(cat1); - cat2.setChildren(new HashSet()); - cat2.setSubscriptions(new HashSet()); + cat2.setChildren(new HashSet<>()); + cat2.setSubscriptions(new HashSet<>()); cat1.getChildren().add(cat2); diff --git a/commafeed-server/src/test/java/com/commafeed/backend/service/FeedEntryFilteringServiceTest.java b/commafeed-server/src/test/java/com/commafeed/backend/service/FeedEntryFilteringServiceTest.java index 52f441e8..5987dd07 100644 --- a/commafeed-server/src/test/java/com/commafeed/backend/service/FeedEntryFilteringServiceTest.java +++ b/commafeed-server/src/test/java/com/commafeed/backend/service/FeedEntryFilteringServiceTest.java @@ -13,7 +13,6 @@ class FeedEntryFilteringServiceTest { private FeedEntryFilteringService service; private FeedEntry entry; - private FeedEntryContent content; @BeforeEach public void init() { @@ -22,7 +21,7 @@ class FeedEntryFilteringServiceTest { entry = new FeedEntry(); entry.setUrl("https://github.com/Athou/commafeed"); - content = new FeedEntryContent(); + FeedEntryContent content = new FeedEntryContent(); content.setAuthor("Athou"); content.setTitle("Merge pull request #662 from Athou/dw8"); content.setContent("Merge pull request #662 from Athou/dw8"); @@ -46,13 +45,13 @@ class FeedEntryFilteringServiceTest { } @Test - void newIsDisabled() throws FeedEntryFilterException { + void newIsDisabled() { Assertions.assertThrows(FeedEntryFilterException.class, () -> service.filterMatchesEntry("null eq new ('java.lang.String', 'athou')", entry)); } @Test - void getClassMethodIsDisabled() throws FeedEntryFilterException { + void getClassMethodIsDisabled() { Assertions.assertThrows(FeedEntryFilterException.class, () -> service.filterMatchesEntry("null eq ''.getClass()", entry)); } @@ -62,24 +61,24 @@ class FeedEntryFilteringServiceTest { } @Test - void cannotLoopForever() throws FeedEntryFilterException { + void cannotLoopForever() { Assertions.assertThrows(FeedEntryFilterException.class, () -> service.filterMatchesEntry("while(true) {}", entry)); } @Test - void handlesNullCorrectly() throws FeedEntryFilterException { + void handlesNullCorrectly() { entry.setUrl(null); entry.setContent(new FeedEntryContent()); Assertions.assertDoesNotThrow(() -> service.filterMatchesEntry("author eq 'athou'", entry)); } @Test - void incorrectScriptThrowsException() throws FeedEntryFilterException { + void incorrectScriptThrowsException() { Assertions.assertThrows(FeedEntryFilterException.class, () -> service.filterMatchesEntry("aa eqz bb", entry)); } @Test - void incorrectReturnTypeThrowsException() throws FeedEntryFilterException { + void incorrectReturnTypeThrowsException() { Assertions.assertThrows(FeedEntryFilterException.class, () -> service.filterMatchesEntry("1", entry)); } diff --git a/commafeed-server/src/test/java/com/commafeed/backend/service/UserServiceTest.java b/commafeed-server/src/test/java/com/commafeed/backend/service/UserServiceTest.java index 94a74784..8bfeed75 100644 --- a/commafeed-server/src/test/java/com/commafeed/backend/service/UserServiceTest.java +++ b/commafeed-server/src/test/java/com/commafeed/backend/service/UserServiceTest.java @@ -5,9 +5,10 @@ import java.util.Optional; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; import com.commafeed.CommaFeedConfiguration; import com.commafeed.backend.dao.FeedCategoryDAO; @@ -18,6 +19,7 @@ import com.commafeed.backend.dao.UserSettingsDAO; import com.commafeed.backend.model.User; import com.commafeed.backend.service.internal.PostLoginActivities; +@ExtendWith(MockitoExtension.class) class UserServiceTest { private static final byte[] SALT = new byte[] { 1, 2, 3 }; @@ -47,8 +49,6 @@ class UserServiceTest { @BeforeEach public void init() { - MockitoAnnotations.openMocks(this); - userService = new UserService(feedCategoryDAO, feedSubscriptionDAO, userDAO, userRoleDAO, userSettingsDAO, passwordEncryptionService, commaFeedConfiguration, postLoginActivities); diff --git a/commafeed-server/src/test/java/com/commafeed/e2e/PlaywrightTestBase.java b/commafeed-server/src/test/java/com/commafeed/e2e/PlaywrightTestBase.java index 3945d2ee..ae157c65 100644 --- a/commafeed-server/src/test/java/com/commafeed/e2e/PlaywrightTestBase.java +++ b/commafeed-server/src/test/java/com/commafeed/e2e/PlaywrightTestBase.java @@ -63,7 +63,7 @@ public class PlaywrightTestBase { private final String directory = buildDirectory + "/playwright-artifacts"; @Override - public void beforeEach(ExtensionContext context) throws Exception { + public void beforeEach(ExtensionContext context) { PlaywrightTestBase testInstance = getTestInstance(context); NewContextOptions newContextOptions = new Browser.NewContextOptions().setRecordVideoDir(Paths.get(directory)); diff --git a/commafeed-server/src/test/java/com/commafeed/integration/rest/FeedIT.java b/commafeed-server/src/test/java/com/commafeed/integration/rest/FeedIT.java index 659baada..1f354443 100644 --- a/commafeed-server/src/test/java/com/commafeed/integration/rest/FeedIT.java +++ b/commafeed-server/src/test/java/com/commafeed/integration/rest/FeedIT.java @@ -178,11 +178,19 @@ class FeedIT extends BaseIT { void importExportOpml() throws IOException { importOpml(); String opml = getClient().target(getApiBaseUrl() + "feed/export").request().get(String.class); - String expextedOpml = "\n" + "\n" + " \n" - + " admin subscriptions in CommaFeed\n" + " \n" + " \n" - + " \n" - + " \n" - + " \n" + " \n" + "\n"; + String expextedOpml = """ + + + + admin subscriptions in CommaFeed + + + + + + + + """; Assertions.assertEquals(StringUtils.normalizeSpace(expextedOpml), StringUtils.normalizeSpace(opml)); }