Clean up APIs/Tests around SBSv2 query mechanism (got rid of most all the original test API now that it's been moved into BuildContextSBSv2. C3_BUILDER_WORK
authortimkelly
Tue, 22 Jun 2010 14:54:23 -0500
branchC3_BUILDER_WORK
changeset 1522 58667ad9656d
parent 1521 807590ebabb2
child 1530 72bfa4457f1c
Clean up APIs/Tests around SBSv2 query mechanism (got rid of most all the original test API now that it's been moved into BuildContextSBSv2. Clean up the Build Configuration Filtering prefs and rename hyperlinks from other prefs to note the new name.
builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/SBSv2QueryTests.java
builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2ConfigData.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2ConfigPreprocessorInfo.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2QueryData.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2ConfigData.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryData.java
core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryUtils.java
core/com.nokia.carbide.cpp.sdk.ui/plugin.properties
core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/SBSv2PlatformFilterComposite.java
core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties
--- a/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/SBSv2QueryTests.java	Tue Jun 22 14:07:42 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder.test/src/com/nokia/carbide/cdt/builder/test/SBSv2QueryTests.java	Tue Jun 22 14:54:23 2010 -0500
@@ -17,15 +17,18 @@
 */
 package com.nokia.carbide.cdt.builder.test;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
 import org.osgi.framework.Version;
 
-import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.ISBSv2ConfigData;
-import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.ISBSv2QueryData;
 import com.nokia.carbide.cpp.internal.api.sdk.sbsv2.SBSv2QueryUtils;
+import com.nokia.carbide.cpp.sdk.core.ISBSv2BuildContext;
+import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo;
+import com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext;
+import com.nokia.carbide.cpp.sdk.core.ISymbianBuilderID;
 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
 import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
 
@@ -33,8 +36,6 @@
 	
 	private boolean printTimingStats = true;
 	
-	private static ISBSv2QueryData sbsAliasBaseQuery;
-	
 	private long startTime;
 	
 	private final String SDK_ID1 = "K_92_WK12"; // SDK with additional aliases and products
@@ -43,10 +44,10 @@
 	protected void setUp() throws Exception {
 		super.setUp();
 		Version sbsVersion = SDKCorePlugin.getSDKManager().getSBSv2Version(true);
-		if ((sbsVersion.getMajor() == 2 && sbsVersion.getMinor() < 14) ||
+		if ((sbsVersion.getMajor() == 2 && sbsVersion.getMinor() < 15) ||
 			 sbsVersion.getMajor() < 2){
 			
-			fail("SBS Query tests require Raptor 2.14 or greater. Raptor version found is: " + sbsVersion);
+			fail("SBS Query tests require Raptor 2.15 or greater. Raptor version found is: " + sbsVersion);
 		}
 	}
 	
@@ -55,121 +56,35 @@
 		super.tearDown();
 	}
 	
-	public void testQueryAliases() throws Exception {
-		
-		startTime = System.currentTimeMillis();
-		if (sbsAliasBaseQuery == null){
-			sbsAliasBaseQuery = SBSv2QueryUtils.queryFilteredConfigsForSDK(null);
-		}
-		
-		if (printTimingStats)
-			System.out.println("Time for testQueryProductsFromSDKs(): " + getTimingStats());
-		
-		HashMap<String, ISBSv2ConfigData> baseConfigs = sbsAliasBaseQuery.getBaseSBSConfigurations();
-		
-		for (String aliasKey : baseConfigs.keySet()){
-			ISBSv2ConfigData config = baseConfigs.get(aliasKey);
-			boolean isBaseConfig = config.getSupportingSDK() == null ? true : false;
-			assertTrue("Configuration should be true : " + config.toString(), isBaseConfig);
-		}
-		assertEquals(18, baseConfigs.size());
-		
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "armv5_udeb"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "armv5_urel"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "winscw_udeb"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "winscw_urel"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "armv5_urel_gcce4_4_1"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "armv5_udeb_gcce4_4_1"));
-		
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "arm.v5.udeb.rvct2_2"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "arm.v5.urel.rvct2_2"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "winscw_base.winscw_debug"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "winscw_base.winscw_release"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "arm.v5.urel.gcce4_4_1"));
-		assertNotNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "arm.v5.udeb.gcce4_4_1"));
-		
-		assertNull(sbsAliasBaseQuery.getSBSConfigByAlias(null, "armv5_udeb.foobar"));
-		assertNull(sbsAliasBaseQuery.getSBSConfigByMeaning(null, "arm.v5.udeb.foo.bar"));
-		
-		// Get the Raptor configs that are defined in an SDK
-		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK(SDK_ID1, false);
-		assertNotNull("Missing SDK on your system: " + SDK_ID1, sdk);
-		List<ISBSv2ConfigData> sdkSpecificConfigs = sbsAliasBaseQuery.getSDKSpecificConfigData(sdk);
-		assertEquals(10, sdkSpecificConfigs.size());
-		
-		// Get the union of the base Raptor configs and the SDK
-		List<ISBSv2ConfigData> allSDKConfigUnion = sbsAliasBaseQuery.getConfigsForSDK(sdk);
-		assertEquals(28, allSDKConfigUnion.size());
-	}
 	
 	/**
 	 * Query data for a single configuration
 	 * @throws Exception
 	 */
