package com.bagri.server.hazelcast.task.doc; //import static com.bagri.server.hazelcast.util.SpringContextHolder.getContext; import java.util.concurrent.Callable; import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.context.ApplicationContext; import com.bagri.core.api.DocumentManagement; import com.bagri.core.model.Document; import com.bagri.core.server.api.SchemaRepository; 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 DocumentCreator extends com.bagri.client.hazelcast.task.doc.DocumentCreator { private transient DocumentManagement docMgr; private transient TransactionManagement txMgr; @Autowired public void setRepository(SchemaRepository repo) { this.repo = repo; this.docMgr = repo.getDocumentManagement(); this.txMgr = (TransactionManagement) repo.getTxManagement(); } @Override public Document call() throws Exception { //final ApplicationContext ctx = getContext("default"); //repo = ctx.getBean(SchemaRepository.bean_id, SchemaRepository.class); //final DocumentManagement docMgr = repo.getDocumentManagement(); //final TransactionManagement txMgr = (TransactionManagement) repo.getTxManagement(); ((SchemaRepositoryImpl) repo).getXQProcessor(clientId); checkPermission(Permission.Value.modify); return txMgr.callInTransaction(txId, false, new Callable<Document>() { public Document call() throws Exception { return docMgr.storeDocumentFromString(uri, content, props); } }); } }