Sunday, December 9, 2012

Drombler FX: building modular JavaFX applications with OSGi and Maven

If you have ever learned to use a modular Rich Client Platform such as the NetBeans Platform (Swing based) or Eclipse RCP (SWT based) it's likely you wouldn't want to write rich clients in any other than in a modular way.

And so I'm happy to announce the availabilty of a first Early Access version of Drombler FX. Drombler FX is a modular Rich Client Platform for JavaFX based on:
  • OSGi: OSGi is the de facto standard for writing modular software in Java.
  • Maven (POM-first): Drombler FX applications can be build with Maven. The build follows the standard POM-first approach (the OSGi meta data will be generated for you). A custom Maven Plugin will help you to easily create JavaFX applications with Maven. A custom Maven Archetype will help you to get started.
  • Declarative programming model: Annotations can be used at many places to register elements such as menus, toolbars and GUI components.
The first use case supported by Drombler FX is building standard desktop applications: applications with a menu bar, possibly several toolbars and a content pane with tab panes in nested split panes.

There's a Getting Started page which explains how to create, build and run a Drombler FX sample application with a few simple steps.

In addition, this Early Access release of Drombler FX provides initial versions of the following frameworks:

You can use the Drombler Forum for questions and discussions.

If you find issues or have enhancement requests, you can file a ticket here: http://issues.drombler.org.

Note: As this is an Early Access release, all APIs might be subject to change.

Friday, November 30, 2012

News from the Software Smithy: Version 0.3 released

SoftSmithy news: I recently released a new version of the SoftSmithy Utility Library and the SoftSmithy Development Utility Library.

In addition to the API updates, a lot of migration work has been done:
  • Project migration: Bundle split: softsmithy-lib-awt project added
  • Project migration: Bundle split: softsmithy-lib-beans project added
  • Project migration: Bundle split: softsmithy-lib-swing project added
  • Project migration: Bundle split: softsmithy-lib-swing-customizer project added
  • Several Swing - Customizer classes were moved to different packages. All Swing - Customizer classes are now in the package or subpackages of org.softsmithy.lib.swing.customizer.*
    Note that for easier version management the version of the SoftSmithy Development Utility Library is aligned with the version of the SoftSmithy Utility Library. As the SoftSmithy Development Utility Library has a dependency on the SoftSmithy Utility Library it's recommended to use the same version of both libraries until the APIs are stable!

    I've added a new Positionable Framework and several small fixes and clean-ups.

    You can download the archives (including the jars, documentation, samples etc.) and read more about the changes here:
    SoftSmithy Utility Library v0.3 (online documenation)
    SoftSmithy Development Utility Library v0.3 (online documentation)

    I deployed the artifacts (including source and javadoc artifacts) to Maven Central. You can use the following dependencies:

    For the SoftSmithy Utility Library - Core:


    For the SoftSmithy Utility Library - AWT:


    For the SoftSmithy Utility Library - Beans:


    For the SoftSmithy Utility Library - Persistence:


    For the SoftSmithy Utility Library - Swing:


    For the SoftSmithy Utility Library - Swing - Customizer:


    and

    For the SoftSmithy Development Utility Library (usually with scope = test):

    Monday, July 30, 2012

    News from the Software Smithy: Version 0.2 released

    SoftSmithy news: I recently released a new version of the SoftSmithy Utility Library and the SoftSmithy Development Utility Library.

    In addition to the API updates, a lot of migration work has been done:
      • Project migration: Java SE 6 -> Java SE 7, so you need Java SE 7 to use the latest version.
      • Project migration: OSGi metadata added
      • Project migration: Maven 2.2.1 -> Maven 3.0.4
      • Project migration: artifactId prefix added: "softsmithy-". Since this is automatically also the prefix of the JAR files, it will now be easier to distinguish SoftSmithy JARs from other JARs.
      • Project migration: softsmithy-lib-persistence project added and moved the org.softsmithy.lib.persistence package from softsmithy-lib-core to softsmithy-lib-persistence. This has the effect that softsmithy-lib-core has only dependencies on the standard libraries while softsmithy-lib-persistence also has a dependency on javax.persistence version 2 or higher. In an OSGi environment the dependencies are enforced.
        Note that for easier version management the version of the SoftSmithy Development Utility Library are aligned with the version of the SoftSmithy Utility Library. As the SoftSmithy Development Utility Library has a dependency on the SoftSmithy Utility Library it's recommended to use the same version of both libraries until the APIs are stable!

        I added new utility methods, classes and framework updates for working with the new NIO File API introduced in Java SE 7, service providers, text parsers and formatters and more.

        In addition there are new samples and tutorial updates and fixes.

        You can download the archives (including the jars, documentation, samples etc.) and read more about the changes here:
        SoftSmithy Utility Library v0.2 (online documenation)
        SoftSmithy Development Utility Library v0.2 (online documentation)

        I deployed the artifacts (including source and javadoc artifacts) to Maven Central. You can use the following dependencies:

        For the SoftSmithy Utility Library:

        and
        For the SoftSmithy Development Utility Library (usually with scope = test):

        Wednesday, June 20, 2012

        News - OpenJFX: Better Skin support in OSGi-environments

        Great news from the OpenJFX project: my patch (with refinements from Oracle and other community members) to load custom Skins in an OSGi-environment has been pushed to the OpenJDK/ OpenJFX/2.2/master/rt repository and integrated into the JavaFX 2.2 Developer Preview .

        Here is the according JIRA issue: RT-14177

        OpenJFX is Oracle's effort to open source JavaFX, the next-generation GUI toolkit to create Rich Internet Applications (RIA) on top of the Java SE platform.
        OpenJFX is a part of the OpenJDK project (Oracle's effort to open source the Java SE platform).

        For me, working on this patch not only helped to unblock Skin-loading in OSGi-environments, but also showed that through the OpenJFX project Oracle is working on JavaFX together with the community.

        It's not very hard to get started with OpenJFX development, although the Getting Started page is slightly out-dated. You will have to replace '2.1' with '2.2' to get the current development branch. I encourage the community to help to improve JavaFX.