-	public void testQuerySingleConfig() throws Exception {
+	public void testQueryBuildConfigsFromSDK() throws Exception {
 		
-		assertNotNull(sbsAliasBaseQuery);
-
-		startTime = System.currentTimeMillis();
+		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK(SDK_ID1, true);
+		assertNotNull(sdk);
 		
-		ISBSv2ConfigData config = sbsAliasBaseQuery.getSBSConfigByAlias(null,  "armv5_udeb");
-		assertNotNull(config);
-		assertEquals("/epoc32/release/armv5/udeb", config.getReleaseDirectory());
-		assertEquals("armv5", config.getTraditionalPlatform());
-		assertEquals("udeb", config.getTraditionalTarget());
+		ISDKBuildInfo sbsv2BuildInfo = sdk.getBuildInfo(ISymbianBuilderID.SBSV2_BUILDER);
+		assertNotNull(sbsv2BuildInfo);
+		
+		List<ISymbianBuildContext> buildContexts = sbsv2BuildInfo.getFilteredBuildConfigurations();
+		assertEquals(6, buildContexts.size());
 		
-		config = sbsAliasBaseQuery.getSBSConfigByAlias(null, "armv5_udeb_gcce");
-		assertNull(config); // This config should only be defined by SDK suppliers
-		
-		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK(SDK_ID1, false);
-		assertNotNull("Missing SDK on your system: " + SDK_ID1, sdk);
-		config = sbsAliasBaseQuery.getSBSConfigByAlias(sdk, "armv5_udeb_gcce");
-		assertNotNull(config); // This config should only be defined by SDK suppliers
-		
-		// TODO: This should fail if 'SBS_GCCE432BIN is not set
-		// So we should have one test that will fail with known error message
-		// and another that will pass when an env var is set correctly.
-		// e.g. test two different versions of GCCE aliases.
-//		assertEquals("/epoc32/release/armv5/udeb", config.getReleaseDirectory(null));
-//		assertEquals("armv5", config.getTraditionalPlatform(null));
-//		assertEquals("udeb", config.getTraditionalTarget(null));
+		for (ISymbianBuildContext context : buildContexts){
+			assertTrue(context instanceof ISBSv2BuildContext);
+			ISBSv2BuildContext sbsv2Context = (ISBSv2BuildContext)context;
+			
+			assertTrue(sbsv2Context.getVariantHRHDefines().size() > 0);
+			if (sbsv2Context.getConfigurationErrorMessage() == null || sbsv2Context.getConfigurationErrorMessage().length() == 0){
+				assertTrue((new File(sbsv2Context.getmetaDataVariantHRH())).exists());
+			} else {
+				System.out.println("Config " + sbsv2Context.getSBSv2Alias() + " had error, cannot fully test: " + sbsv2Context.getConfigurationErrorMessage());
+			}
+		}
 	}
-	
-
-	/**
-	 * TODO: The SBS API FOR THIS QUERY IS UNDER CONSTRUCTION.....
-	 * TODO; This test should be run on individual %EPOCROOT% values
-	 * @throws Exception
-	 */
-	public void testQueryMultipleConfigs() throws Exception {
 		
-		assertNotNull(sbsAliasBaseQuery);
-		
-		startTime = System.currentTimeMillis();
-		
-		
-		List<String> aliasOrMeaningArray = new ArrayList<String>();
-		aliasOrMeaningArray.add("armv5_udeb");
-		aliasOrMeaningArray.add("arm.9e.udeb.rvct2_2");
-		HashMap<String, String> releaseMap = SBSv2QueryUtils.queryConfigTargetInfo(null, aliasOrMeaningArray);
-		
-		assertEquals(2, releaseMap.size());
-		
-		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK(SDK_ID1, false);
-		assertNotNull("Missing SDK on your system: " + SDK_ID1, sdk);
-		releaseMap = SBSv2QueryUtils.queryConfigTargetInfo(sdk, aliasOrMeaningArray);
-		assertEquals(2, releaseMap.size());
-//		String queryResult = getSBSQueryOutput(argList, null);
-//		assertTrue("No output found from " + SBSv2QueryUtils.QUERY_CONFIG_COMMAND, queryResult.length() > 0);
-//		
-//		HashMap<String, String> outputMap = parseQueryConfigResults(queryResult);
-//		assertTrue("No configs were found in query for : " + SBSv2QueryUtils.QUERY_CONFIG_COMMAND, outputMap.size() > 0);
-//		
-		if (printTimingStats)
-			System.out.println("Time for testQueryProductsFromSDKs(): " + getTimingStats());
-//		
-	}
-	
 	/**
 	 * This test should be run on individual %EPOCROOT% values
 	 * Products are defined in the SDK
@@ -178,46 +93,10 @@
 	public void testQueryProductsFromSDKs() throws Exception {
 		ISymbianSDK sdk = SDKCorePlugin.getSDKManager().getSDK(SDK_ID1, false);
 		assertNotNull("Missing SDK on your system: " + SDK_ID1, sdk);
-		List<String> products = sbsAliasBaseQuery.getProductsForSDK(sdk);
-		assertEquals(19, products.size());
+		List<String> productList = SBSv2QueryUtils.getProductVariantsForSDK(sdk);
+		assertTrue(productList.size() > 0);
 	}
 	
-	public void testStressQueryTest() throws Exception {
-
-		long stressTestStartTime = System.currentTimeMillis();
-		
-		testQueryAliases();
-		
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		testQueryMultipleConfigs();
-		
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		testQueryProductsFromSDKs();
-		
-		startTime = stressTestStartTime;
-		
-		if (printTimingStats)
-			System.out.println("Time for testStressQueryTest(): " + getTimingStats());
-	}
-	
-	
 	public String getTimingStats(){
 		if (startTime != 0){
 			long millisec = (System.currentTimeMillis() - startTime);
--- a/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties	Tue Jun 22 14:07:42 2010 -0500
+++ b/builder/com.nokia.carbide.cdt.builder/src/com/nokia/carbide/cdt/internal/api/builder/ui/messages.properties	Tue Jun 22 14:54:23 2010 -0500
@@ -4,7 +4,7 @@
 ManageConfigurationsDialog.Unavailable_Config_Label_ToolTip=Show the SDKs and build configurations that are unavailable to the current project
 ManageConfigurationsDialog.Unavailable_SDks_and_Configs=\n Unavailable SDKs and Configurations:\n\n
 ManageConfigurationsDialog.Select_config_help_text=\n   Checkmark a configuration to add it to the current project, or uncheck a configuration to remove it from the build configuration.
-ManageConfigurationsDialog.Select_Filtering_Prefs_Link=\n   See <a>Platform Filtering Preferences</a> to configure displayed build configurations.
+ManageConfigurationsDialog.Select_Filtering_Prefs_Link=\n   See <a>Build Configuration Filtering Preferences</a> to configure displayed build configurations.
 
 MMPSelectionUI.BuildOrderColumnLabel=Build order
 MMPSelectionUI.FileNameColumnLabel=File name
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java	Tue Jun 22 14:07:42 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java	Tue Jun 22 14:54:23 2010 -0500
@@ -106,11 +106,16 @@
 		IEclipsePreferences prefs = new InstanceScope().getNode(SDKCorePlugin.PLUGIN_ID);
 		if (prefs != null) {
 			String configs = prefs.get(SBSV2_FILTERED_CONFIGS_STORE_V2, "");
+			if (configs.length() == 0){
+				initDefaultConfigsToFilter();
+				configs = prefs.get(SBSV2_FILTERED_CONFIGS_STORE_V2, "");
+			}
 			String aliasesToInclude[] = configs.split(SBSV2_FILTERED_CONFIGS_DELIMETER);
 			for (String alias : aliasesToInclude){
 				buildAliasList.add(alias);
 			}
 		}
+		
 		return buildAliasList;
 	}
 
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2ConfigData.java	Tue Jun 22 14:07:42 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* Test the BldInfViewPathHelper class.
-*
-*/
-package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
-
-import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
-
-/** 
- * Data that describes the meaning of a single build configuration, as discovered by SBS
- *  
- *  @noimplement
- */
-public interface ISBSv2ConfigData {
-
-	/**
-	 * Get the usable SBS build alias that can be used for the -c parameter
-	 * @return the unique build alias
-	 */
-	String getBuildAlias();
-	
-	/**
-	 * Get the meaning (aka dotted name, component name) fo the build alias. 
-	 * Can also be used as a -c argument in SBS
-	 * @return the meaning
-	 */
-	String getMeaning();
-	
-	/**
-	 * Get the directory for a given SDK where binaries are output
-	 * @param sdk - use null if for base configuration
-	 * @return the portable OS string starting from /epoc32/
-	 */
-	String getReleaseDirectory();
-	
-	/** 
-	 * TODO: This API is not yet defined.
-	 * @param sdk
-	 * @return
-	 */
-	ISBSv2ConfigPreprocessorInfo getCPPPreprocessorData();
-	
-	/**
-	 * Get the name of the folder where executable binaries are written (typically 'debug' or 'release')
-	 * @param sdk - use null for base configuration
-	 * @return string of folder name
-	 */
-	String getTraditionalTarget();
-	
-	/**
-	 * Get the name of the folder where executable binaries are written (component before the target)
-	 * @param sdk - use null for base configuration
-	 * @return string of folder name
-	 */
-	String getTraditionalPlatform();
-	
-	/**
-	 * Get the SDK for which this configuration was qeuried.
-	 * @return the SDK, or null if it's a base sbs configuration
-	 */
-	ISymbianSDK getSupportingSDK();
-	
-}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2ConfigPreprocessorInfo.java	Tue Jun 22 14:07:42 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* Test the BldInfViewPathHelper class.
-*
-*/
-package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-
-/**
- * TODO: This API is not yet developed
- * 
- * @noimplement
- */
-public interface ISBSv2ConfigPreprocessorInfo {
-
-	List<String> getMacroList();
-	
-	List<IPath>	getSystemIncludes();
-	
-	IPath getVariantConfig();
-	
-	String getCompiler();
-	
-	IPath getCompilerPrefix();
-	
-	ISBSv2ConfigData getSBSv2QueryConfigData();
-	
-}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/ISBSv2QueryData.java	Tue Jun 22 14:07:42 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* Test the BldInfViewPathHelper class.
-*
-*/
-package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
-
-import java.util.HashMap;
-import java.util.List;
-
-import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
-
-/**
- * Interface that wraps all queries to the Symbian Build System (SBSv2/Raptor)
- * 
- * @noimplement
- */
-public interface ISBSv2QueryData {
-	
-	/**
-	 * For given SDK, add an SBS build configuration
-	 * @param sdk - use null if base SBS data
-	 * @param configData - The configuration to add
-	 */
-	void addConfigurationData(ISymbianSDK sdk, ISBSv2ConfigData configData);
-	
-	/**
-	 * Get all usable SBS configurations for a given SDK, which is the union of
-	 * the SBS base configurations and SDK specific configurations.
-	 * @param sdk - should not be null
-	 * @return -The list of all usable SBS build configurations
-	 * @see {@link ISBSv2QueryData#getSDKSpecificConfigData(ISymbianSDK)}
-	 * @see {@link ISBSv2QueryData#getBaseSBSConfigurations()}
-	 */
-	List<ISBSv2ConfigData> getConfigsForSDK(ISymbianSDK sdk);
-	
-	/**
-	 * Get the SBS configurations that are defined only by the SDK.
-	 * This does not include configurations that have altered meanings,
-	 * rather they provide a new unique build alias that is not defined in the base SBS installation.
-	 * @param sdk - never null
-	 * @return The unique SBS configurations to a given SDK. An empty list of none.
-	 */
-	List<ISBSv2ConfigData> getSDKSpecificConfigData(ISymbianSDK sdk);
-	
-	/**
-	 * Get the map of build alias to sbs configuration data that Raptor defines
-	 * without input from any SDK
-	 * @return a HashMap of SBS build alias to configuration data
-	 */
-	HashMap<String, ISBSv2ConfigData> getBaseSBSConfigurations();
-	
-	/**
-	 * Get the product variant list for a given SDK
-	 * @param sdk - The SDK, should not be null
-	 * @return The list of product variants
-	 */
-	List<String> getProductsForSDK(ISymbianSDK sdk);
-	
-	/**
-	 * Sets the product variant list by the SDK. Products are typically defined
-	 * under /epoc32/sbs_config/variant_configurations.xml
-	 * @param sdk - The SDK, must not be null
-	 * @param products - The list of build variants that can be applied to any build alias or meaning
-	 */
-	void addProductListForSDK(ISymbianSDK sdk, List<String> products);
-
-	/**
-	 * Find SBS configuration data for a single build configuration.
-	 * @param sdk - The SDK that contains the build configuration. Null for a base configuration
-	 * @param string - The build alias (e.g. armv5_udeb)
-	 * @return SBS configuration data, or null if not found
-	 */
-	ISBSv2ConfigData getSBSConfigByAlias(ISymbianSDK sdk, String alias);
-
-	/**
-	 * Find SBS configuration data for a single build configuration.
-	 * @param sdk - The SDK that contains the build configuration. Null for a base configuration
-	 * @param string - The build meaning or dotted name (e.g. arm.v5.udeb.rvct2_2)
-	 * @return SBS configuration data, or null if not found
-	 */
-	ISBSv2ConfigData getSBSConfigByMeaning(ISymbianSDK sdk, String meaning);
-}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2ConfigData.java	Tue Jun 22 14:07:42 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* Test the BldInfViewPathHelper class.
-*
-*/
-package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
-
-public class SBSv2ConfigData implements ISBSv2ConfigData {
-
-	/** The supporting SDK. May be null if it's a base configuration */
-	ISymbianSDK sdk;
-	
-	/**
-	 * A unique build alias. There can only be one alias definition, but an SDK can change the meaning of the alias 
-	 */
-	String buildAlias;
-	/*
-	 * The dotted name for the alias. One build alias can have multiple meanings, each defined in an SDK
-	 */
-	String meaning;
-	
-	String target = null;
-	String platform = null;
-	String releaseDirectory = null;
-	
-	public SBSv2ConfigData(String buildAlias, String meaning, ISymbianSDK sdk){
-		this.buildAlias = buildAlias;
-		this.meaning = meaning;
-		if (sdk != null){
-			this.sdk = sdk;
-		} 
-	}
-
-	public String getBuildAlias() {
-		return buildAlias;
-	}
-
-	public String getMeaning() {
-		return meaning;
-	}
-
-
-	public String getReleaseDirectory() {
-		
-		return releaseDirectory;
-	}
-
-	public ISBSv2ConfigPreprocessorInfo getCPPPreprocessorData() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getTraditionalTarget() {
-		
-		
-		return target;
-	}
-
-	public String getTraditionalPlatform() {
-		
-		return platform;
-	}
-
-	public String toString(){
-		return "Alias = " + buildAlias + " : Meaning = " + meaning;
-	}
-
-	public ISymbianSDK getSupportingSDK() {
-		return sdk;
-	}
-	
-
-}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryData.java	Tue Jun 22 14:07:42 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-* Test the BldInfViewPathHelper class.
-*
-*/
-package com.nokia.carbide.cpp.internal.api.sdk.sbsv2;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import com.nokia.carbide.cpp.sdk.core.ISymbianSDK;
-
-public class SBSv2QueryData implements ISBSv2QueryData {
-
-	/** alias to ISBSv2ConfigData - These are the standard build configs defined by Raptor, and are treated as virtual by this API */
-	HashMap<String, ISBSv2ConfigData> baseSBSConfigs = new HashMap<String, ISBSv2ConfigData>();
-	/** SDK ==> ISBSv2ConfigData : Contains all the SBS configs particular to a single SDK */
-	HashMap<ISymbianSDK, List<ISBSv2ConfigData>> sbsSDKBuildConfigMap = new HashMap<ISymbianSDK, List<ISBSv2ConfigData>>();
-	HashMap<ISymbianSDK, List<String>> sdkProductVariantList = new HashMap<ISymbianSDK, List<String>>();
-	
-	public void addConfigurationData(ISymbianSDK sdk, ISBSv2ConfigData configData) {
-		
-		if (sdk == null){
-			baseSBSConfigs.put(configData.getBuildAlias(), configData);
-		}
-		
-		List<ISBSv2ConfigData> configDataForSDK = sbsSDKBuildConfigMap.get(sdk);
-		
-		if (configDataForSDK == null){
-			// This SDK does not exist, create the first entry
-			configDataForSDK = new ArrayList<ISBSv2ConfigData>();
-			configDataForSDK.add(configData);
-			sbsSDKBuildConfigMap.put(sdk, configDataForSDK);
-			return;
-		}
-		
-		configDataForSDK.add(configData);
-	}
-
-	public HashMap<String, ISBSv2ConfigData> getBaseSBSConfigurations() {
-		return baseSBSConfigs;
-	}
-	
-	public List<ISBSv2ConfigData> getSDKSpecificConfigData(ISymbianSDK sdk) {
-		List<ISBSv2ConfigData> sdkDefinedConfigs =  new ArrayList<ISBSv2ConfigData>();
-		
-		for (ISBSv2ConfigData oneConfig : sbsSDKBuildConfigMap.get(sdk)){
-			// check if the alias is already in the base list, if not add it
-			boolean addConfigForReturn = true;
-			for (String alias : baseSBSConfigs.keySet()){
-				ISBSv2ConfigData baseConfig = baseSBSConfigs.get(alias);
-				if (oneConfig.getBuildAlias().equals(baseConfig.getBuildAlias())){
-					addConfigForReturn = false;
-					break;
-				}
-			}
-			if (addConfigForReturn){
-				sdkDefinedConfigs.add(oneConfig);
-			}
-		}
-			
-		return sdkDefinedConfigs;
-	}
-	
-	public List<ISBSv2ConfigData> getConfigsForSDK(ISymbianSDK sdk) {
-		return sbsSDKBuildConfigMap.get(sdk);
-	}
-
-	public List<String> getProductsForSDK(ISymbianSDK sdk) {
-		return sdkProductVariantList.get(sdk);
-	}
-
-	public void addProductListForSDK(ISymbianSDK sdk, List<String> products) {
-		if (null == sdkProductVariantList.get(sdk) || 
-			sdkProductVariantList.size() == 0){
-			
-			sdkProductVariantList.put(sdk, products);
-		}
-	}
-
-	public ISBSv2ConfigData getSBSConfigByAlias(ISymbianSDK sdk, String alias) {
-		
-		if (sdk == null){
-			return baseSBSConfigs.get(alias);
-		} else {
-			List<ISBSv2ConfigData> configListForSDK =  sbsSDKBuildConfigMap.get(sdk);
-			
-			for (ISBSv2ConfigData config : configListForSDK){
-				if (config.getBuildAlias().equals(alias)){
-					return config;
-				}
-			}
-		}
-		
-		return null;
-	}
-
-	public ISBSv2ConfigData getSBSConfigByMeaning(ISymbianSDK sdk, String meaning) {
-		if (sdk == null){
-			for (String aliasKey : baseSBSConfigs.keySet()){
-				ISBSv2ConfigData config = baseSBSConfigs.get(aliasKey);
-				if (config.getMeaning().equals(meaning)){
-					return config;
-				}
-			}
-		} else {
-			List<ISBSv2ConfigData> configListForSDK =  sbsSDKBuildConfigMap.get(sdk);
-			
-			for (ISBSv2ConfigData config : configListForSDK){
-				if (config.getMeaning().equals(meaning)){
-					return config;
-				}
-			}
-		}
-		
-		return null;
-	}
-
-}
--- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryUtils.java	Tue Jun 22 14:07:42 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/sbsv2/SBSv2QueryUtils.java	Tue Jun 22 14:54:23 2010 -0500
@@ -309,44 +309,6 @@
 		return productList;
 	}
 
-	public static ISBSv2QueryData queryFilteredConfigsForSDK(ISymbianSDK sdk) throws SBSv2MinimumVersionException {
-		
-		checkForMinimumRaptorVersion();
-		
-		List<String> argListConfigQuery = new ArrayList<String>();
-		argListConfigQuery.add(QUERY_COMMAND);
-		SBSv2QueryData sbsQueryData = new SBSv2QueryData();
-		
-		IPath epocRoot = new Path(sdk.getEPOCROOT());
-		if ((sdk.getOSVersion().getMajor() <= 9 && sdk.getOSVersion()
-				.getMinor() < 5) || !epocRoot.toFile().exists()) {
-
-			return null; // skip it, the sdk is not supported or broken
-		}
-
-		Properties envVars = EnvironmentReader.getEnvVars();
-		envVars.setProperty("EPOCROOT", sdk.getEPOCROOT());
-
-		String queryResult = getSBSQueryOutput(argListConfigQuery,
-				createEnvStringList(envVars));
-
-		HashMap<String, String> sbsAliasMap = parseQueryAliasResult(queryResult);
-
-		List<String> aliasFilterList = SBSv2Utils.getSBSv2FilteredConfigPreferences();
-		for (String aliasKey : sbsAliasMap.keySet()) {
-			
-			if (!aliasFilterList.contains(aliasKey))
-				continue;
-			
-			String meaning = sbsAliasMap.get(aliasKey);
-			SBSv2ConfigData oneSBSConfig = new SBSv2ConfigData(aliasKey,
-					meaning, sdk);
-			sbsQueryData.addConfigurationData(sdk, oneSBSConfig);
-		}
-
-		return sbsQueryData;
-	}
-
 	private static boolean checkForMinimumRaptorVersion() throws SBSv2MinimumVersionException{
 		Version sbsVers = SDKCorePlugin.getSDKManager().getSBSv2Version(false);
 		if (sbsVers.compareTo(SDKCorePlugin.getSDKManager().getMinimumSupportedSBSv2Version()) >= 0)
--- a/core/com.nokia.carbide.cpp.sdk.ui/plugin.properties	Tue Jun 22 14:07:42 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.ui/plugin.properties	Tue Jun 22 14:54:23 2010 -0500
@@ -1,7 +1,7 @@
 // Copyright 2007 Nokia, Inc.
 
 SDKUIPlugin.SDK_Preferences=Symbian SDKs
-SDKUIPlugin.Platform_Filtering_Preferences=Build Configuration Manager
+SDKUIPlugin.Platform_Filtering_Preferences=Build Configuration Filtering
 
 #Keywords for Carbide preferences
 carbcPreference.common=carbide symbian c cpp cplusplus
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/SBSv2PlatformFilterComposite.java	Tue Jun 22 14:07:42 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/api/sdk/ui/SBSv2PlatformFilterComposite.java	Tue Jun 22 14:54:23 2010 -0500
@@ -27,6 +27,7 @@
 import org.eclipse.jface.viewers.CheckboxTableViewer;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.ListViewer;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
@@ -35,7 +36,6 @@
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.TableItem;
 
@@ -59,11 +59,11 @@
 	private static List<String> productVariantList = new ArrayList<String>();
 	
 	private CheckboxTableViewer buildAliasTableViewer;
-	private CheckboxTableViewer customVariantTableViewer;
+	private ListViewer customVariantListViewer;
 	private Button refreshButton;
 	private Button addVariantButton;
+	private Button removeVariantButton;
 
-	
 	SBSv2PlatformFilterComposite(Composite parent) {
 		super(parent, SWT.NONE);
 	}
@@ -90,14 +90,15 @@
 		buildAliasTableViewer.setContentProvider(new ArrayContentProvider());
 		buildAliasTableViewer.setLabelProvider(new LabelProvider());
 		
-		customVariantTableViewer = CheckboxTableViewer.newCheckList(this, SWT.BORDER);
-		customVariantTableViewer.getTable().setLayoutData(gd);
-		customVariantTableViewer.setContentProvider(new ArrayContentProvider());
-		customVariantTableViewer.setLabelProvider(new LabelProvider());
+		customVariantListViewer = new ListViewer(this);
+		customVariantListViewer.getList().setLayoutData(gd);
+		customVariantListViewer.setContentProvider(new ArrayContentProvider());
+		customVariantListViewer.setLabelProvider(new LabelProvider());
 		
 		refreshButton = new Button(this, SWT.NONE);		
 		refreshButton.setText(Messages.getString("SBSv2PlatformFilterComposite.RefreshButtonText")); //$NON-NLS-1$
 		refreshButton.setToolTipText(Messages.getString("SBSv2PlatformFilterComposite.RefreshButtonToolTip")); //$NON-NLS-1$
+		
 		refreshButton.addSelectionListener(new SelectionListener() {
 			
 			public void widgetDefaultSelected(SelectionEvent e) {
@@ -110,11 +111,20 @@
 			
 		});
 		
-		addVariantButton = new Button(this, SWT.NONE);		
+		Composite variantButtonsComposite = new Composite(this, SWT.NONE);
+		gridLayout = new GridLayout();
+		gridLayout.makeColumnsEqualWidth = true;
+		gridLayout.numColumns = 2;
+		variantButtonsComposite.setLayout(gridLayout);
+		GridData gridData = new GridData(SWT.LEFT, SWT.TOP, true, false);
+		variantButtonsComposite.setLayoutData(gridData);
+		
+		addVariantButton = new Button(variantButtonsComposite, SWT.NONE);		
 		addVariantButton.setText(Messages.getString("SBSv2PlatformFilterComposite.AddProductButtonText")); //$NON-NLS-1$
 		addVariantButton.setToolTipText(Messages.getString("SBSv2PlatformFilterComposite.AddProductButtonToolTip")); //$NON-NLS-1$
+		addVariantButton.setLayoutData(gridData);
 		addVariantButton.addSelectionListener(new SelectionListener() {
-			
+		
 			public void widgetDefaultSelected(SelectionEvent e) {widgetSelected(e);}
 			public void widgetSelected(SelectionEvent e) {
 				if (aliasMap.size() == 0){
@@ -138,16 +148,37 @@
 					}
 					AddSBSv2ProductVariant addVariantDlg = new AddSBSv2ProductVariant(getShell(), selectedAlias, aliasMap, productVariantList);
 					if (addVariantDlg.open() == TrayDialog.OK){
-						if (customVariantTableViewer.testFindItem(addVariantDlg.getUserCreatedVariant()) == null){
+						if (customVariantListViewer.testFindItem(addVariantDlg.getUserCreatedVariant()) == null){
 							// doesn't exist, add it. if it does exist just ignore it
-							customVariantTableViewer.add(addVariantDlg.getUserCreatedVariant());
-							customVariantTableViewer.setChecked(addVariantDlg.getUserCreatedVariant(), true);
+							customVariantListViewer.add(addVariantDlg.getUserCreatedVariant());
 						}
 					}
 				}
 			}
 			
 		});
+		
+		removeVariantButton = new Button(variantButtonsComposite, SWT.NONE);		
+		removeVariantButton.setText(Messages.getString("SBSv2PlatformFilterComposite.RemoveProductButtonText")); //$NON-NLS-1$
+		removeVariantButton.setToolTipText(Messages.getString("SBSv2PlatformFilterComposite.RemoveProductButtonToolTip")); //$NON-NLS-1$
+		removeVariantButton.setLayoutData(gridData);
+		removeVariantButton.addSelectionListener(new SelectionListener() {
+			
+			public void widgetDefaultSelected(SelectionEvent e) {widgetSelected(e);}
+			public void widgetSelected(SelectionEvent e) {
+				ISelection selectedVariant = customVariantListViewer.getSelection();
+				if (selectedVariant != null){
+					StructuredSelection selection = (StructuredSelection)selectedVariant;
+					String stringSelection = (String)selection.getFirstElement();
+					List<String> data = (List<String>)customVariantListViewer.getInput();
+					data.remove(stringSelection);
+					customVariantListViewer.setInput(data);
+					customVariantListViewer.refresh(true);
+				}
+			}
+			
+		});
+		
 		initTable(false);
 	}
 
@@ -160,10 +191,8 @@
 			}
 		}
 		
