package org.ariadne_eu.metadata.delete; import java.io.File; import net.sourceforge.minor.lucene.core.service.IndexService; import org.apache.log4j.Logger; import org.ariadne.config.PropertiesManager; import org.ariadne_eu.utils.config.RepositoryConstants; /** * Created by ben * Date: 25-aug-2007 * Time: 12:21:35 * To change this template use File | Settings | File Templates. */ public class DeleteMetadataLuceneImpl extends DeleteMetadataImpl { private static Logger log = Logger.getLogger(DeleteMetadataLuceneImpl.class); private File indexDir; public DeleteMetadataLuceneImpl() { initialize(); } public DeleteMetadataLuceneImpl(int implementation) { setImplementation(implementation); initialize(); } void initialize() { super.initialize(); try { String indexDirString = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().SR_LUCENE_INDEXDIR + "." + getImplementation()); if (indexDirString == null) indexDirString = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().SR_LUCENE_INDEXDIR); if (indexDirString == null) log.error("initialize failed: no " + RepositoryConstants.getInstance().SR_LUCENE_INDEXDIR + " found"); indexDir = new File(indexDirString); if (!indexDir.isDirectory()) log.error("initialize failed: " + RepositoryConstants.getInstance().SR_LUCENE_INDEXDIR + " invalid directory"); //TODO: check for valid lucene index } catch (Throwable t) { log.error("initialize: ", t); } } public synchronized void deleteMetadata(String identifier) { try { DeleteDelegateSingleStringImpl indexDeleterDelegate = new DeleteDelegateSingleStringImpl(identifier); IndexService.delete(indexDir, indexDeleterDelegate); log.info("deleteMetadata:identifier:\"" + identifier + "\""); } catch (Exception e) { log.error("deleteMetadata:identifier:\"" + identifier + "\" ", e); } } public File getIndexDir() { return indexDir; } }