// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.mdm.repository.ui.actions.serviceconfiguration;
import org.dom4j.DocumentException;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ItemState;
import org.talend.core.model.properties.PropertiesFactory;
import org.talend.mdm.repository.i18n.Messages;
import org.talend.mdm.repository.model.mdmproperties.MdmpropertiesFactory;
import org.talend.mdm.repository.model.mdmproperties.WSServiceConfigurationItem;
import org.talend.mdm.repository.model.mdmserverobject.MdmserverobjectFactory;
import org.talend.mdm.repository.model.mdmserverobject.WSServiceConfigurationE;
import org.talend.mdm.repository.model.mdmserverobject.WSServicePutConfigurationE;
import org.talend.mdm.repository.ui.actions.AbstractSimpleAddAction;
import org.talend.mdm.repository.utils.RepositoryResourceUtil;
import com.amalto.workbench.utils.XmlUtil;
/**
* DOC jsxie class global comment. Detailled comment <br/>
*
*/
public class NewServiceConfigurationAction extends AbstractSimpleAddAction {
public NewServiceConfigurationAction() {
super();
}
@Override
protected String getDialogTitle() {
return Messages.NewServiceConfigurationAction_newServiceConfiguration;
}
private WSServiceConfigurationE newServiceConfiguration(String key) {
WSServicePutConfigurationE putConfig1 = MdmserverobjectFactory.eINSTANCE.createWSServicePutConfigurationE();
putConfig1.setJndiName("smtp"); //$NON-NLS-1$
String configContent1 = "<configuration> " + "\n" + "<host>localhost</host> " + "\n" + "<port>25</port> " + "\n" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ "<username/> " + "\n" + " <password/> " + "\n" + " <from/> " + "\n" + " <to/> " + "\n" + " <permanentbcc/>" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ "\n" + " <process/> " + "\n" + " <logfilename/> " + "\n" + " </configuration>";//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
putConfig1.setConfiguration(formatXml(configContent1));
WSServicePutConfigurationE putConfig2 = MdmserverobjectFactory.eINSTANCE.createWSServicePutConfigurationE();
putConfig2.setJndiName("svn"); //$NON-NLS-1$
String configContent2 = "<svn-configuration><url>https://localhost:8443/svn/starkeylib</url><password>admin</password><autocommit>false</autocommit> " + //$NON-NLS-1$
" <username>admin</username>" + //$NON-NLS-1$
"</svn-configuration>"; //$NON-NLS-1$
putConfig2.setConfiguration(formatXml(configContent2));
WSServicePutConfigurationE putConfig3 = MdmserverobjectFactory.eINSTANCE.createWSServicePutConfigurationE();
putConfig3.setJndiName("workflow"); //$NON-NLS-1$
String configContent3 = " <workflow-configuration> <api-type>EJB2</api-type> </workflow-configuration>"; //$NON-NLS-1$
putConfig3.setConfiguration(formatXml(configContent3));
WSServiceConfigurationE serConfig = MdmserverobjectFactory.eINSTANCE.createWSServiceConfigurationE();
serConfig.setName(key);
serConfig.getServicePutConfigurations().add(putConfig1);
serConfig.getServicePutConfigurations().add(putConfig2);
serConfig.getServicePutConfigurations().add(putConfig3);
return serConfig;
}
private String formatXml(String doc) {
String formatXml = doc;
if (formatXml != null && formatXml.length() > 0) {
try {
formatXml = XmlUtil.formatPretty(formatXml, "UTF-8");//$NON-NLS-1$
} catch (DocumentException e) {
log.error(e.getMessage(), e);
}
}
return formatXml;
}
@Override
protected Item createServerObject(String key) {
WSServiceConfigurationItem item = MdmpropertiesFactory.eINSTANCE.createWSServiceConfigurationItem();
ItemState itemState = PropertiesFactory.eINSTANCE.createItemState();
item.setState(itemState);
WSServiceConfigurationE serConfig = newServiceConfiguration(key);
item.setWsServiceConfiguration(serConfig);
if (parentItem != null) {
item.getState().setPath(parentItem.getState().getPath());
RepositoryResourceUtil.createItem(item, key);
}
return item;
}
}