forked from Archives/Athou_commafeed
jklm initial implementation
This commit is contained in:
15
pom.xml
15
pom.xml
@@ -31,6 +31,16 @@
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jklm.releases</id>
|
||||
<url>http://mvn.jkeylockmanager.de</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
@@ -234,6 +244,11 @@
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>2.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>de.jkeylockmanager</groupId>
|
||||
<artifactId>jkeylockmanager</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.java.dev.rome</groupId>
|
||||
|
||||
@@ -14,7 +14,6 @@ import javax.inject.Singleton;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.commafeed.backend.LockMap;
|
||||
import com.commafeed.backend.dao.FeedDAO;
|
||||
import com.commafeed.backend.dao.FeedSubscriptionDAO;
|
||||
import com.commafeed.backend.model.ApplicationSettings;
|
||||
@@ -26,13 +25,17 @@ import com.commafeed.backend.pubsubhubbub.SubscriptionHandler;
|
||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||
import com.commafeed.backend.services.FeedUpdateService;
|
||||
|
||||
import de.jkeylockmanager.manager.KeyLockManager;
|
||||
import de.jkeylockmanager.manager.KeyLockManagers;
|
||||
import de.jkeylockmanager.manager.LockCallback;
|
||||
|
||||
@Singleton
|
||||
public class FeedRefreshUpdater {
|
||||
|
||||
protected static Logger log = LoggerFactory
|
||||
.getLogger(FeedRefreshUpdater.class);
|
||||
|
||||
private static LockMap<String> lockMap = new LockMap<String>();
|
||||
private static final KeyLockManager lockManager = KeyLockManagers.newLock();
|
||||
|
||||
@Inject
|
||||
FeedUpdateService feedUpdateService;
|
||||
@@ -107,11 +110,14 @@ public class FeedRefreshUpdater {
|
||||
|
||||
}
|
||||
|
||||
private void updateEntry(Feed feed, FeedEntry entry,
|
||||
List<FeedSubscription> subscriptions) {
|
||||
synchronized (lockMap.get(entry.getGuid())) {
|
||||
feedUpdateService.updateEntry(feed, entry, subscriptions);
|
||||
}
|
||||
private void updateEntry(final Feed feed, final FeedEntry entry,
|
||||
final List<FeedSubscription> subscriptions) {
|
||||
lockManager.executeLocked(entry.getGuid(), new LockCallback() {
|
||||
@Override
|
||||
public void doInLock() throws Exception {
|
||||
feedUpdateService.updateEntry(feed, entry, subscriptions);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void handlePubSub(final Feed feed) {
|
||||
|
||||
@@ -46,8 +46,9 @@ public class UserService {
|
||||
PasswordEncryptionService encryptionService;
|
||||
|
||||
public User login(String name, String password) {
|
||||
Preconditions.checkNotNull(name);
|
||||
Preconditions.checkNotNull(password);
|
||||
if (name == null || password == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
User user = userDAO.findByName(name);
|
||||
if (user != null && !user.isDisabled()) {
|
||||
|
||||
Reference in New Issue
Block a user