Planned build system API changes
Listing of planned build system API changes for next release.
Freeform module split
Currently the freeform project type is implemented as a single module,
though domain-specific metadata is split into three schemas: general,
Java-specific, and web-specific. It is desirable to introduce SPIs to
permit the domain-specific functionality to be factored into physically
distinct modules that could be independently maintained. It will also
permit full J2EE support to add its own hooks.
Issue:
49634 Modularity of freeform project type
Freeform project file format change
The format of freeform project file (project.xml) needs to be extend to
capture additional information about project. This information is for
example where are test sources, where is project's Javadoc generated,
etc. and it is needed to be able to provide correct implementation of some
project queries like UnitTestForSourceQueryImplementation,
JavadocForBinaryQueryImplementation, etc. The change would define new
schema http://www.netbeans.org/ns/freeform-project/2 which is extended
version of existing http://www.netbeans.org/ns/freeform-project/1
schema. All freeform projects would be affected, that is Java Project
with existing Ant script as well as Web project with existing Ant
script. Old projects would be automatically converted to new version
during the project open.
Issues:
47835 No UnitTestForSourceQueryImplementation in freeform projects
49677 No JavadocForBinaryQueryImplementation in freeform project
48079 Permit multiple context's in ide-actions/action with differently formatted properties
47498 Provide a way to directly specify source and Javadoc information for CP entries in a freeform project
Change of J2SE project file format and its list of properties
The format of J2SE project file (project.xml) and list of project
properties need to be extended in order to implement multiple source
roots in one compilation unit. Similarly as in Freeform project case
new schema will be published and old projects will be upgraded
during the project opening. This affects Java Application, Java Class
Library and Java Project with Existing Sources projects. Besides
multiple source roots there are other smaller issues which needs
addition of some project properties.
Issues:
46354 Support multiple source directories in the primary compilation unit of a j2seproject
49026 Permit user to specify ignore list for javac
50092 Foreign project cannot set dependency on freeform project artifact if build.xml not inside projdir
50039 Project's "Creating Javadoc" property page needs an option and a field for specifying the overview comment file.
Publish more Projects API
There is lot of code which was copy&pasted from J2SE project to
other project type implementations. We would like to factor out some of
the code and made it available as regular API.
Issues:
49647 Support SPI: show a project properties dialog with a list of panes
49648 Support SPI: read/write properties to project/private.properties
49653 Make proper API from ProjectClassPathExtender
48618 Export PackageListView methods as part of PackageView API
Miscellaneous small planned API changes
AntArtifact
Currently permit only one build artifact what limits Freeform projects
which can produce arbitrary number of build artifacts per one
compilation unit. AntArtrifact should also have optional properties for
customization of target execution.
Issues:
47788 AntArtifact should provide optional properties for target execution
50484 AntArtifact should permit multiple build artifacts
ReferenceHelper
Cannot create relative reference to non-project basedir. Needed for
creating relative links to files lying on external source roots.
Issue:
49550 Make ReferencesHelper.createForeignFileReference produce relative links based on properties
ActionProvider
Currently cannot fire changes in the set of recognized
actions. May require new extension
interface. Expected to be implemented by freeform and used as a client
by projectui.
Issue:
47160 Main project action enablement status not changed after changing action bindings in freeform project
Classpath
There are issues which cannot be resolved without extending Classpath
API. For example classpath is not refreshed when file is moved to
different compilation unit.
Issues:
46791 Classpath ignored if defined for source root created after root is first used
49371 Enormous monolithic source roots too slow to work on
Others
Add helper API to find Java package for the given Java file. Will be used for example from wizards.
Issue:
45108 New Project wizard, whenever asking for an existing Java package root, should try to verify package structure