mirror of
https://github.com/sismics/docs.git
synced 2025-12-14 02:06:25 +00:00
#180: last inbox sync infos
This commit is contained in:
@@ -1,14 +1,13 @@
|
||||
package com.sismics.docs.core.listener.async;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.sismics.docs.core.dao.jpa.ContributorDao;
|
||||
import com.sismics.docs.core.dao.lucene.LuceneDao;
|
||||
import com.sismics.docs.core.event.DocumentCreatedAsyncEvent;
|
||||
import com.sismics.docs.core.model.jpa.Contributor;
|
||||
import com.sismics.docs.core.util.TransactionUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Listener on document created.
|
||||
@@ -25,10 +24,9 @@ public class DocumentCreatedAsyncListener {
|
||||
* Document created.
|
||||
*
|
||||
* @param event Document created event
|
||||
* @throws Exception
|
||||
*/
|
||||
@Subscribe
|
||||
public void on(final DocumentCreatedAsyncEvent event) throws Exception {
|
||||
public void on(final DocumentCreatedAsyncEvent event) {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("Document created event: " + event.toString());
|
||||
}
|
||||
|
||||
@@ -34,6 +34,13 @@ public class InboxService extends AbstractScheduledService {
|
||||
*/
|
||||
private static final Logger log = LoggerFactory.getLogger(InboxService.class);
|
||||
|
||||
/**
|
||||
* Last synchronization data.
|
||||
*/
|
||||
private Date lastSyncDate;
|
||||
private int lastSyncMessageCount = 0;
|
||||
private String lastSyncError;
|
||||
|
||||
public InboxService() {
|
||||
}
|
||||
|
||||
@@ -60,18 +67,23 @@ public class InboxService extends AbstractScheduledService {
|
||||
}
|
||||
|
||||
Folder inbox = null;
|
||||
lastSyncError = null;
|
||||
lastSyncDate = new Date();
|
||||
lastSyncMessageCount = 0;
|
||||
try {
|
||||
inbox = openInbox();
|
||||
|
||||
int count = inbox.getMessageCount();
|
||||
Message[] messages = inbox.getMessages(1, count);
|
||||
|
||||
for (Message message : messages) {
|
||||
if (!message.getFlags().contains(Flags.Flag.SEEN)) {
|
||||
importMessage(message);
|
||||
lastSyncMessageCount++;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("Error synching the inbox", e);
|
||||
lastSyncError = e.getMessage();
|
||||
} finally {
|
||||
try {
|
||||
if (inbox != null) {
|
||||
@@ -207,4 +219,16 @@ public class InboxService extends AbstractScheduledService {
|
||||
FileUtil.createFile(fileContent.getName(), fileContent.getFile(), fileContent.getSize(), "eng", "admin", document.getId());
|
||||
}
|
||||
}
|
||||
|
||||
public Date getLastSyncDate() {
|
||||
return lastSyncDate;
|
||||
}
|
||||
|
||||
public int getLastSyncMessageCount() {
|
||||
return lastSyncMessageCount;
|
||||
}
|
||||
|
||||
public String getLastSyncError() {
|
||||
return lastSyncError;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user