From 23240f2c93a36ac6a3bd2724aa18a1d583f58eae Mon Sep 17 00:00:00 2001 From: Athou Date: Tue, 21 May 2013 12:41:57 +0200 Subject: [PATCH] small optimizations --- .../java/com/commafeed/backend/dao/FeedPushInfoDAO.java | 6 ++++-- .../com/commafeed/backend/feeds/FeedRefreshUpdater.java | 9 +++++++-- .../backend/pubsubhubbub/SubscriptionHandler.java | 7 ------- .../commafeed/frontend/rest/resources/CategoryREST.java | 9 ++++++--- .../rest/resources/PubSubHubbubCallbackREST.java | 8 ++++---- 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/commafeed/backend/dao/FeedPushInfoDAO.java b/src/main/java/com/commafeed/backend/dao/FeedPushInfoDAO.java index 1cec3645..d0849bff 100644 --- a/src/main/java/com/commafeed/backend/dao/FeedPushInfoDAO.java +++ b/src/main/java/com/commafeed/backend/dao/FeedPushInfoDAO.java @@ -13,11 +13,13 @@ import com.commafeed.backend.model.FeedPushInfo_; @Stateless public class FeedPushInfoDAO extends GenericDAO { - public List findByTopic(String topic) { + public List findByTopic(String topic, boolean includeFeed) { CriteriaQuery query = builder.createQuery(getType()); Root root = query.from(getType()); - root.fetch(FeedPushInfo_.feed); + if (includeFeed) { + root.fetch(FeedPushInfo_.feed); + } query.where(builder.equal(root.get(FeedPushInfo_.topic), topic)); TypedQuery q = em.createQuery(query); diff --git a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java index 3fe5b3d6..7fc98cf8 100644 --- a/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java +++ b/src/main/java/com/commafeed/backend/feeds/FeedRefreshUpdater.java @@ -47,10 +47,15 @@ public class FeedRefreshUpdater { } } - private void handlePubSub(Feed feed) { + private void handlePubSub(final Feed feed) { FeedPushInfo info = feed.getPushInfo(); if (info != null && info.isActive() == false) { - handler.subscribe(feed); + new Thread() { + @Override + public void run() { + handler.subscribe(feed); + } + }.start(); } } diff --git a/src/main/java/com/commafeed/backend/pubsubhubbub/SubscriptionHandler.java b/src/main/java/com/commafeed/backend/pubsubhubbub/SubscriptionHandler.java index 4bb34708..593a8c00 100644 --- a/src/main/java/com/commafeed/backend/pubsubhubbub/SubscriptionHandler.java +++ b/src/main/java/com/commafeed/backend/pubsubhubbub/SubscriptionHandler.java @@ -2,10 +2,6 @@ package com.commafeed.backend.pubsubhubbub; import java.util.List; -import javax.ejb.Asynchronous; -import javax.ejb.Stateless; -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; import javax.inject.Inject; import javax.ws.rs.core.MediaType; @@ -25,8 +21,6 @@ import com.commafeed.backend.model.FeedPushInfo; import com.commafeed.backend.services.ApplicationSettingsService; import com.google.common.collect.Lists; -@Stateless -@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) public class SubscriptionHandler { private static Logger log = LoggerFactory @@ -35,7 +29,6 @@ public class SubscriptionHandler { @Inject ApplicationSettingsService applicationSettingsService; - @Asynchronous public void subscribe(Feed feed) { FeedPushInfo info = feed.getPushInfo(); String hub = info.getHub(); 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 c1268f90..62de16a3 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java @@ -69,11 +69,13 @@ public class CategoryREST extends AbstractResourceREST { @ApiParam(value = "limit for paging") @DefaultValue("-1") @QueryParam("limit") int limit, @ApiParam(value = "date ordering", allowableValues = "asc,desc") @QueryParam("order") @DefaultValue("desc") ReadingOrder order) { - Preconditions.checkNotNull(id); Preconditions.checkNotNull(readType); Entries entries = new Entries(); boolean unreadOnly = readType == ReadType.unread; + if (StringUtils.isBlank(id)) { + id = ALL; + } if (ALL.equals(id)) { entries.setName("All"); @@ -125,7 +127,8 @@ public class CategoryREST extends AbstractResourceREST { int offset = 0; int limit = 20; - Entries entries = (Entries) getCategoryEntries(id, readType, offset, limit, order).getEntity(); + Entries entries = (Entries) getCategoryEntries(id, readType, offset, + limit, order).getEntity(); SyndFeed feed = new SyndFeedImpl(); feed.setFeedType("rss_2.0"); @@ -294,7 +297,7 @@ public class CategoryREST extends AbstractResourceREST { @GET @Path("/unreadCount") - @ApiOperation(value = "Get unread count for feed subscriptions", responseClass="List[com.commafeed.frontend.model.UnreadCount]") + @ApiOperation(value = "Get unread count for feed subscriptions", responseClass = "List[com.commafeed.frontend.model.UnreadCount]") public Response getUnreadCount() { List list = Lists.newArrayList(); Map unreadCount = feedEntryStatusDAO diff --git a/src/main/java/com/commafeed/frontend/rest/resources/PubSubHubbubCallbackREST.java b/src/main/java/com/commafeed/frontend/rest/resources/PubSubHubbubCallbackREST.java index 501f749c..8f7fe36f 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/PubSubHubbubCallbackREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/PubSubHubbubCallbackREST.java @@ -59,12 +59,11 @@ public class PubSubHubbubCallbackREST { log.info("confirmation callback received for {}", topic); - List infos = feedPushInfoDAO.findByTopic(topic); + List infos = feedPushInfoDAO.findByTopic(topic, false); if (infos.isEmpty() == false) { for (FeedPushInfo info : infos) { - log.info("activated push notifications for {}", info.getFeed() - .getUrl()); + log.info("activated push notifications for {}", info.getTopic()); info.setActive(true); } feedPushInfoDAO.update(infos); @@ -85,7 +84,8 @@ public class PubSubHubbubCallbackREST { String topic = fetchedFeed.getTopic(); if (topic != null) { log.info("content callback received for {}", topic); - List infos = feedPushInfoDAO.findByTopic(topic); + List infos = feedPushInfoDAO.findByTopic(topic, + true); for (FeedPushInfo info : infos) { Feed feed = info.getFeed(); log.info("pushing content to queue for {}", feed.getUrl());