Project System

User-visible issues

  • Cross-platform support
  • Multi-file properties editing
  • Copy configuration should prompt for new name immediately
  • Project properties: "[...]" button should open Build Tools dialog
  • Toolchain & hosts -> to upper level
  • Project properties forgets selection
  • More standard libraries & Linker props usability
  • Custom run command for managed projects, including library projects
  • Multi-node project properties editing (e.g. C & C++)
  • Separate user & host
  • Support save in previous versions (as MS Office, OpenOffice)

Internal issues

  • Project System API
    • Customizable project properties
    • Logical folders: reuse NB approach
    • Actions: reuse NB approach
    • Pluggable pre-/post- actions
    • Project property change listeners
    • Monolithic configurations.xml
    • Memory consumption
    • Event model
  • Toolchain API
    • Pluggable discovery (DBX)
    • Validation (e.g. after GCC upgrade)
    • Accurate initialization (CompilerSet, Tool, ...)
    • Mixed toolchain issues (e.g. gdb with SunStudio compilers)
  • Configure script cross-platform support

General Thoughts

  • reuse NB Project API/SPI as much as possible
  • small Native Project API/SPI
  • Toolchain as separate concept

Use Cases

  • Common for Gizmo/Thread Analyzer
    • Options page in project properties
    • determine source root(s), executable, arguments, environment
  • Thread Analyzer
    • add/remove -xinstrument flag
    • reconfigure/rebuild


The plan is to change step by step current cnd.makeproject API to satisfy API clients usecases described above.

The following steps are proposed:

  • use tests to cover new implementations
  • Toolchain API as a standalone concept - DONE
  • Pluggable steps for make project commands - DONE (THA, Gizmo, MC)
  • NB-like pluggable Logical Folders (Gizmo, Unit Tests)
  • NB-like pluggable Project Properties Customizers (THA, Doxygen)
  • cnd.makeproject puts new API objects into project lookup; then cnd components migrate to new APIs found in project lookup (gizmo, debugger, tha)
  • implement user visible features
  • nice to have: cnd.project.impl - impl module of project system
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo