From beaf39c8e6c98efebf9ec8db2e421d6660cbe570 Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 2 Jul 2013 16:10:59 +0200 Subject: [PATCH] move injection points where they belong --- .../commafeed/backend/DatabaseCleaner.java | 22 +++++++++ .../backend/services/FeedService.java | 18 -------- .../rest/resources/AbstractResourceREST.java | 7 ++- .../frontend/rest/resources/AdminREST.java | 42 ++++++++++++++++- .../rest/resources/ApiDocumentationREST.java | 5 +++ .../frontend/rest/resources/CategoryREST.java | 13 ++++++ .../frontend/rest/resources/EntryREST.java | 9 ++++ .../frontend/rest/resources/FeedREST.java | 45 +++++++++++++++++++ .../frontend/rest/resources/ServerREST.java | 11 ++++- .../frontend/rest/resources/UserREST.java | 26 ++++++++++- 10 files changed, 176 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/commafeed/backend/DatabaseCleaner.java b/src/main/java/com/commafeed/backend/DatabaseCleaner.java index cb502f0a..8de562c0 100644 --- a/src/main/java/com/commafeed/backend/DatabaseCleaner.java +++ b/src/main/java/com/commafeed/backend/DatabaseCleaner.java @@ -1,6 +1,7 @@ package com.commafeed.backend; import java.util.Calendar; +import java.util.List; import java.util.concurrent.TimeUnit; import javax.inject.Inject; @@ -10,6 +11,9 @@ import org.slf4j.LoggerFactory; import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.dao.FeedEntryDAO; +import com.commafeed.backend.dao.FeedSubscriptionDAO; +import com.commafeed.backend.model.Feed; +import com.commafeed.backend.model.FeedSubscription; public class DatabaseCleaner { @@ -21,6 +25,9 @@ public class DatabaseCleaner { @Inject FeedEntryDAO feedEntryDAO; + @Inject + FeedSubscriptionDAO feedSubscriptionDAO; + public long cleanFeedsWithoutSubscriptions() { long total = 0; @@ -48,4 +55,19 @@ public class DatabaseCleaner { log.info("cleanup done: {} entries deleted", total); return total; } + + public void mergeFeeds(Feed into, List feeds) { + for (Feed feed : feeds) { + if (into.getId().equals(feed.getId())) { + continue; + } + List subs = feedSubscriptionDAO.findByFeed(feed); + for (FeedSubscription sub : subs) { + sub.setFeed(into); + } + feedSubscriptionDAO.saveOrUpdate(subs); + feedDAO.delete(feed); + } + feedDAO.saveOrUpdate(into); + } } diff --git a/src/main/java/com/commafeed/backend/services/FeedService.java b/src/main/java/com/commafeed/backend/services/FeedService.java index b437375d..e3cc8a6e 100644 --- a/src/main/java/com/commafeed/backend/services/FeedService.java +++ b/src/main/java/com/commafeed/backend/services/FeedService.java @@ -1,7 +1,5 @@ package com.commafeed.backend.services; -import java.util.List; - import javax.ejb.Lock; import javax.ejb.LockType; import javax.ejb.Singleton; @@ -13,7 +11,6 @@ import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.feeds.FeedUtils; import com.commafeed.backend.model.Feed; -import com.commafeed.backend.model.FeedSubscription; @Singleton public class FeedService { @@ -39,19 +36,4 @@ public class FeedService { return feed; } - public void mergeFeeds(Feed into, List feeds) { - for (Feed feed : feeds) { - if (into.getId().equals(feed.getId())) { - continue; - } - List subs = feedSubscriptionDAO.findByFeed(feed); - for (FeedSubscription sub : subs) { - sub.setFeed(into); - } - feedSubscriptionDAO.saveOrUpdate(subs); - feedDAO.delete(feed); - } - feedDAO.saveOrUpdate(into); - } - } diff --git a/src/main/java/com/commafeed/frontend/rest/resources/AbstractResourceREST.java b/src/main/java/com/commafeed/frontend/rest/resources/AbstractResourceREST.java index d8120f96..fc7ed233 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/AbstractResourceREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/AbstractResourceREST.java @@ -1,5 +1,6 @@ package com.commafeed.frontend.rest.resources; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.core.Application; import javax.ws.rs.core.Context; @@ -11,6 +12,7 @@ import javax.ws.rs.core.UriInfo; import org.apache.commons.lang.StringUtils; import com.commafeed.backend.model.UserRole.Role; +import com.commafeed.backend.services.ApplicationSettingsService; import com.commafeed.frontend.SecurityCheck; import com.commafeed.frontend.model.Entries; import com.commafeed.frontend.model.request.MarkRequest; @@ -25,6 +27,9 @@ import com.wordnik.swagger.jaxrs.JaxrsApiReader; @SecurityCheck(Role.USER) public abstract class AbstractResourceREST extends AbstractREST { + @Inject + ApplicationSettingsService applicationSettingsService; + @GET @SecurityCheck(value = Role.NONE) @ApiOperation(value = "Returns information about API parameters", responseClass = "com.wordnik.swagger.core.Documentation") @@ -33,7 +38,7 @@ public abstract class AbstractResourceREST extends AbstractREST { TypeUtil.addAllowablePackage(Entries.class.getPackage().getName()); TypeUtil.addAllowablePackage(MarkRequest.class.getPackage().getName()); - + String apiVersion = ApiDocumentationREST.API_VERSION; String swaggerVersion = SwaggerSpec.version(); String basePath = ApiDocumentationREST diff --git a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java index ee3b4e30..a3c34b27 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/AdminREST.java @@ -17,13 +17,23 @@ import javax.ws.rs.core.Response.Status; import org.apache.commons.lang.StringUtils; +import com.commafeed.backend.DatabaseCleaner; +import com.commafeed.backend.MetricsBean; import com.commafeed.backend.StartupBean; +import com.commafeed.backend.dao.FeedDAO; +import com.commafeed.backend.dao.UserDAO; +import com.commafeed.backend.dao.UserRoleDAO; +import com.commafeed.backend.feeds.FeedRefreshTaskGiver; +import com.commafeed.backend.feeds.FeedRefreshUpdater; +import com.commafeed.backend.feeds.FeedRefreshWorker; import com.commafeed.backend.model.ApplicationSettings; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserRole; import com.commafeed.backend.model.UserRole.Role; import com.commafeed.backend.services.FeedService; +import com.commafeed.backend.services.PasswordEncryptionService; +import com.commafeed.backend.services.UserService; import com.commafeed.frontend.SecurityCheck; import com.commafeed.frontend.model.UserModel; import com.commafeed.frontend.model.request.FeedMergeRequest; @@ -44,6 +54,36 @@ public class AdminREST extends AbstractResourceREST { @Inject FeedService feedService; + @Inject + UserService userService; + + @Inject + UserDAO userDAO; + + @Inject + UserRoleDAO userRoleDAO; + + @Inject + FeedDAO feedDAO; + + @Inject + MetricsBean metricsBean; + + @Inject + DatabaseCleaner cleaner; + + @Inject + FeedRefreshWorker feedRefreshWorker; + + @Inject + FeedRefreshUpdater feedRefreshUpdater; + + @Inject + FeedRefreshTaskGiver taskGiver; + + @Inject + PasswordEncryptionService encryptionService; + @Path("/user/save") @POST @ApiOperation(value = "Save or update a user", notes = "Save or update a user. If the id is not specified, a new user will be created") @@ -233,7 +273,7 @@ public class AdminREST extends AbstractResourceREST { feeds.add(feed); } - feedService.mergeFeeds(into, feeds); + cleaner.mergeFeeds(into, feeds); return Response.ok().build(); } diff --git a/src/main/java/com/commafeed/frontend/rest/resources/ApiDocumentationREST.java b/src/main/java/com/commafeed/frontend/rest/resources/ApiDocumentationREST.java index 8f36a28b..542f4210 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/ApiDocumentationREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/ApiDocumentationREST.java @@ -1,11 +1,13 @@ package com.commafeed.frontend.rest.resources; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.core.Application; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; +import com.commafeed.backend.services.ApplicationSettingsService; import com.commafeed.frontend.model.Entries; import com.commafeed.frontend.model.request.MarkRequest; import com.wordnik.swagger.annotations.Api; @@ -21,6 +23,9 @@ public class ApiDocumentationREST extends AbstractREST { public static final String API_VERSION = "1.0"; + @Inject + ApplicationSettingsService applicationSettingsService; + @GET @ApiOperation(value = "Returns list of all available api endpoints", responseClass = "List[DocumentationEndPoint]") public Response getAllApis(@Context Application app) { diff --git a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java index c87b1a23..434ee7f9 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java @@ -7,6 +7,7 @@ import java.util.Date; import java.util.List; import java.util.Map; +import javax.inject.Inject; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -22,6 +23,9 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.commafeed.backend.dao.FeedCategoryDAO; +import com.commafeed.backend.dao.FeedEntryStatusDAO; +import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedEntryStatus; import com.commafeed.backend.model.FeedSubscription; @@ -58,6 +62,15 @@ public class CategoryREST extends AbstractResourceREST { public static final String ALL = "all"; public static final String STARRED = "starred"; + @Inject + FeedEntryStatusDAO feedEntryStatusDAO; + + @Inject + FeedCategoryDAO feedCategoryDAO; + + @Inject + FeedSubscriptionDAO feedSubscriptionDAO; + @Path("/entries") @GET @ApiOperation(value = "Get category entries", notes = "Get a list of category entries", responseClass = "com.commafeed.frontend.model.Entries") diff --git a/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java b/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java index 92f7c856..686c914d 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java @@ -2,6 +2,7 @@ package com.commafeed.frontend.rest.resources; import java.util.List; +import javax.inject.Inject; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.POST; @@ -12,7 +13,9 @@ import javax.ws.rs.core.Response.Status; import org.apache.commons.lang.StringUtils; +import com.commafeed.backend.dao.FeedEntryStatusDAO; import com.commafeed.backend.model.FeedEntryStatus; +import com.commafeed.backend.services.FeedEntryService; import com.commafeed.frontend.model.Entries; import com.commafeed.frontend.model.Entry; import com.commafeed.frontend.model.request.MarkRequest; @@ -27,6 +30,12 @@ import com.wordnik.swagger.annotations.ApiParam; @Api(value = "/entry", description = "Operations about feed entries") public class EntryREST extends AbstractResourceREST { + @Inject + FeedEntryService feedEntryService; + + @Inject + FeedEntryStatusDAO feedEntryStatusDAO; + @Path("/mark") @POST @ApiOperation(value = "Mark a feed entry", notes = "Mark a feed entry as read/unread") diff --git a/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java b/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java index 27c97501..f4635b45 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java @@ -8,6 +8,8 @@ import java.util.Comparator; import java.util.Date; import java.util.List; +import javax.inject.Inject; +import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; @@ -18,6 +20,7 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.CacheControl; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; @@ -34,14 +37,23 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.commafeed.backend.StartupBean; +import com.commafeed.backend.dao.FeedCategoryDAO; +import com.commafeed.backend.dao.FeedEntryStatusDAO; +import com.commafeed.backend.dao.FeedSubscriptionDAO; +import com.commafeed.backend.feeds.FaviconFetcher; +import com.commafeed.backend.feeds.FeedFetcher; +import com.commafeed.backend.feeds.FeedRefreshTaskGiver; import com.commafeed.backend.feeds.FeedUtils; import com.commafeed.backend.feeds.FetchedFeed; +import com.commafeed.backend.feeds.OPMLExporter; +import com.commafeed.backend.feeds.OPMLImporter; import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.FeedCategory; import com.commafeed.backend.model.FeedEntryStatus; import com.commafeed.backend.model.FeedSubscription; import com.commafeed.backend.model.UserRole.Role; import com.commafeed.backend.model.UserSettings.ReadingOrder; +import com.commafeed.backend.services.FeedSubscriptionService; import com.commafeed.frontend.SecurityCheck; import com.commafeed.frontend.model.Entries; import com.commafeed.frontend.model.Entry; @@ -70,6 +82,39 @@ public class FeedREST extends AbstractResourceREST { private static Logger log = LoggerFactory.getLogger(FeedREST.class); + @Inject + StartupBean startupBean; + + @Inject + FeedCategoryDAO feedCategoryDAO; + + @Inject + FaviconFetcher faviconFetcher; + + @Inject + FeedSubscriptionDAO feedSubscriptionDAO; + + @Inject + FeedSubscriptionService feedSubscriptionService; + + @Inject + FeedFetcher feedFetcher; + + @Inject + FeedEntryStatusDAO feedEntryStatusDAO; + + @Inject + FeedRefreshTaskGiver taskGiver; + + @Inject + OPMLImporter opmlImporter; + + @Inject + OPMLExporter opmlExporter; + + @Context + private HttpServletRequest request; + @Path("/entries") @GET @ApiOperation(value = "Get feed entries", notes = "Get a list of feed entries", responseClass = "com.commafeed.frontend.model.Entries") diff --git a/src/main/java/com/commafeed/frontend/rest/resources/ServerREST.java b/src/main/java/com/commafeed/frontend/rest/resources/ServerREST.java index e6986159..0094148b 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/ServerREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/ServerREST.java @@ -1,5 +1,6 @@ package com.commafeed.frontend.rest.resources; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; @@ -7,7 +8,9 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; +import com.commafeed.backend.HttpGetter; import com.commafeed.backend.HttpGetter.HttpResult; +import com.commafeed.backend.StartupBean; import com.commafeed.backend.feeds.FeedUtils; import com.commafeed.frontend.model.ServerInfo; import com.wordnik.swagger.annotations.Api; @@ -17,6 +20,12 @@ import com.wordnik.swagger.annotations.ApiOperation; @Api(value = "/server", description = "Operations about server infos") public class ServerREST extends AbstractResourceREST { + @Inject + StartupBean startupBean; + + @Inject + HttpGetter httpGetter; + @Path("/get") @GET @ApiOperation(value = "Get server infos", notes = "Get server infos", responseClass = "com.commafeed.frontend.model.ServerInfo") @@ -37,7 +46,7 @@ public class ServerREST extends AbstractResourceREST { if (!applicationSettingsService.get().isImageProxyEnabled()) { return Response.status(Status.FORBIDDEN).build(); } - + url = FeedUtils.imageProxyDecoder(url); try { HttpResult result = httpGetter.getBinary(url, 20000); diff --git a/src/main/java/com/commafeed/frontend/rest/resources/UserREST.java b/src/main/java/com/commafeed/frontend/rest/resources/UserREST.java index ec1772b5..ad7547df 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/UserREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/UserREST.java @@ -2,6 +2,7 @@ package com.commafeed.frontend.rest.resources; import java.util.Arrays; +import javax.inject.Inject; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -11,6 +12,9 @@ import javax.ws.rs.core.Response.Status; import org.apache.commons.lang.StringUtils; import com.commafeed.backend.StartupBean; +import com.commafeed.backend.dao.UserDAO; +import com.commafeed.backend.dao.UserRoleDAO; +import com.commafeed.backend.dao.UserSettingsDAO; import com.commafeed.backend.model.User; import com.commafeed.backend.model.UserRole; import com.commafeed.backend.model.UserRole.Role; @@ -18,6 +22,8 @@ import com.commafeed.backend.model.UserSettings; import com.commafeed.backend.model.UserSettings.ReadingMode; import com.commafeed.backend.model.UserSettings.ReadingOrder; import com.commafeed.backend.model.UserSettings.ViewMode; +import com.commafeed.backend.services.PasswordEncryptionService; +import com.commafeed.backend.services.UserService; import com.commafeed.frontend.SecurityCheck; import com.commafeed.frontend.model.Settings; import com.commafeed.frontend.model.UserModel; @@ -32,6 +38,24 @@ import com.wordnik.swagger.annotations.ApiParam; @Api(value = "/user", description = "Operations about the user") public class UserREST extends AbstractResourceREST { + @Inject + UserDAO userDAO; + + @Inject + UserSettingsDAO userSettingsDAO; + + @Inject + UserRoleDAO userRoleDAO; + + @Inject + StartupBean startupBean; + + @Inject + UserService userService; + + @Inject + PasswordEncryptionService encryptionService; + @Path("/settings") @GET @ApiOperation(value = "Retrieve user settings", notes = "Retrieve user settings", responseClass = "com.commafeed.frontend.model.Settings") @@ -42,7 +66,7 @@ public class UserREST extends AbstractResourceREST { // force unread for the moment // s.setReadingMode(settings.getReadingMode().name()); s.setReadingMode(ReadingMode.unread.name()); - + s.setReadingOrder(settings.getReadingOrder().name()); s.setViewMode(settings.getViewMode().name()); s.setShowRead(settings.isShowRead());