package com.bagri.server.hazelcast.task.doc; import java.util.concurrent.Callable; import org.springframework.beans.factory.annotation.Autowired; import com.bagri.core.api.DocumentManagement; import com.bagri.core.model.Document; import com.bagri.core.server.api.TransactionManagement; import com.bagri.core.system.Permission; import com.bagri.server.hazelcast.impl.SchemaRepositoryImpl; import com.hazelcast.spring.context.SpringAware; @SpringAware public class DocumentRemover extends com.bagri.client.hazelcast.task.doc.DocumentRemover { private transient DocumentManagement docMgr; private transient TransactionManagement txMgr; @Autowired public void setRepository(SchemaRepositoryImpl repo) { this.repo = repo; this.docMgr = repo.getDocumentManagement(); this.txMgr = (TransactionManagement) repo.getTxManagement(); } @Override public Document call() throws Exception { ((SchemaRepositoryImpl) repo).getXQProcessor(clientId); checkPermission(Permission.Value.modify); txMgr.callInTransaction(txId, false, new Callable<Void>() { public Void call() throws Exception { docMgr.removeDocument(uri); return null; } }); return null; } }