This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
During project build the build target can ask supplying build target for its content. Because the build target's output folder can be different in each configuration, the content can be different as well. This fact is ignored by the current ContentDescriptor design.
We discussed this with Vita today and we decided to continue with "spreading" configurations throught the building API where necessary. What I propose to do is to define special ContentDescriptor for build targets which would be defined in compilation.api package and look like: public abstract class BuildTargetDescriptor extends ContentDescriptor { public BuildTargetDependency getDependency(Configuration cfg); public BuildTargetOutputFolder getOutputFolder(Configuration cfg); public abstract FileSet getContent(Configuration cfg) throws java.io.IOException; } (the BuildTargetOutputFolder class is described in my email to dev@projects) Apart from getContent() method has all other methods some default implementation which should be in most of the cases sufficient (storing/reading some settings from/to configuration settings context). Opinions?
marking as an API change and changing to TASK
Implemented in files: RCS file: /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/BuildConfiguration.java,v done Checking in projects/compilation/src/org/netbeans/api/compilation/BuildConfiguration.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/BuildConfiguration.java,v <-- BuildConfiguration.java new revision: 1.1.2.1; previous revision: 1.1 done Checking in projects/compilation/src/org/netbeans/api/compilation/BuildTargetDependency.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/BuildTargetDependency.java,v <-- BuildTargetDependency.java new revision: 1.1.2.4; previous revision: 1.1.2.3 done Checking in projects/compilation/src/org/netbeans/api/compilation/BuildTargetDescriptor.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/BuildTargetDescriptor.java,v <-- BuildTargetDescriptor.java new revision: 1.1.2.2; previous revision: 1.1.2.1 done RCS file: /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/BuildTargetOutputFolder.java,v done Checking in projects/compilation/src/org/netbeans/api/compilation/BuildTargetOutputFolder.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/BuildTargetOutputFolder.java,v <-- BuildTargetOutputFolder.java new revision: 1.1.2.1; previous revision: 1.1 done Checking in projects/compilation/src/org/netbeans/api/compilation/Bundle.properties; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/Bundle.properties,v <-- Bundle.properties new revision: 1.1.2.2; previous revision: 1.1.2.1 done Checking in projects/compilation/src/org/netbeans/api/compilation/Compilable.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/Compilable.java,v <-- Compilable.java new revision: 1.1.2.5; previous revision: 1.1.2.4 done Checking in projects/compilation/src/org/netbeans/api/compilation/Compiler.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/Compiler.java,v <-- Compiler.java new revision: 1.1.2.19; previous revision: 1.1.2.18 done Checking in projects/compilation/src/org/netbeans/api/compilation/CompilerEngine.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/CompilerEngine.java,v <-- CompilerEngine.java new revision: 1.1.2.12; previous revision: 1.1.2.11 done Checking in projects/compilation/src/org/netbeans/api/compilation/CompilerJob.java; /cvs/projects/compilation/src/org/netbeans/api/compilation/Attic/CompilerJob.java,v <-- CompilerJob.java new revision: 1.1.2.9; previous revision: 1.1.2.8 done cvs diff: BuildConfiguration.java is a new entry, no comparison available cvs diff: BuildTargetOutputFolder.java is a new entry, no comparison available Processing log script arguments... More commits to come... Checking in projects/compilation/src/org/netbeans/modules/compilation/AbstractCompileAction.java; /cvs/projects/compilation/src/org/netbeans/modules/compilation/Attic/AbstractCompileAction.java,v <-- AbstractCompileAction.java new revision: 1.1.2.5; previous revision: 1.1.2.4 done RCS file: /cvs/projects/compilation/src/org/netbeans/modules/compilation/Attic/DependencyContextSupport.java,v done Checking in projects/compilation/src/org/netbeans/modules/compilation/DependencyContextSupport.java; /cvs/projects/compilation/src/org/netbeans/modules/compilation/Attic/DependencyContextSupport.java,v <-- DependencyContextSupport.java new revision: 1.1.2.1; previous revision: 1.1 done RCS file: /cvs/projects/compilation/src/org/netbeans/modules/compilation/Attic/OutputFolderContextSupport.java,v done Checking in projects/compilation/src/org/netbeans/modules/compilation/OutputFolderContextSupport.java; /cvs/projects/compilation/src/org/netbeans/modules/compilation/Attic/OutputFolderContextSupport.java,v <-- OutputFolderContextSupport.java new revision: 1.1.2.1; previous revision: 1.1 done cvs diff: DependencyContextSupport.java is a new entry, no comparison available cvs diff: OutputFolderContextSupport.java is a new entry, no comparison available Processing log script arguments... More commits to come... Removing projects/compilation/src/org/netbeans/spi/compilation/DependencyContextSupport.java; /cvs/projects/compilation/src/org/netbeans/spi/compilation/Attic/DependencyContextSupport.java,v <-- DependencyContextSupport.java new revision: delete; previous revision: 1.1.2.4 done Processing log script arguments... More commits to come... Checking in projects/ide/src/org/netbeans/api/projects/ide/ResourceDescriptor.java; /cvs/projects/ide/src/org/netbeans/api/projects/ide/Attic/ResourceDescriptor.java,v <-- ResourceDescriptor.java new revision: 1.1.2.2; previous revision: 1.1.2.1 done Processing log script arguments... More commits to come... Checking in java/api/src/org/netbeans/api/java/project/CompilationUnit.java; /cvs/java/api/src/org/netbeans/api/java/project/Attic/CompilationUnit.java,v <-- CompilationUnit.java new revision: 1.1.2.6; previous revision: 1.1.2.5 done Checking in java/api/src/org/netbeans/api/java/project/JavaProject.java; /cvs/java/api/src/org/netbeans/api/java/project/Attic/JavaProject.java,v <-- JavaProject.java new revision: 1.1.2.5; previous revision: 1.1.2.4 done Processing log script arguments... More commits to come... Checking in java/src/org/netbeans/modules/java/classpath/ContainerPathContent.java; /cvs/java/src/org/netbeans/modules/java/classpath/Attic/ContainerPathContent.java,v <-- ContainerPathContent.java new revision: 1.1.4.8; previous revision: 1.1.4.7 done Checking in java/src/org/netbeans/modules/java/classpath/FolderItem.java; /cvs/java/src/org/netbeans/modules/java/classpath/Attic/FolderItem.java,v <-- FolderItem.java new revision: 1.1.4.12; previous revision: 1.1.4.11 done Checking in java/src/org/netbeans/modules/java/classpath/RootFolderWizard.java; /cvs/java/src/org/netbeans/modules/java/classpath/Attic/RootFolderWizard.java,v <-- RootFolderWizard.java new revision: 1.1.4.7; previous revision: 1.1.4.6 done Processing log script arguments... More commits to come... Checking in java/src/org/netbeans/modules/java/compiler/BasicOptions.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/BasicOptions.java,v <-- BasicOptions.java new revision: 1.1.2.6; previous revision: 1.1.2.5 done Checking in java/src/org/netbeans/modules/java/compiler/BuildOptions.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/BuildOptions.java,v <-- BuildOptions.java new revision: 1.1.2.7; previous revision: 1.1.2.6 done Checking in java/src/org/netbeans/modules/java/compiler/CompilableProvider.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/CompilableProvider.java,v <-- CompilableProvider.java new revision: 1.1.2.4; previous revision: 1.1.2.3 done Checking in java/src/org/netbeans/modules/java/compiler/CompilerSettingsLook.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/CompilerSettingsLook.java,v <-- CompilerSettingsLook.java new revision: 1.1.2.5; previous revision: 1.1.2.4 done Checking in java/src/org/netbeans/modules/java/compiler/DebugOptions.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/DebugOptions.java,v <-- DebugOptions.java new revision: 1.1.2.6; previous revision: 1.1.2.5 done Checking in java/src/org/netbeans/modules/java/compiler/JavaCompilerImpl.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/JavaCompilerImpl.java,v <-- JavaCompilerImpl.java new revision: 1.1.2.5; previous revision: 1.1.2.4 done Checking in java/src/org/netbeans/modules/java/compiler/JavaCompilerType.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/JavaCompilerType.java,v <-- JavaCompilerType.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Checking in java/src/org/netbeans/modules/java/compiler/ParametersFormat.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/ParametersFormat.java,v <-- ParametersFormat.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Checking in java/src/org/netbeans/modules/java/compiler/Utilities.java; /cvs/java/src/org/netbeans/modules/java/compiler/Attic/Utilities.java,v <-- Utilities.java new revision: 1.1.2.6; previous revision: 1.1.2.5 done Processing log script arguments... More commits to come... Checking in java/src/org/netbeans/modules/java/project/CompilerOutResource.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/CompilerOutResource.java,v <-- CompilerOutResource.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Checking in java/src/org/netbeans/modules/java/project/CompilerOutput.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/CompilerOutput.java,v <-- CompilerOutput.java new revision: 1.1.2.25; previous revision: 1.1.2.24 done Checking in java/src/org/netbeans/modules/java/project/CompilerOutputLook.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/CompilerOutputLook.java,v <-- CompilerOutputLook.java new revision: 1.1.2.13; previous revision: 1.1.2.12 done Checking in java/src/org/netbeans/modules/java/project/HackedJavaProjectImpl.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/HackedJavaProjectImpl.java,v <-- HackedJavaProjectImpl.java new revision: 1.1.2.5; previous revision: 1.1.2.4 done Checking in java/src/org/netbeans/modules/java/project/JavaBuildTarget.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/JavaBuildTarget.java,v <-- JavaBuildTarget.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Checking in java/src/org/netbeans/modules/java/project/JavaClasspathDescriptor.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/JavaClasspathDescriptor.java,v <-- JavaClasspathDescriptor.java new revision: 1.1.2.2; previous revision: 1.1.2.1 done Checking in java/src/org/netbeans/modules/java/project/JavaPrjWizardIterator.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/JavaPrjWizardIterator.java,v <-- JavaPrjWizardIterator.java new revision: 1.1.2.7; previous revision: 1.1.2.6 done Checking in java/src/org/netbeans/modules/java/project/JavaSourcesComponent.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/JavaSourcesComponent.java,v <-- JavaSourcesComponent.java new revision: 1.1.2.27; previous revision: 1.1.2.26 done Checking in java/src/org/netbeans/modules/java/project/OutputPath.java; /cvs/java/src/org/netbeans/modules/java/project/Attic/OutputPath.java,v <-- OutputPath.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Processing log script arguments... More commits to come... Checking in java/src/org/netbeans/modules/java/ui/looks/BuildOptionsLook.java; /cvs/java/src/org/netbeans/modules/java/ui/looks/Attic/BuildOptionsLook.java,v <-- BuildOptionsLook.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Checking in java/src/org/netbeans/modules/java/ui/looks/BuildPropertiesLook.java; /cvs/java/src/org/netbeans/modules/java/ui/looks/Attic/BuildPropertiesLook.java,v <-- BuildPropertiesLook.java new revision: 1.1.2.3; previous revision: 1.1.2.2 done Processing log script arguments... Mailing the commit message to cvs@java.netbeans.org, cvs@projects.netbeans.org (from dkonecny@netbeans.org)
UPGRADE GUIDE: projects/compilation module changes (these changes allows to start compilation of build target in non-active configuration): 1.) org.netbeans.api.compilation.BuildTargetDescriptor This class now describes build target. It unifies into one class several "cookies" which used to be separate: Compilable, BuildTargetDependency, ContentDescriptor and also newly defined one BuildTargetOutputFolder. BuildTargetDependency and BuildTargetOutputFolder has default implementation. Build target providers must implement at least Compilable.getCompiler(Configuration cfg) and BuildTargetDescriptor.getContent(Configuration cfg) method. 2.) org.netbeans.spi.compilation.DependencyContextSupport support was removed. 3.) org.netbeans.api.compilation.Compiler has now constructor which requires instance of Configuration. 4.) org.netbeans.api.compilation.Compilable also requires as parameter an instance of Configuration. 5.) there is new class org.netbeans.api.compilation.BuildTargetOutputFolder which describes output folder of the build target. Default implementation is provided (at the moment class was not properly tested - I will work on it after integration of this API changes) 6.) there is new class org.netbeans.api.compilation.BuildConfiguration which contains a few static methods for easier access to active build configuration java/api module was affected: 7.) org.netbeans.api.java.project.CompilationUnit: several methods now require Configuration to be passed. You are allowed to pass NULL value what means that active configuration will be used, but use the null very carefully! 8.) similar way as in previous point was affected also org.netbeans.api.java.project.JavaProject java module: 9.) bunch of public class was modified and now contain Configuration in parameters list. Again, NULL can be passed and active cfg is used. But use it wisely!