package org.ariadne_eu.content.insert; import javax.activation.DataHandler; import org.apache.log4j.Logger; import org.ariadne.config.PropertiesManager; import org.ariadne_eu.spidev.SPIDevStub; import org.ariadne_eu.spidev.SubmitResource; import org.ariadne_eu.utils.config.RepositoryConstants; import org.w3.www._2005._05.xmlmime.Base64Binary; import be.cenorm.www.CreateSession; import be.cenorm.www.CreateSessionResponse; import be.cenorm.www.SqiSessionManagementStub; /** * Created by ben * Date: 13-sep-2007 * Time: 22:07:40 * To change this template use File | Settings | File Templates. */ public class InsertContentSpiForwardImpl extends InsertContentImpl { private static Logger log = Logger.getLogger(InsertContentSpiForwardImpl.class); private String smURI; private String spiURI; private String username; private String password; // private String catalog; void initialize() { super.initialize(); smURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SM_URL + "." + getNumber()); if (smURI == null) smURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SM_URL); spiURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SPI_URL + "." + getNumber()); if (spiURI == null) spiURI = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SPI_URL); username = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SM_USERNAME + "." + getNumber()); if (username == null) username = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SM_USERNAME); password = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SM_PASSWORD + "." + getNumber()); if (password == null) password = PropertiesManager.getInstance().getProperty(RepositoryConstants.getInstance().CNT_SPIFWD_SM_PASSWORD); // catalog = PropertiesManager.getInstance().getProperty("spiforward.content.spi.catalog."+getNumber()); // if (catalog == null) // catalog = PropertiesManager.getInstance().getProperty("spiforward.content.spi.catalog"); } // public void insertContent(String identifier, DataHandler dataHandler) { // try { // SqiSessionManagementBindingServiceStub sm = new SqiSessionManagementBindingServiceStub(smURI); // CreateSession createSession = new CreateSession(); // createSession.setUserID(username); // createSession.setPassword(password); // CreateSessionResponse sessionM = sm.createSession(createSession); // // SPIStub spi = new SPIStub(spiURI); //// CreateIdentifier createIdentifier = new CreateIdentifier(); //// createIdentifier.setCatalog(catalog); //// createIdentifier.setTargetSessionID(sessionM.getCreateSessionReturn()); //// CreateIdentifierResponse spiIdentifier = spi.createIdentifier(createIdentifier); // // SubmitResource resource = new SubmitResource(); // resource.setGlobalIdentifier(identifier); // resource.setTargetSessionID(sessionM.getCreateSessionReturn()); // Base64Binary binary = new Base64Binary(); // binary.setBase64Binary(dataHandler); // resource.setBinaryData(binary); // spi.submitResource(resource); // } catch (Exception e) { // log.error("insertContent failed, identifier: \""+identifier+"\"", e); // } // } public synchronized void insertContent(String identifier, DataHandler dataHandler, String fileName, String fileType) { try { SqiSessionManagementStub sm = new SqiSessionManagementStub(smURI); CreateSession createSession = new CreateSession(); createSession.setUserID(username); createSession.setPassword(password); CreateSessionResponse sessionM = sm.createSession(createSession); SPIDevStub spi = new SPIDevStub(spiURI); SubmitResource resource = new SubmitResource(); resource.setGlobalIdentifier(identifier); resource.setTargetSessionID(sessionM.getCreateSessionReturn()); Base64Binary binary = new Base64Binary(); binary.setBase64Binary(dataHandler); resource.setBinaryData(binary); resource.setFileName(fileName); resource.setFileType(fileType); spi.submitResource(resource); } catch (Exception e) { log.error("insertContent failed, identifier: \""+identifier+"\"", e); } } }