Functional Specification

Template Version: 1.8
Modified: 1/10/05
Location: http://sac.eng/arc/Processes/Projects/ARC-FuncSpec.html


NetBeans 6.7 - Functional Specification (fast-track)

1 Project Description

Detailed planning documentation is available at http://wiki.netbeans.org/NetBeans67

2 Technical Description

The main entry point for the NetBeans exposed APIs is under: http://bits.netbeans.org/dev/javadoc/index.html, however that document does not list project private APIs.

Changes to exported interfaces:

Comprehensive list of changes in NetBeans APIs since NetBeans 6.5:

Interface Name

Proposed Stability Classification

Specified in What Document?

Changes since NetBeans 6.5

NetBeans APIs on Java level

Uncommited

API is specified in http://bits.netbeans.org/dev/javadoc/index.html

see comprehensive list of changes above, the changes are listed also online at http://bits.netbeans.org/dev/javadoc/apichanges.html and this page will be moved to permanent URL at FCS to http://bits.netbeans.org/6.7/javadoc/apichanges.html

File Layout

Uncommited

nb67-filelayout.txt

changes reflecting the Java modules and 3rd party libraries added and removed since 6.5

GUI

Uncommited

 

changes reflecting UI of the implemented features and bug fixes

IPS packages for OpenSolaris

Stable

 

produced the same way as 6.5 IPS packages, no change planned

Changes to imported interfaces:

Interface Name

Proposed Stability Classification

Specified in What Document?

Changes since NetBeans 6.5

Derby 10.2.2.0

External

 

Newly added for C/C++ area

H2 1.0.79

External

 

Newly added for C/C++ area

Apache Struts 1.3.8

External

 

Upgraded from 1.2.9

Mylyn Commons library 3.1.1

External

 

Newly added for Kenai integration

Mylyn Commons Network library 3.1.1

External

 

Newly added for Kenai integration

Mylyn Tasks Core library 3.1.1

External

 

Newly added for Kenai integration

Bugzilla Connector 3.1.1

External

 

Newly added for Kenai integration

Apache Maven 2.1-20080623-patched

External

 

Newly added for Maven Support

Maven Dependency Tree 1.2

External

 

Newly added for Maven Support

Sonatype Nexus Indexer 1.2.2

External

 

Newly added for Maven Support

SVNClientAdapter Library 1.6.0

External

 

Upgraded from 1.4.0

Java Native Access 3.0.9

External

 

Upgraded from 3.0.2

JSch 0.1.41

Commited

 

Upgraded from 0.1.39

Ini4J 0.4.1

External

 

Upgraded from 0.2.6

Smack API 3.1

External

 

Newly added for Kenai integration

SwingX 0.9.5

External

 

Newly added for Kenai integration

Apache Jakarta Commons Lang 2.3

External

 

Newly added for Kenai integration

Commons Codec 1.3

External

 

Newly added for Kenai integration

Commons HTTP Client 3.1

External

 

Newly added for Kenai integration

JMUnit 1.2.1

External

 

Upgraded from 1.1.0

JRuby 1.2.0

External

 

Upgraded from 1.1.4

JRuby Parser 0.1

External

 

Newly added for Ruby area

FireBug Service 1.2.1

External

 

Upgraded from 1.2.0

Javascript libraries (dojo-1.1.1, jquery-1.2.6, prototype-1.6.0.2, scriptaculous-js-1.8.1, yui-2.5.2)

External (dependency removed)

 

Removed from the product

Kenai WS API

Committed

 

Newly added for Kenai integration

NetBeans interoperates with several web and application servers, with database servers, versioning systems and other 3rd party software. List of the external products can be found at http://wiki.netbeans.org/NB67TestedPlatformAndRuntimes

CND in 6.5: The C/C++ remote development feature queries for a password for each remote connection. We use a Java implementation of SSH2 called JSch (see http://www.jcraft.com/jsch for details about JSch). No unencrypted passwords or data is sent over the link. However, passwords are stored in memory for the lifetime of the IDE session. In addition, users can choose to store the encrypted passwords in the userdir in a java.util.prefs.Preferences database. We notify the user that this password storing is not secure.

CND in 6.7: In case dtrace is used as a source of profiling data and process has not enough privileges to execute d-script we are asking for the root (superuser) password. We never store this password on disk nor in memory (it is safely erased after the usage). We pass this password IN PLAIN FORMAT to native executable's standard input stream. Before passing this password we check for CRC32 check sum of the binary (not to pass this password to a foreign code). Password is cleared right after usage in the native code as well. Potentially, it is possible to grub the super-user password, but privileges to trace the user's processes are required for this.

Kenai in 6.7: IDE asks the user for username and password to authenticate them on Kenai.com. The username/password is sent via HTTPS POST, i.e. encrypted. During the IDE session the password is stored in memory. In addition, the user can choose to store the encrypted password in the userdir in a java.util.prefs.Preferences database.

3 Release Information

FireFox browser extension is copied to the folder <profile_folder>/extensions/netbeans-firefox-extension@netbeans.org, where netbeans-firefox-extension@netbeans.org is the unique extension id for our extension and <profile_folder> is the default profile folder. The default profile folder is found on a user system based on the document http://kb.mozillazine.org/Profile_folder_-_Firefox

When a JavaScript Debugger session for FireFox is initiated by the user, FireBug 1.2.1 and the NetBeans FireFox extensions are installed if they are not present on the user system.

When a JavaScript Debugger session for Internet Explorer is initiated by the user, if Machine Debug Manager and Process Debug Manager components are not present on the user system, they will be prompted to install the Microsoft Script Debugger. Once those components are confirmed to be present, NetBeans Internet Explorer extension will be registered into Windows systems registry only if it is not done already.

4 Components Architecture


Appendix A: Standards Supported 

The following are the main standards supported by the tool:


References