package org.ariadne_eu.metadata.delete; import org.apache.log4j.Logger; import org.ariadne.config.PropertiesManager; import org.ariadne_eu.utils.config.RepositoryConstants; import org.xmldb.api.DatabaseManager; import org.xmldb.api.base.Collection; import org.xmldb.api.base.Database; import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.XMLResource; /** * Created by ben * Date: 5-mei-2007 * Time: 19:05:44 * To change this template use File | Settings | File Templates. */ public class DeleteMetadataExistDbImpl extends DeleteMetadataImpl { private static Logger log = Logger.getLogger(DeleteMetadataExistDbImpl.class); private Collection collection; public DeleteMetadataExistDbImpl() { initialize(); } public DeleteMetadataExistDbImpl(int implementation) { setImplementation(implementation); initialize(); } void initialize() { super.initialize(); try { String URI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DB_URI + "." + getImplementation()); if (URI == null) URI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DB_URI); try { Class cl = Class.forName("org.exist.xmldb.DatabaseImpl"); Database database = (Database)cl.newInstance(); DatabaseManager.registerDatabase(database); String username = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DB_USERNAME + "." + getImplementation()); if (username == null) username = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DB_USERNAME); String password = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DB_PASSWORD + "." + getImplementation()); if (password == null) password = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_DB_PASSWORD); collection = DatabaseManager.getCollection(URI, username, password); } catch (ClassNotFoundException e) { log.error("initialize: ", e); } catch (InstantiationException e) { log.error("initialize: ", e); } catch (IllegalAccessException e) { log.error("initialize: ", e); } catch (XMLDBException e) { } } catch (Throwable t) { log.error("initialize: ", t); } } public synchronized void deleteMetadata(String identifier) { try { identifier = identifier.replaceAll(":", "_"); XMLResource document = (XMLResource)collection.createResource(identifier, "XMLResource"); // document.setContent(metadata); // collection.storeResource(document); log.info("deleteMetadata:identifier:\""+identifier+"\""); } catch (XMLDBException e) { log.error("deleteMetadata:identifier:\""+identifier+"\" ", e); } } }