All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rapture.kernel.pipeline.RaptureSearchUpdateHandler Maven / Gradle / Ivy

There is a newer version: 3.0.4
Show newest version
package rapture.kernel.pipeline;

import org.apache.log4j.Logger;

import rapture.common.RapturePipelineTask;
import rapture.common.impl.jackson.JacksonUtil;
import rapture.common.mime.MimeSearchUpdateObject;
import rapture.exchange.QueueHandler;
import rapture.kernel.Kernel;

public class RaptureSearchUpdateHandler implements QueueHandler {

    private static final Logger log = Logger.getLogger(RaptureSearchUpdateHandler.class);
 
    private final PipelineTaskStatusManager statusManager;

    public RaptureSearchUpdateHandler() {
        statusManager = new PipelineTaskStatusManager();
    }

    @Override
    public boolean handleMessage(String tag, String routing, String contentType, RapturePipelineTask task) {
        String content = task.getContent();
        log.info("Processing search update request"); //$NON-NLS-1$
        try {
            statusManager.startRunning(task);
            MimeSearchUpdateObject doc = JacksonUtil.objectFromJson(content, MimeSearchUpdateObject.class);
            
            switch(doc.getType()) {
            case CREATE:
                Kernel.getSearch().getTrusted().writeSearchEntry(doc.getRepo(), doc.getDoc());
                break;
            case DELETE:
            	Kernel.getSearch().getTrusted().deleteSearchEntry(doc.getRepo(), doc.getDoc().getDisplayName());
            	break;
            case REBUILD:
            	// What to do?
            	Kernel.getSearch().getTrusted().rebuild(doc.getRepo());
            	break;
            case DROP:
            	Kernel.getSearch().getTrusted().drop(doc.getRepo());
            	break;
            default:
            	log.error("Don't know how to process this search update");
            }
            // Call something in
            statusManager.finishRunningWithSuccess(task);

        } catch (Exception e) {
            log.error(String.format("Failed to process update %s", //$NON-NLS-1$
                    e.getMessage()));
            statusManager.finishRunningWithFailure(task);
        }
        return true;
    }

	

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy