blob: 412c053759f1b1261bbfae9078db2eb1079bcc6b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* yyyymmdd bug Email and other contact information
* -------- -------- -----------------------------------------------------------
* 20060216 127138 pmoogk@ca.ibm.com - Peter Moogk
* 20070314 154543 makandre@ca.ibm.com - Andrew Mak, WebServiceTestRegistry is tracking extensions using label attribute instead of ID
* 20080416 227359 makandre@ca.ibm.com - Andrew Mak, Test facilities do not respect default order in plugin customization
*******************************************************************************/
package org.eclipse.jst.ws.internal.context;
import java.util.Enumeration;
import java.util.Vector;
import org.eclipse.jst.ws.internal.ext.test.WebServiceTestExtension;
import org.eclipse.jst.ws.internal.ext.test.WebServiceTestRegistry;
import org.eclipse.jst.ws.internal.plugin.WebServicePlugin;
import org.eclipse.wst.command.internal.env.context.PersistentContext;
import com.ibm.icu.util.StringTokenizer;
public class PersistentScenarioContext extends PersistentContext implements ScenarioContext
{
public PersistentScenarioContext()
{
super(WebServicePlugin.getInstance());
}
public void load()
{
ScenarioDefaults defaults = new ScenarioDefaults();
String[] ids = defaults.getWebServiceTestIds();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ids.length; i++)
{
if (i != 0) sb.append(",");
sb.append(ids[i]);
}
String nonJavaTestService = defaults.getNonJavaTestServiceDefault();
setDefaultStringIfNoDefault(PREFERENCE_WEBSERVICE_TEST_TYPES, sb.toString());
setDefaultStringIfNoDefault(PREFERENCE_NON_JAVA_TEST_SERVICE, nonJavaTestService);
setDefaultStringIfNoDefault(PREFERENCE_CLIENT_WEBSERVICE_TYPE, defaults.webserviceClientTypeDefault() );
setDefaultStringIfNoDefault(PREFERENCE_WEBSERVICE_TYPE, defaults.webserviceTypeIdDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_GENERATE_PROXY, defaults.generateProxyDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_LAUNCH_WEBSERVICE_EXPLORER, defaults.launchWebserviceExplorerDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_INSTALL_WEBSERVICE, defaults.installWebserviceDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_INSTALL_CLIENT, defaults.installClientDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_START_WEBSERVICE, defaults.startWebserviceDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_TEST_WEBSERVICE, defaults.testWebserviceDefault() );
setDefaultBooleanIfNoDefault(PREFERENCE_MONITOR_WEBSERVICE, defaults.getMonitorWebServiceDefault());
setDefaultBooleanIfNoDefault(PREFERENCE_LAUNCH_SAMPLE, defaults.launchSample() );
setDefaultIntIfNoDefault(PREFERENCE_GENERATE_WEBSERVICE, defaults.serviceGenerationDefault()); //jvh
setDefaultIntIfNoDefault(PREFERENCE_GENERATE_CLIENT, defaults.clientGenerationDefault());
}
public String[] getNonJavaTestService()
{
WebServiceTestRegistry registry = WebServiceTestRegistry.getInstance();
String[] ids = getWebServiceTestIds();
Vector newTestCases = new Vector();
for (int i = 0; i < ids.length; i++)
{
WebServiceTestExtension wse = (WebServiceTestExtension) registry
.getWebServiceExtensionsById(ids[i]);
if (wse != null && wse.testWSDL())
newTestCases.addElement(wse.getLabel());
}
String[] wsdlTestArray = new String[newTestCases.size()];
Enumeration e = newTestCases.elements();
int i = 0;
while(e.hasMoreElements()){
wsdlTestArray[i] = (String)e.nextElement();
i++;
}
return wsdlTestArray;
}
public void setWebServiceTestIds(String[] ids)
{
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ids.length; i++)
{
if (i != 0) sb.append(",");
sb.append(ids[i]);
}
setValue(PREFERENCE_WEBSERVICE_TEST_TYPES, sb.toString());
}
private String[] getWebServiceTestIds(String value)
{
StringTokenizer st = new StringTokenizer(value, ",");
String[] s = new String[st.countTokens()];
for (int i = 0; i < s.length; i++) {
// 154543: we have to continue to interpret the old label style preferences
s[i] = WebServiceTestRegistry.getInstance().labelToId(st.nextToken());
}
return s;
}
public String[] getWebServiceTestIds()
{
return getWebServiceTestIds(getValueAsString(PREFERENCE_WEBSERVICE_TEST_TYPES));
}
public String[] getDefaultWebServiceTestIds()
{
return getWebServiceTestIds(getDefaultString(PREFERENCE_WEBSERVICE_TEST_TYPES));
}
public void setWebServiceTestTypes(String[] ids)
{
// 154543: deprecated, noop
}
public String[] getWebServiceTestTypes()
{
WebServiceTestRegistry registry = WebServiceTestRegistry.getInstance();
String[] ids = getWebServiceTestIds();
Vector labels = new Vector();
for (int i = 0; i < ids.length; i++)
{
WebServiceTestExtension wse = (WebServiceTestExtension) registry
.getWebServiceExtensionsById(ids[i]);
if (wse != null)
labels.addElement(wse.getLabel());
}
String[] s = new String[labels.size()];
labels.copyInto(s);
return s;
}
public ScenarioContext copy()
{
TransientScenarioContext context = new TransientScenarioContext();
context.setWebServiceTestIds(getWebServiceTestIds());
context.setWebServiceTestTypes(getWebServiceTestTypes());
context.setNonJavaTestService(getNonJavaTestService());
context.setClientWebServiceType( getClientWebServiceType() );
context.setWebServiceType( getWebServiceType() );
context.setLaunchWebServiceExplorer( getLaunchWebServiceExplorer() );
context.setStartWebService( getStartWebService() );
context.setGenerateProxy( getGenerateProxy() );
context.setTestWebService( getTestWebService() );
context.setMonitorWebService(getMonitorWebService());
context.setLaunchSampleEnabled( isLaunchSampleEnabled() );
return context;
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getClientWebServiceType()
*/
public String getClientWebServiceType()
{
return getValueAsString(PREFERENCE_CLIENT_WEBSERVICE_TYPE);
}
public String getClientWebServiceTypeDefault()
{
return getDefaultString(PREFERENCE_CLIENT_WEBSERVICE_TYPE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getGenerateProxy()
*/
public boolean getGenerateProxy()
{
return getValueAsBoolean(PREFERENCE_GENERATE_PROXY);
}
public boolean getGenerateProxyDefault()
{
return getDefaultBoolean(PREFERENCE_GENERATE_PROXY);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getLaunchWebServiceExplorer()
*/
public boolean getLaunchWebServiceExplorer()
{
return getValueAsBoolean(PREFERENCE_LAUNCH_WEBSERVICE_EXPLORER);
}
public boolean getLaunchWebServiceExplorerDefault()
{
return getDefaultBoolean(PREFERENCE_LAUNCH_WEBSERVICE_EXPLORER);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getStartWebService()
*/
public boolean getStartWebService()
{
return getValueAsBoolean(PREFERENCE_START_WEBSERVICE);
}
public boolean getStartWebServiceDefault()
{
return getDefaultBoolean(PREFERENCE_START_WEBSERVICE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getInstallWebService()
*/
public boolean getInstallWebService()
{
return getValueAsBoolean(PREFERENCE_INSTALL_WEBSERVICE);
}
public boolean getInstallWebServiceDefault()
{
return getDefaultBoolean(PREFERENCE_INSTALL_WEBSERVICE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getInstallWebService()
*/
public boolean getInstallClient()
{
return getValueAsBoolean(PREFERENCE_INSTALL_CLIENT);
}
public boolean getInstallClientDefault()
{
return getDefaultBoolean(PREFERENCE_INSTALL_CLIENT);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getTestWebService()
*/
public boolean getTestWebService()
{
return getValueAsBoolean(PREFERENCE_TEST_WEBSERVICE);
}
public boolean getTestWebServiceDefault()
{
return getDefaultBoolean(PREFERENCE_TEST_WEBSERVICE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getWebServiceType()
*/
public String getWebServiceType()
{
return getValueAsString(PREFERENCE_WEBSERVICE_TYPE);
}
public String getWebServiceTypeDefault()
{
return getDefaultString(PREFERENCE_WEBSERVICE_TYPE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setClientWebServiceType(java.lang.String)
*/
public void setClientWebServiceType(String value)
{
setValue( PREFERENCE_CLIENT_WEBSERVICE_TYPE, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setGenerateProxy(boolean)
*/
public void setGenerateProxy(boolean value)
{
setValue( PREFERENCE_GENERATE_PROXY, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setLaunchWebServiceExplorer(boolean)
*/
public void setLaunchWebServiceExplorer(boolean value)
{
setValue( PREFERENCE_LAUNCH_WEBSERVICE_EXPLORER, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setInstallWebService(boolean)
*/
public void setInstallWebService(boolean value)
{
setValue( PREFERENCE_INSTALL_WEBSERVICE, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setInstallWebService(boolean)
*/
public void setInstallClient(boolean value)
{
setValue( PREFERENCE_INSTALL_CLIENT, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setStartWebService(boolean)
*/
public void setStartWebService(boolean value)
{
setValue( PREFERENCE_START_WEBSERVICE, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setTestWebService(boolean)
*/
public void setTestWebService(boolean value)
{
setValue( PREFERENCE_TEST_WEBSERVICE, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setWebServiceType(java.lang.String)
*/
public void setWebServiceType(String value)
{
setValue( PREFERENCE_WEBSERVICE_TYPE, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getMonitorWebService()
*/
public boolean getMonitorWebService()
{
return getValueAsBoolean(PREFERENCE_MONITOR_WEBSERVICE);
}
public boolean getMonitorWebServiceDefault()
{
return getDefaultBoolean(PREFERENCE_MONITOR_WEBSERVICE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setMonitorWebService(boolean)
*/
public void setMonitorWebService(boolean value)
{
setValue(PREFERENCE_MONITOR_WEBSERVICE, value);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#getLaunchSampleEnabledDefault()
*/
public boolean getLaunchSampleEnabledDefault()
{
return getDefaultBoolean(PREFERENCE_LAUNCH_SAMPLE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#isLaunchSampleEnabled()
*/
public boolean isLaunchSampleEnabled()
{
return getValueAsBoolean(PREFERENCE_LAUNCH_SAMPLE);
}
/* (non-Javadoc)
* @see org.eclipse.jst.ws.internal.context.ScenarioContext#setLaunchSampleEnabled(boolean)
*/
public void setLaunchSampleEnabled(boolean value)
{
setValue( PREFERENCE_LAUNCH_SAMPLE, value);
}
//jvh
public int getGenerateWebService()
{
return getValueAsInt(PREFERENCE_GENERATE_WEBSERVICE);
}
public int getGenerateWebServiceDefault()
{
return getDefaultInt(PREFERENCE_GENERATE_WEBSERVICE);
}
public void setGenerateWebService(int value)
{
setValue(PREFERENCE_GENERATE_WEBSERVICE, value);
}
public int getGenerateClientDefault()
{
return getDefaultInt(PREFERENCE_GENERATE_CLIENT);
}
public int getGenerateClient()
{
return getValueAsInt(PREFERENCE_GENERATE_CLIENT);
}
public void setGenerateClient(int value)
{
setValue(PREFERENCE_GENERATE_CLIENT, value);
}
}