LOCATION + "0", LauncherUtils.getDefaultPath( ).append( "runtime-workbench-workspace" ).toOSString( ) );
LOCATION + "0", LauncherUtils.getDefaultPath( ).append( WORKESPACENAME ).toOSString( ) );
	private String[] getProgramArguments( ILaunchConfiguration configuration )			throws CoreException	{		ArrayList programArgs = new ArrayList( );		// If a product is specified, then add it to the program args		if ( configuration.getAttribute( USE_PRODUCT, false ) )		{			programArgs.add( "-product" ); //$NON-NLS-1$			programArgs.add( configuration.getAttribute( PRODUCT, "" ) ); //$NON-NLS-1$		}		else		{			// specify the application to launch			programArgs.add( "-application" ); //$NON-NLS-1$			programArgs.add( configuration.getAttribute( APPLICATION,					LauncherUtils.getDefaultApplicationName( ) ) );		}		// specify the workspace location for the runtime workbench		String targetWorkspace = configuration				.getAttribute(						LOCATION + "0", LauncherUtils.getDefaultPath( ).append( "runtime-workbench-workspace" ).toOSString( ) ); //$NON-NLS-1$ //$NON-NLS-2$		programArgs.add( "-data" ); //$NON-NLS-1$		programArgs.add( targetWorkspace );		boolean isOSGI = PDECore.getDefault( ).getModelManager( )				.isOSGiRuntime( );		if ( configuration.getAttribute( USEFEATURES, false ) )		{			validateFeatures( );			IPath installPath = PDEPlugin.getWorkspace( ).getRoot( )					.getLocation( );			programArgs.add( "-install" ); //$NON-NLS-1$			programArgs					.add( "file:" + installPath.removeLastSegments( 1 ).addTrailingSeparator( ).toString( ) ); //$NON-NLS-1$			programArgs.add( "-update" ); //$NON-NLS-1$		}		else		{			TreeMap pluginMap = LauncherUtils.getPluginsToRun( configuration );			if ( pluginMap == null )				return null;			String primaryFeatureId = ReportLauncherUtils.getPrimaryFeatureId( );			DebugUtil.runCreatePlatformConfigurationArea( pluginMap,					getConfigDir( configuration ), primaryFeatureId,					ReportLauncherUtils.getAutoStartPlugins( configuration ) );			programArgs.add( "-configuration" ); //$NON-NLS-1$			if ( isOSGI )				programArgs						.add( "file:" + new Path( getConfigDir( configuration ).getPath( ) ).addTrailingSeparator( ).toString( ) ); //$NON-NLS-1$			else				programArgs						.add( "file:" + new Path( getConfigDir( configuration ).getPath( ) ).append( "platform.cfg" ).toString( ) ); //$NON-NLS-1$ //$NON-NLS-2$			if ( !isOSGI )			{				if ( primaryFeatureId != null )				{					programArgs.add( "-feature" ); //$NON-NLS-1$					programArgs.add( primaryFeatureId );				}				IPluginModelBase bootModel = (IPluginModelBase) pluginMap						.get( "org.eclipse.core.boot" ); //$NON-NLS-1$				String bootPath = LauncherUtils.getBootPath( bootModel );				if ( bootPath != null && !bootPath.endsWith( ".jar" ) ) { //$NON-NLS-1$					programArgs.add( "-boot" ); //$NON-NLS-1$					programArgs.add( "file:" + bootPath ); //$NON-NLS-1$				}			}		}		// add the output folder names		programArgs.add( "-dev" ); //$NON-NLS-1$		if ( PDECore.getDefault( ).getModelManager( ).isOSGiRuntime( ) )			programArgs.add( DebugUtil.getDevEntriesProperties( getConfigDir(					configuration ).toString( )					+ "/dev.properties", true ) ); //$NON-NLS-1$		else			programArgs.add( DebugUtil.getDevEntries( true ) );		// necessary for PDE to know how to load plugins when target platform =		// host platform		// see PluginPathFinder.getPluginPaths()		programArgs.add( "-pdelaunch" ); //$NON-NLS-1$		// add tracing, if turned on		if ( configuration.getAttribute( TRACING, false )				&& !TRACING_NONE.equals( configuration.getAttribute(						TRACING_CHECKED, (String) null ) ) )		{			programArgs.add( "-debug" ); //$NON-NLS-1$			programArgs.add( LauncherUtils.getTracingFileArgument(					configuration, getConfigDir( configuration ).toString( )							+ Path.SEPARATOR + ".options" ) ); //$NON-NLS-1$		}		// add the program args specified by the user		StringTokenizer tokenizer = new StringTokenizer( configuration				.getAttribute( PROGARGS, "" ) ); //$NON-NLS-1$		while ( tokenizer.hasMoreTokens( ) )		{			programArgs.add( tokenizer.nextToken( ) );		}		// show splash only if we are launching the default application		boolean showSplash = true;		int index = programArgs.indexOf( "-application" ); //$NON-NLS-1$		if ( index != -1 && index <= programArgs.size( ) - 2 )		{			if ( !programArgs.get( index + 1 ).equals(					LauncherUtils.getDefaultApplicationName( ) ) )			{				showSplash = false;			}		}		if ( showSplash && !programArgs.contains( "-nosplash" ) ) { //$NON-NLS-1$			programArgs.add( 0, "-showsplash" ); //$NON-NLS-1$			programArgs.add( 1, computeShowsplashArgument( ) );		}		return (String[]) programArgs.toArray( new String[programArgs.size( )] );	}