forked from Archives/Athou_commafeed
Revert for the moment as it breaks pubsub handling
This commit is contained in:
@@ -67,7 +67,7 @@ public class FeedDAO extends GenericDAO<Feed> {
|
|||||||
|
|
||||||
List<Feed> feeds = q.getResultList();
|
List<Feed> feeds = q.getResultList();
|
||||||
for (Feed feed : feeds) {
|
for (Feed feed : feeds) {
|
||||||
FeedPushInfo info = Iterables.getFirst(feed.getPushInfo(), null);
|
FeedPushInfo info = feed.getPushInfo();
|
||||||
if (info != null) {
|
if (info != null) {
|
||||||
info.getTopic();
|
info.getTopic();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import com.commafeed.backend.model.FeedSubscription;
|
|||||||
import com.commafeed.backend.pubsubhubbub.SubscriptionHandler;
|
import com.commafeed.backend.pubsubhubbub.SubscriptionHandler;
|
||||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||||
import com.commafeed.backend.services.FeedUpdateService;
|
import com.commafeed.backend.services.FeedUpdateService;
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.google.common.util.concurrent.Striped;
|
import com.google.common.util.concurrent.Striped;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -158,7 +157,7 @@ public class FeedRefreshUpdater {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void handlePubSub(final Feed feed) {
|
private void handlePubSub(final Feed feed) {
|
||||||
FeedPushInfo info = Iterables.getFirst(feed.getPushInfo(), null);
|
FeedPushInfo info = feed.getPushInfo();
|
||||||
if (info != null && info.isActive() == false) {
|
if (info != null && info.isActive() == false) {
|
||||||
new Thread() {
|
new Thread() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ import com.commafeed.backend.model.FeedEntry;
|
|||||||
import com.commafeed.backend.model.FeedPushInfo;
|
import com.commafeed.backend.model.FeedPushInfo;
|
||||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||||
import com.commafeed.backend.services.FeedPushInfoService;
|
import com.commafeed.backend.services.FeedPushInfoService;
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.sun.syndication.io.FeedException;
|
import com.sun.syndication.io.FeedException;
|
||||||
|
|
||||||
public class FeedRefreshWorker {
|
public class FeedRefreshWorker {
|
||||||
@@ -86,6 +85,7 @@ public class FeedRefreshWorker {
|
|||||||
|
|
||||||
private void update(Feed feed) {
|
private void update(Feed feed) {
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
FetchedFeed fetchedFeed = fetcher.fetch(feed.getUrl(), false,
|
FetchedFeed fetchedFeed = fetcher.fetch(feed.getUrl(), false,
|
||||||
feed.getLastModifiedHeader(), feed.getEtagHeader());
|
feed.getLastModifiedHeader(), feed.getEtagHeader());
|
||||||
@@ -156,11 +156,11 @@ public class FeedRefreshWorker {
|
|||||||
topic = "http://" + topic;
|
topic = "http://" + topic;
|
||||||
}
|
}
|
||||||
log.debug("feed {} has pubsub info: {}", feed.getUrl(), topic);
|
log.debug("feed {} has pubsub info: {}", feed.getUrl(), topic);
|
||||||
FeedPushInfo info = Iterables.getFirst(feed.getPushInfo(), null);
|
FeedPushInfo info = feed.getPushInfo();
|
||||||
if (info == null) {
|
if (info == null) {
|
||||||
info = feedPushInfoService.findOrCreate(feed, hub, topic);
|
info = feedPushInfoService.findOrCreate(feed, hub, topic);
|
||||||
feed.getPushInfo().add(info);
|
|
||||||
}
|
}
|
||||||
|
feed.setPushInfo(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import javax.persistence.Entity;
|
|||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.ManyToMany;
|
import javax.persistence.ManyToMany;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
|
import javax.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import javax.persistence.Temporal;
|
import javax.persistence.Temporal;
|
||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
@@ -68,11 +69,9 @@ public class Feed extends AbstractModel {
|
|||||||
@Column(length = 255)
|
@Column(length = 255)
|
||||||
private String etagHeader;
|
private String etagHeader;
|
||||||
|
|
||||||
@OneToMany(fetch = FetchType.LAZY, mappedBy = "feed", cascade = {
|
@OneToOne(fetch = FetchType.LAZY, mappedBy = "feed", cascade = {
|
||||||
CascadeType.PERSIST, CascadeType.MERGE })
|
CascadeType.PERSIST, CascadeType.MERGE })
|
||||||
// use a onetomany relationship for push info to avoid hibernate automatic
|
private FeedPushInfo pushInfo;
|
||||||
// lazy loading of onetoone optional relationships
|
|
||||||
private Set<FeedPushInfo> pushInfo;
|
|
||||||
|
|
||||||
@ManyToMany(mappedBy = "feeds")
|
@ManyToMany(mappedBy = "feeds")
|
||||||
private Set<FeedEntry> entries = Sets.newHashSet();
|
private Set<FeedEntry> entries = Sets.newHashSet();
|
||||||
@@ -184,11 +183,11 @@ public class Feed extends AbstractModel {
|
|||||||
this.lastUpdateSuccess = lastUpdateSuccess;
|
this.lastUpdateSuccess = lastUpdateSuccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<FeedPushInfo> getPushInfo() {
|
public FeedPushInfo getPushInfo() {
|
||||||
return pushInfo;
|
return pushInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPushInfo(Set<FeedPushInfo> pushInfo) {
|
public void setPushInfo(FeedPushInfo pushInfo) {
|
||||||
this.pushInfo = pushInfo;
|
this.pushInfo = pushInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import javax.persistence.Column;
|
|||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
import javax.persistence.JoinColumn;
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.ManyToOne;
|
import javax.persistence.OneToOne;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
import org.hibernate.annotations.Index;
|
import org.hibernate.annotations.Index;
|
||||||
@@ -15,7 +15,7 @@ import org.hibernate.annotations.Index;
|
|||||||
public class FeedPushInfo extends AbstractModel {
|
public class FeedPushInfo extends AbstractModel {
|
||||||
|
|
||||||
@JoinColumn(unique = true)
|
@JoinColumn(unique = true)
|
||||||
@ManyToOne(fetch = FetchType.LAZY)
|
@OneToOne(fetch = FetchType.LAZY)
|
||||||
private Feed feed;
|
private Feed feed;
|
||||||
|
|
||||||
@Column(length = 2048, nullable = false)
|
@Column(length = 2048, nullable = false)
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import com.commafeed.backend.feeds.FeedUtils;
|
|||||||
import com.commafeed.backend.model.Feed;
|
import com.commafeed.backend.model.Feed;
|
||||||
import com.commafeed.backend.model.FeedPushInfo;
|
import com.commafeed.backend.model.FeedPushInfo;
|
||||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||||
import com.google.common.collect.Iterables;
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
public class SubscriptionHandler {
|
public class SubscriptionHandler {
|
||||||
@@ -38,7 +37,7 @@ public class SubscriptionHandler {
|
|||||||
FeedPushInfoDAO feedPushInfoDAO;
|
FeedPushInfoDAO feedPushInfoDAO;
|
||||||
|
|
||||||
public void subscribe(Feed feed) {
|
public void subscribe(Feed feed) {
|
||||||
FeedPushInfo info = Iterables.getFirst(feed.getPushInfo(), null);
|
FeedPushInfo info = feed.getPushInfo();
|
||||||
String hub = info.getHub();
|
String hub = info.getHub();
|
||||||
String topic = info.getTopic();
|
String topic = info.getTopic();
|
||||||
String publicUrl = FeedUtils
|
String publicUrl = FeedUtils
|
||||||
|
|||||||
Reference in New Issue
Block a user