mirror of
https://github.com/sismics/docs.git
synced 2025-12-22 06:01:42 +00:00
Fire some more indexing events
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package com.sismics.docs.core.event;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
|
||||
/**
|
||||
* ACL created event.
|
||||
*
|
||||
* @author bgamard
|
||||
*/
|
||||
public class AclCreatedAsyncEvent extends UserEvent {
|
||||
/**
|
||||
* Source ID.
|
||||
*/
|
||||
private String sourceId;
|
||||
|
||||
public String getSourceId() {
|
||||
return sourceId;
|
||||
}
|
||||
|
||||
public AclCreatedAsyncEvent setSourceId(String sourceId) {
|
||||
this.sourceId = sourceId;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("sourceId", sourceId)
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.sismics.docs.core.event;
|
||||
|
||||
import com.google.common.base.MoreObjects;
|
||||
|
||||
/**
|
||||
* ACL deleted event.
|
||||
*
|
||||
* @author bgamard
|
||||
*/
|
||||
public class AclDeletedAsyncEvent extends UserEvent {
|
||||
/**
|
||||
* Source ID.
|
||||
*/
|
||||
private String sourceId;
|
||||
|
||||
public String getSourceId() {
|
||||
return sourceId;
|
||||
}
|
||||
|
||||
public AclDeletedAsyncEvent setSourceId(String sourceId) {
|
||||
this.sourceId = sourceId;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return MoreObjects.toStringHelper(this)
|
||||
.add("sourceId", sourceId)
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.sismics.docs.core.listener.async;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.sismics.docs.core.event.AclCreatedAsyncEvent;
|
||||
import com.sismics.docs.core.model.context.AppContext;
|
||||
import com.sismics.docs.core.util.TransactionUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Listener on ACL created.
|
||||
*
|
||||
* @author bgamard
|
||||
*/
|
||||
public class AclCreatedAsyncListener {
|
||||
/**
|
||||
* Logger.
|
||||
*/
|
||||
private static final Logger log = LoggerFactory.getLogger(AclCreatedAsyncListener.class);
|
||||
|
||||
/**
|
||||
* ACL created.
|
||||
*
|
||||
* @param event ACL created event
|
||||
*/
|
||||
@Subscribe
|
||||
public void on(final AclCreatedAsyncEvent event) {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("ACL created event: " + event.toString());
|
||||
}
|
||||
|
||||
TransactionUtil.handle(() -> {
|
||||
AppContext.getInstance().getIndexingHandler().createAcl(event.getSourceId());
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.sismics.docs.core.listener.async;
|
||||
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
import com.sismics.docs.core.event.AclDeletedAsyncEvent;
|
||||
import com.sismics.docs.core.model.context.AppContext;
|
||||
import com.sismics.docs.core.util.TransactionUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* Listener on ACL deleted.
|
||||
*
|
||||
* @author bgamard
|
||||
*/
|
||||
public class AclDeletedAsyncListener {
|
||||
/**
|
||||
* Logger.
|
||||
*/
|
||||
private static final Logger log = LoggerFactory.getLogger(AclDeletedAsyncListener.class);
|
||||
|
||||
/**
|
||||
* ACL deleted.
|
||||
*
|
||||
* @param event ACL deleted event
|
||||
*/
|
||||
@Subscribe
|
||||
public void on(final AclDeletedAsyncEvent event) {
|
||||
if (log.isInfoEnabled()) {
|
||||
log.info("ACL deleted event: " + event.toString());
|
||||
}
|
||||
|
||||
TransactionUtil.handle(() -> {
|
||||
AppContext.getInstance().getIndexingHandler().deleteAcl(event.getSourceId());
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -124,6 +124,8 @@ public class AppContext {
|
||||
asyncEventBus.register(new DocumentDeletedAsyncListener());
|
||||
asyncEventBus.register(new RebuildIndexAsyncListener());
|
||||
asyncEventBus.register(new TemporaryFileCleanupAsyncListener());
|
||||
asyncEventBus.register(new AclCreatedAsyncListener());
|
||||
asyncEventBus.register(new AclDeletedAsyncListener());
|
||||
|
||||
mailEventBus = newAsyncEventBus();
|
||||
mailEventBus.register(new PasswordLostAsyncListener());
|
||||
|
||||
@@ -70,6 +70,20 @@ public interface IndexingHandler {
|
||||
*/
|
||||
void deleteDocument(String id);
|
||||
|
||||
/**
|
||||
* Create an ACL.
|
||||
*
|
||||
* @param sourceId Source ID
|
||||
*/
|
||||
void createAcl(String sourceId);
|
||||
|
||||
/**
|
||||
* Delete an ACL.
|
||||
*
|
||||
* @param sourceId Source ID
|
||||
*/
|
||||
void deleteAcl(String sourceId);
|
||||
|
||||
/**
|
||||
* Searches documents by criteria.
|
||||
*
|
||||
|
||||
@@ -168,6 +168,16 @@ public class LuceneIndexingHandler implements IndexingHandler {
|
||||
handle(indexWriter -> indexWriter.deleteDocuments(new Term("id", id)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAcl(String sourceId) {
|
||||
// Lucene does not index ACLs
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAcl(String sourceId) {
|
||||
// Lucene does not index ACLs
|
||||
}
|
||||
|
||||
@Override
|
||||
public void findByCriteria(PaginatedList<DocumentDto> paginatedList, DocumentCriteria criteria, SortCriteria sortCriteria) throws Exception {
|
||||
Map<String, Object> parameterMap = new HashMap<>();
|
||||
|
||||
Reference in New Issue
Block a user