package org.ariadne_eu.metadata.delete;
import org.apache.log4j.Logger;
import org.ariadne.config.PropertiesManager;
import org.ariadne_eu.spi.DeleteMetadataRecord;
import org.ariadne_eu.spi.SPIStub;
import org.ariadne_eu.utils.config.RepositoryConstants;
import be.cenorm.www.CreateSession;
import be.cenorm.www.CreateSessionResponse;
import be.cenorm.www.DestroySession;
import be.cenorm.www.SqiSessionManagementStub;
/**
* Created by ben
* Date: 13-sep-2007
* Time: 21:41:54
* To change this template use File | Settings | File Templates.
*/
public class DeleteMetadataSpiForwardImpl extends DeleteMetadataImpl {
private static Logger log = Logger.getLogger(DeleteMetadataExistDbImpl.class);
private String smURI;
private String spiURI;
private String username;
private String password;
void initialize() {
super.initialize();
smURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SM_URL + "." + getImplementation());
if (smURI == null)
smURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SM_URL);
spiURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SPI_URL + "." + getImplementation());
if (spiURI == null)
spiURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SPI_URL);
username = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SM_USERNAME + "." + getImplementation());
if (username == null)
username = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SM_USERNAME);
password = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SM_PASSWORD + "." + getImplementation());
if (password == null)
password = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().MD_SPIFWD_SM_PASSWORD);
}
public synchronized void deleteMetadata(String identifier) {
try {
SqiSessionManagementStub sm = new SqiSessionManagementStub(smURI);
CreateSession createSession = new CreateSession();
createSession.setUserID(username);
createSession.setPassword(password);
CreateSessionResponse sessionM = sm.createSession(createSession);
SPIStub spi = new SPIStub(spiURI);
DeleteMetadataRecord deleteMetadataRecord = new DeleteMetadataRecord();
deleteMetadataRecord.setTargetSessionID(sessionM.getCreateSessionReturn());
deleteMetadataRecord.setGlobalIdentifier(identifier);
spi.deleteMetadataRecord(deleteMetadataRecord);
if(!sessionM.getCreateSessionReturn().equals("")) {
DestroySession destroySession = new DestroySession();
destroySession.setSessionID(sessionM.getCreateSessionReturn());
sm.destroySession(destroySession);
}
} catch (Exception e) {
log.error("deleteMetadata failed, identifier: \""+identifier+"\"", e);
}
}
}