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.

Bug 28454 - build target can have different conten in different configurations
Summary: build target can have different conten in different configurations
Status: RESOLVED FIXED
Alias: None
Product: projects
Classification: Unclassified
Component: Generic Infrastructure (show other bugs)
Version: 3.x
Hardware: All All
: P1 blocker (vote)
Assignee: David Konecny
URL:
Keywords: API
Depends on: 28116
Blocks:
  Show dependency tree
 
Reported: 2002-11-04 16:34 UTC by David Konecny
Modified: 2003-12-11 14:14 UTC (History)
0 users

See Also:
Issue Type: TASK
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Konecny 2002-11-04 16:34:55 UTC
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.
Comment 1 David Konecny 2002-11-05 16:23:36 UTC
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?
Comment 2 Vitezslav Stejskal 2002-11-06 09:25:01 UTC
marking as an API change and changing to TASK
Comment 3 David Konecny 2002-11-12 13:11:31 UTC
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)
Comment 4 David Konecny 2002-11-12 13:12:01 UTC
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!