1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

bug 319512: Missing type arguments on managedbuilder.core

This commit is contained in:
Andrew Gvozdev 2011-02-15 21:51:03 +00:00
parent 480ee167c8
commit 2d3c62541c

View file

@ -29,6 +29,7 @@ import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.ListIterator; import java.util.ListIterator;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.SortedMap; import java.util.SortedMap;
@ -2255,91 +2256,82 @@ public class ManagedBuildManager extends AbstractCExtension {
// be to an object loaded from a managed build system project file (.cdtbuild). // be to an object loaded from a managed build system project file (.cdtbuild).
// //
Iterator projectTypeIter = getExtensionProjectTypeMap().values().iterator(); Collection<IProjectType> prjTypes = getExtensionProjectTypeMap().values();
while (projectTypeIter.hasNext()) { for (IProjectType projectType : prjTypes) {
try { try {
ProjectType projectType = (ProjectType)projectTypeIter.next(); ((ProjectType) projectType).resolveReferences();
projectType.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator configurationIter = getExtensionConfigurationMap().values().iterator(); Collection<IConfiguration> configurations = getExtensionConfigurationMap().values();
while (configurationIter.hasNext()) { for (IConfiguration configuration : configurations) {
try { try {
Configuration configuration = (Configuration)configurationIter.next(); ((Configuration) configuration).resolveReferences();
configuration.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator resConfigIter = getExtensionResourceConfigurationMap().values().iterator(); Collection<IResourceConfiguration> resConfigs = getExtensionResourceConfigurationMap().values();
while (resConfigIter.hasNext()) { for (IResourceConfiguration resConfig : resConfigs) {
try { try {
ResourceConfiguration resConfig = (ResourceConfiguration)resConfigIter.next(); ((ResourceConfiguration) resConfig).resolveReferences();
resConfig.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator toolChainIter = getExtensionToolChainMap().values().iterator(); Collection<IToolChain> toolChains = getExtensionToolChainMap().values();
while (toolChainIter.hasNext()) { for (IToolChain toolChain : toolChains) {
try { try {
ToolChain toolChain = (ToolChain)toolChainIter.next(); ((ToolChain) toolChain).resolveReferences();
toolChain.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator toolIter = getExtensionToolMap().values().iterator(); Collection<ITool> tools = getExtensionToolMap().values();
while (toolIter.hasNext()) { for (ITool tool : tools) {
try { try {
Tool tool = (Tool)toolIter.next(); ((Tool) tool).resolveReferences();
tool.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator targetPlatformIter = getExtensionTargetPlatformMap().values().iterator(); Collection<ITargetPlatform> targetPlatforms = getExtensionTargetPlatformMap().values();
while (targetPlatformIter.hasNext()) { for (ITargetPlatform targetPlatform : targetPlatforms) {
try { try {
TargetPlatform targetPlatform = (TargetPlatform)targetPlatformIter.next(); ((TargetPlatform) targetPlatform).resolveReferences();
targetPlatform.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator builderIter = getExtensionBuilderMap().values().iterator(); Collection<IBuilder> builders = getExtensionBuilderMap().values();
while (builderIter.hasNext()) { for (IBuilder builder : builders) {
try { try {
Builder builder = (Builder)builderIter.next(); ((Builder) builder).resolveReferences();
builder.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator optionIter = getExtensionOptionMap().values().iterator(); Collection<IOption> options = getExtensionOptionMap().values();
while (optionIter.hasNext()) { for (IOption option : options) {
try { try {
Option option = (Option)optionIter.next(); ((Option) option).resolveReferences();
option.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Iterator optionCatIter = getExtensionOptionCategoryMap().values().iterator(); Collection<IOptionCategory> optionCategories = getExtensionOptionCategoryMap().values();
while (optionCatIter.hasNext()) { for (IOptionCategory optionCat : optionCategories) {
try { try {
OptionCategory optionCat = (OptionCategory)optionCatIter.next(); ((OptionCategory) optionCat).resolveReferences();
optionCat.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
@ -2381,32 +2373,29 @@ public class ManagedBuildManager extends AbstractCExtension {
loadConfigElementsV2(DefaultManagedConfigElement.convertArray(elements, extension), revision); loadConfigElementsV2(DefaultManagedConfigElement.convertArray(elements, extension), revision);
} }
// Resolve references // Resolve references
Iterator targetIter = getExtensionTargetMap().values().iterator(); Collection<ITarget> targets = getExtensionTargetMap().values();
while (targetIter.hasNext()) { for (ITarget target : targets) {
try { try {
Target target = (Target)targetIter.next(); ((Target) target).resolveReferences();
target.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
// The V2 model can also add top-level Tools - they need to be "resolved" // The V2 model can also add top-level Tools - they need to be "resolved"
Iterator toolIter = getExtensionToolMap().values().iterator(); Collection<ITool> tools = getExtensionToolMap().values();
while (toolIter.hasNext()) { for (ITool tool : tools) {
try { try {
Tool tool = (Tool)toolIter.next(); ((Tool) tool).resolveReferences();
tool.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
// Convert the targets to the new model // Convert the targets to the new model
targetIter = getExtensionTargetMap().values().iterator(); targets = getExtensionTargetMap().values();
while (targetIter.hasNext()) { for (ITarget target : targets) {
try { try {
Target target = (Target)targetIter.next();
// Check to see if it has already been converted - if not, do it // Check to see if it has already been converted - if not, do it
if (target.getCreatedProjectType() == null) { if (target.getCreatedProjectType() == null) {
target.convertToProjectType(revision); target.convertToProjectType(revision);
@ -2417,11 +2406,10 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
} }
// Resolve references for new ProjectTypes // Resolve references for new ProjectTypes
Iterator projTypeIter = getExtensionProjectTypeMap().values().iterator(); Collection<IProjectType> prjTypes = getExtensionProjectTypeMap().values();
while (projTypeIter.hasNext()) { for (IProjectType prjType : prjTypes) {
try { try {
ProjectType projType = (ProjectType)projTypeIter.next(); ((ProjectType) prjType).resolveReferences();
projType.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
@ -2450,9 +2438,7 @@ public class ManagedBuildManager extends AbstractCExtension {
// configs resolved... // configs resolved...
// Call the start up config extensions again now that configs have been resolved. // Call the start up config extensions again now that configs have been resolved.
if (buildDefStartupList != null) { if (buildDefStartupList != null) {
for (Iterator iter = buildDefStartupList.iterator(); iter.hasNext();) { for (IManagedBuildDefinitionsStartup customConfigLoader : buildDefStartupList) {
IManagedBuildDefinitionsStartup customConfigLoader = (IManagedBuildDefinitionsStartup)iter.next();
// Now we can perform any actions on the build configurations // Now we can perform any actions on the build configurations
// in an extended plugin now that all build configruations have been resolved // in an extended plugin now that all build configruations have been resolved
customConfigLoader.buildDefsResolved(); customConfigLoader.buildDefsResolved();
@ -2514,8 +2500,8 @@ public class ManagedBuildManager extends AbstractCExtension {
IResourceConfiguration rcCfgs[] = cfg.getResourceConfigurations(); IResourceConfiguration rcCfgs[] = cfg.getResourceConfigurations();
for (IResourceConfiguration rcCfg : rcCfgs) { // for (IResourceConfiguration rcCfg : rcCfgs) {
} // }
} }
@ -4036,7 +4022,7 @@ public class ManagedBuildManager extends AbstractCExtension {
return new Path(uri.getPath()); return new Path(uri.getPath());
} }
public static IBuilder[] createBuilders(IProject project, Map args){ public static IBuilder[] createBuilders(IProject project, Map<String, String> args){
return ManagedBuilderCorePlugin.createBuilders(project, args); return ManagedBuilderCorePlugin.createBuilders(project, args);
} }
@ -4374,18 +4360,18 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
public static IToolChain[] findIdenticalToolChains(IToolChain tc){ public static IToolChain[] findIdenticalToolChains(IToolChain tc){
List list = findIdenticalElements((ToolChain)tc, fToolChainSorter); List<ToolChain> list = findIdenticalElements((ToolChain)tc, fToolChainSorter);
return (ToolChain[])list.toArray(new ToolChain[list.size()]); return list.toArray(new ToolChain[list.size()]);
} }
public static ITool[] findIdenticalTools(ITool tool){ public static ITool[] findIdenticalTools(ITool tool){
List list = findIdenticalElements((Tool)tool, fToolSorter); List<Tool> list = findIdenticalElements((Tool)tool, fToolSorter);
return (Tool[])list.toArray(new Tool[list.size()]); return list.toArray(new Tool[list.size()]);
} }
public static IBuilder[] findIdenticalBuilders(IBuilder b){ public static IBuilder[] findIdenticalBuilders(IBuilder b){
List list = findIdenticalElements((Builder)b, fBuilderSorter); List<Builder> list = findIdenticalElements((Builder)b, fBuilderSorter);
return (Builder[])list.toArray(new Builder[list.size()]); return list.toArray(new Builder[list.size()]);
} }
public static IToolChain[] getExtensionsToolChains(String propertyType, String propertyValue){ public static IToolChain[] getExtensionsToolChains(String propertyType, String propertyValue){
@ -4507,14 +4493,14 @@ public class ManagedBuildManager extends AbstractCExtension {
ICConfigurationDescription cfgDes = getDescriptionForConfiguration(config); ICConfigurationDescription cfgDes = getDescriptionForConfiguration(config);
if(cfgDes != null){ if(cfgDes != null){
ICConfigurationDescription[] descs= CoreModelUtil.getReferencedConfigurationDescriptions(cfgDes, false); ICConfigurationDescription[] descs= CoreModelUtil.getReferencedConfigurationDescriptions(cfgDes, false);
List result = new ArrayList(); List<IConfiguration> result = new ArrayList<IConfiguration>();
for (ICConfigurationDescription desc : descs) { for (ICConfigurationDescription desc : descs) {
IConfiguration cfg = getConfigurationForDescription(desc); IConfiguration cfg = getConfigurationForDescription(desc);
if(cfg != null) { if(cfg != null) {
result.add(cfg); result.add(cfg);
} }
} }
return (IConfiguration[]) result.toArray(new IConfiguration[result.size()]); return result.toArray(new IConfiguration[result.size()]);
} }
return new Configuration[0]; return new Configuration[0];
@ -4570,16 +4556,15 @@ public class ManagedBuildManager extends AbstractCExtension {
public static void buildConfigurations(IConfiguration[] configs, IBuilder builder, IProgressMonitor monitor, public static void buildConfigurations(IConfiguration[] configs, IBuilder builder, IProgressMonitor monitor,
boolean allBuilders, int buildKind) throws CoreException{ boolean allBuilders, int buildKind) throws CoreException{
Map map = sortConfigs(configs); Map<IProject, IConfiguration[]> map = sortConfigs(configs);
for(Iterator iter = map.entrySet().iterator(); iter.hasNext();){ for (Entry<IProject, IConfiguration[]> entry : map.entrySet()) {
Map.Entry entry = (Map.Entry)iter.next(); IProject proj = entry.getKey();
IProject proj = (IProject)entry.getKey(); IConfiguration[] cfgs = entry.getValue();
IConfiguration[] cfgs = (IConfiguration[])entry.getValue();
buildConfigurations(proj, cfgs, builder, monitor, allBuilders, buildKind); buildConfigurations(proj, cfgs, builder, monitor, allBuilders, buildKind);
} }
} }
private static Map sortConfigs(IConfiguration cfgs[]){ private static Map<IProject, IConfiguration[]> sortConfigs(IConfiguration cfgs[]){
Map cfgMap = new HashMap(); Map cfgMap = new HashMap();
for (IConfiguration cfg : cfgs) { for (IConfiguration cfg : cfgs) {
@ -4659,7 +4644,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
} else { } else {
// configuration IDs are passed in args to CDT builder // configuration IDs are passed in args to CDT builder
Map args = builder!=null ? BuilderFactory.createBuildArgs(configs, builder) Map<String, String> args = builder!=null ? BuilderFactory.createBuildArgs(configs, builder)
: BuilderFactory.createBuildArgs(configs); : BuilderFactory.createBuildArgs(configs);
buildProject(project, args, allBuilders, buildKind, monitor); buildProject(project, args, allBuilders, buildKind, monitor);
} }
@ -4667,7 +4652,7 @@ public class ManagedBuildManager extends AbstractCExtension {
monitor.done(); monitor.done();
} }
private void buildProject(IProject project, Map args, boolean allBuilders, int buildKind, IProgressMonitor monitor) private void buildProject(IProject project, Map<String, String> args, boolean allBuilders, int buildKind, IProgressMonitor monitor)
throws CoreException { throws CoreException {
if (allBuilders) { if (allBuilders) {
@ -4677,9 +4662,9 @@ public class ManagedBuildManager extends AbstractCExtension {
break; break;
String builderName = command.getBuilderName(); String builderName = command.getBuilderName();
Map newArgs = null; Map<String, String> newArgs = null;
if (buildKind!=IncrementalProjectBuilder.CLEAN_BUILD) { if (buildKind!=IncrementalProjectBuilder.CLEAN_BUILD) {
newArgs = new HashMap(args); newArgs = new HashMap<String, String>(args);
if (!builderName.equals(CommonBuilder.BUILDER_ID)) { if (!builderName.equals(CommonBuilder.BUILDER_ID)) {
newArgs.putAll(command.getArguments()); newArgs.putAll(command.getArguments());
} }
@ -4705,13 +4690,13 @@ public class ManagedBuildManager extends AbstractCExtension {
public static ITool getExtensionTool(ITool tool){ public static ITool getExtensionTool(ITool tool){
ITool extTool = tool; ITool extTool = tool;
for(;extTool != null && !extTool.isExtensionElement(); extTool = extTool.getSuperClass()); for(;extTool != null && !extTool.isExtensionElement(); extTool = extTool.getSuperClass()) {}
return extTool; return extTool;
} }
public static IInputType getExtensionInputType(IInputType inType){ public static IInputType getExtensionInputType(IInputType inType){
IInputType extIT = inType; IInputType extIT = inType;
for(;extIT != null && !extIT.isExtensionElement(); extIT = extIT.getSuperClass()); for(;extIT != null && !extIT.isExtensionElement(); extIT = extIT.getSuperClass()) {}
return extIT; return extIT;
} }