OpenBlueSky
OpenBlueSky is a set of components for the NetBeans Platform.
Different modules in OpenBlueSky are available at different stability stages, as described in the table below. Please be aware that at the moment 'stable' doesn't mean that the API won't be changed. If you are willing to use OpenBlueSky in your application, please subscribe to the appropriate mailing list and let us hear from you. As people starts to use any artifact, the process for finalizing its API will be speeded up.
OpenBlueSky is part of the effort for making easier to reuse components for NetBeans Platform applications. This is a time-expensive task, and many things can fail. If you are interested in OpenBlueSky and yet you find that you can't use it, please let us know why.
OpenBlueSky is not competitive with PlatformX - another project for enhancing the NetBeans Platform, as it provides different and complementary features (in any case, nothing prevents specific components with the broader reusability from finding their way to PlatformX).
Please refer to the module's JavaDoc (where available) for further information.
All OpenBlueSky components require Java 6 and NetBeans Platform 6.8 or later.
| Component | ArtifactId (*) | Status (**) | Description |
|---|---|---|---|
| Action Enhancements | i-t-n-actions | draft | Contains some facilities for working with context-sensitive actions. Some similar classes are part of an experimental NetBeans API, so part of this code could be dropped. |
| Capabilities Provider | i-t-n-capabilitiesprovider | stable | Provides a few classes for the Injectable Lookup Factory idiom. |
| Drag and Drop | i-t-n-draganddrop | draft | Provides a few classes for implementing pluggable and extensible drag and drop. |
| Docking | i-t-n-docking | no API | Provides a couple of actions for docking side components on either side. |
| Explorer Enhancements | i-t-n-explorer | draft | Provides many facilities classes for rendering Nodes, including roles for the Pluggable Top Component idiom. |
| FileSystem Sync | i-t-n-filesystem-sync | incomplete | Provides a facility for keeping two filesystems in sync. |
| Hierarchy | i-t-hierarchy | draft | Provides a facility for creating hierarchical views of object (Hierarchy API). |
| Hierarchy: Simple | i-t-hierarchy-spi-simple | draft | Provides a simple reference implementation for the Hierarchy API. |
| Hierarchy Node | i-t-hierarchy-node | draft | Provides Node capabilities for the Hierarchy API. |
| Hierarchy Explorer | i-t-hierarchy-explorer | draft | Provides a universal visual explorer for the Hierarchy API. |
| JPA for the NetBeans Platform | i-t-n-jpa | stable | Provides a patched JPA 1.0 implementation which allows to provide multiple persistence.xml files (typically one per NetBeans Platform module) - they are logically merged together. |
| License Panel | i-t-n-licensepanel | stable | Provides a simple license acceptance panel that pops up at the application startup. |
| Logger Configuration | i-t-n-loggerconfiguration | draft | Provides a facility for configuring the debugging and production logger configuration. |
| Nodes Enhancements | i-t-n-nodes | stable | Provides some commonly used utilities for Nodes, as well as roles for the Pluggable Top Component idiom. |
| Persistence | i-t-n-persistence | draft | tbd |
| Persistence Provider | i-t-n-persistence-impl | draft | tbd |
| Persistence SPI | i-t-n-persistence-spi | draft | tbd |
| Persistence Maintenance | i-t-n-persistence-maintenance | draft | tbd |
| Roles | i-t-n-role | stable | Provides some basic roles and utilities for the Pluggable Top Component idiom. |
| Swing Enhancements | i-t-n-swing | draft | Provides a number of Swing components. |
| Test Utilities | i-t-n-util-test | draft | Provides a few miscellaneous utilities for testing, such as MockLookup, an utility for comparing files and so on. |
| Utilities | i-t-n-util | draft | Provides some generic utilities, including support for the as(...) idiom and a generic Finder. |
| Visual Library Enhancements | i-t-n-visual | draft | Provides some enhancements for the Visual Library, such as the LayeredSceneView and NodeScene. |
| Windows Enhancements | i-t-n-windows | stable | Provides the EnhancedTopComponent (the basic class for the Pluggable Top Component idiom) and an enhanced WindowManager with more operations. |
| Workspace Manager | i-t-n-workspacemanager | draft | Provides the abstraction for the concept of workspace, a working directory for a desktop application. |
| Workspace Manager Provider | i-t-n-workspacemanager-impl | draft | Provides a default implementation for Workspace Manager. |
(*) i-t stands for it-tidalwave; i-t-n stands for it-tidalwave-netbeans.
(**) Status can be:
- stable: it means that the API backward compatibility will be guaranteed in future release (unless different agreement announced on the mailing lists). Backward compatibility is enforced with Clirr.
- draft: it means that the API is not stable yet and there could be minor backward-incompatible changes in future releases.
- experimental: it means that the API is not guaranteed to stay here in future.
The status is also given for each class in the JavaDocs.
Using OpenBlueSky components
OpenBlueSky artifacts are available in a Maven repository. To use them in your NetBeans Platform Maven application, just add this configuration fragment in the master POM:
<repositories>
<repository>
<id>releases-oss.sonatype.org</id>
<name>Sonatype Release Repository</name>
<url>http://oss.sonatype.org/content/repositories/releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots-oss.sonatype.org</id>
<name>Sonatype Snapshots Repository</name>
<url>http://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
...
</repositories>
We suggest you use the dependency management section to declare the required version of the artifacts to import:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>it.tidalwave.netbeans</groupId>
<artifactId>openbluesky</artifactId>
<version>0.4.13</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
and then you declare the single dependencies you need:
<dependencies>
<dependency>
<groupId>it-tidalwave-netbeans</groupId>
<artifactId>it-tidalwave-netbeans-util</artifactId>
</dependency>
<dependency>
<groupId>it-tidalwave-netbeans</groupId>
<artifactId>it-tidalwave-netbeans-visual</artifactId>
</dependency>
...
</dependencies>
In this way you are sure that all the imported artifacts have got coherent versions; furthermore your POM is much shorter than declaring a dependency management item for each imported artifact.
A screencast that demonstrates, among other things, the use of a few OpenBlueSky components in a Maven-based NetBeans Platform project is available at DZone.com
It is possible to use the OpenBlueSky artifacts also in an Ant-based application. Just download the required .nbm files and manually create a custom platform to base your application on (TBD: provide instructions).
Artifacts are also available as simple JAR files for use within a JSE application.
Documentation
JavaDocs for version 0.4.12 are available here.