-		for (TableItem item : customVariantTableViewer.getTable().getItems()) {
-			if (customVariantTableViewer.getChecked(item.getData())) {
-				checkedConfigs.add(item.getText());
-			}
+		for (String variant : customVariantListViewer.getList().getItems()) {
+				checkedConfigs.add(variant);
 		}
 		
 		SBSv2Utils.setSBSv2FilteredConfigs(checkedConfigs.toArray(new String[checkedConfigs.size()]));
@@ -212,12 +241,10 @@
 		
 		Collections.sort(sbsAliases);
 		buildAliasTableViewer.setInput(sbsAliases);
-		customVariantTableViewer.setInput(savedVariants);
+		customVariantListViewer.setInput(savedVariants);
 		
-		// check all configs
+		// uncheck all configs to init
 		buildAliasTableViewer.setAllChecked(false);
-		customVariantTableViewer.setAllChecked(true);
-		
 		
 		for (String config : checkedConfigsFromStore) {
 			for (TableItem item : buildAliasTableViewer.getTable().getItems()) {
@@ -227,15 +254,6 @@
 				}
 			}
 		}
-		
-		for (String config : checkedConfigsFromStore) {
-			for (TableItem item : customVariantTableViewer.getTable().getItems()) {
-				if (item.getText().equals(config) && item.getText().contains(".")) {
-					customVariantTableViewer.setChecked(item.getData(), true);
-					break;
-				}
-			}
-		}
 	}
 	
 	public void setDefaults(){
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties	Tue Jun 22 14:07:42 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/internal/sdk/ui/messages.properties	Tue Jun 22 14:54:23 2010 -0500
@@ -71,21 +71,23 @@
 BuildTargetsPage.NoBuildConfigsSelectedError=Please select at least one build configuration.
 BuildTargetsPage.DifferentDrivesError=There are known build problems when the bld.inf file and SDK are on different drives ({0})
 BuildTargetsPage.NoDriveSpecWarning=You have chosen an SDK EPOCROOT without a drive specification. Building will work but other features such as the indexer and MMP editor may not fully function.
-BuildTargetsPage.Select_Filtering_Prefs_Link=See <a>Platform Filtering Preferences</a> to configure displayed build configurations.
+BuildTargetsPage.Select_Filtering_Prefs_Link=See <a>Build Configuration Filtering Preferences</a> to configure displayed build configurations.
 
 BuildPlatformFilterPage.SBSv1TabText=SBSv1
 BuildPlatformFilterPage.SBSv1TabToolTip=Symbian OS Build System version 1 builder platform filtering
 BuildPlatformFilterPage.SBSv2TabText=SBSv2
 BuildPlatformFilterPage.SBSv2TabToolTip=Symbian OS Build System version 2 builder platform filtering
 
-SBSv2PlatformFilterComposite.PlatformsGroupText=SBSv2 Configurations Filter
-SBSv2PlatformFilterComposite.PlatformsGroupToolTip=Uncheck the SBSv2 build configurations to hide from the list of available configurations when creating a project.
-SBSv2PlatformFilterComposite.RefreshButtonText=Scan SBS for Configurations
+SBSv2PlatformFilterComposite.PlatformsGroupText=Default Configurations
+SBSv2PlatformFilterComposite.PlatformsGroupToolTip=Checked build build configurations (aliases) will be displayed for SDKs they apply to.
+SBSv2PlatformFilterComposite.RefreshButtonText=Rescan Default Configurations
 SBSv2PlatformFilterComposite.RefreshButtonToolTip=Queries your sbs and sdk installation for allowable build configurations.
 
-SBSv2PlatformFilterComposite.ProductsGroupText=Custom Product Configurations
+SBSv2PlatformFilterComposite.ProductsGroupText=Product Variant Configurations
 SBSv2PlatformFilterComposite.ProductsGroupToolTip=Checked configurations will be displayed under the SDK where they are valid. Unchecked configurations will be removed from this preference page.
-SBSv2PlatformFilterComposite.AddProductButtonText=Add Product Variant
-SBSv2PlatformFilterComposite.AddProductButtonToolTip=Create a new build alias with a product variant you can use as a build configuration.
+SBSv2PlatformFilterComposite.AddProductButtonText=Add Variant
+SBSv2PlatformFilterComposite.AddProductButtonToolTip=Create a new build alias with a product variant you can use as a build configuration. Only applies to SDKs that support variants.
+SBSv2PlatformFilterComposite.RemoveProductButtonText=Remove Variant
+SBSv2PlatformFilterComposite.RemoveProductButtonToolTip=Removes a selected product variant.