Fork me on GitHub

Release Notes

7.7.1 - “Palladium” Release 2014-03-31

This version provides some enhancements

  • Manage dynamic resources #48
    Resource Management has been improved by retaining all resources by their toString ResourceParams object.
    Moreover same parameters are now only retained once.
    New Resource Item usage will be available with 8.0.0 version using Java 8 features.

  • Add Annotation for common phase of components #51
    It’s now possible to add method by using one of these annotations: @BefeoreInit, @AfterInit, @OnRelease.
    You can use @MethodPriority to define a custom call order or @SkipAnnotation to avoid usage of them for performance consideration.

  • Component injection #96
    You can use @Component on any Component field to automatically inject another component, this injection is performed during component initialization phase.

  • Simplify FXML usage - #98
    DefaultFXMLModel will now load by default the fxml file that has the same name of the model class name (and at the same location).

  • Improve Simple Model - #103
    Simple now supports auto instantiation of the root node according to generic type used, it also supports @RootNodeId annotation for SimpleModel.

  • @OnXXX are broken into 7.7.0 #99
    A regression had been introduced into 7.7.0 due to package refactoring, Event handler annotations are not operational into 7.7.0 but fixed into 7.7.1

  • Rename execute Command method #105
    This API change is a cosmetic one because “execute” has a sad connotation and is now replaced by “perform”.

API Changes

  • AbstractSimpleModel.prepareNode() => AbstractSimpleModel.initSimpleView()

  • Command.execute(Wave) => Command.perform(Wave)

7.7.0 - “Wanna Rock” Release 2014-02-09

The first version of the 7.x.x branch that only supports Java 7

  • Allow Service to call a command to handle its result - #94
    It’s now possible to define a command that will be called asynchronously when the service task has terminated.
    You can use one of the following method:
    • void registerCallback(final WaveType callType, final WaveType responseType, final Class<? extends Command> returnCommandClass)
    • void registerCallback(final WaveChecker waveChecker, final WaveType callType, final WaveType responseType, final Class<? extends Command> returnCommandClass)
  • Customize Thread used when handling a Wave - #92
    It’s now possible to use @runInto annoation to define the thread to use when handling a wave. ie: @OnWave(“mySuperWave”) @RunInto(RunType.JTP, RunnablePriority.Highest) public void handleIt(Object myFirstParam, Wave wave){
  • Allow the possibility to specify a WaveChecker for the registerCallback method - #91
    Add some method to allow usage of WaveChecker also for registerCallback methods (already done for listen methods)
  • Bad usage of immutable list bug - #90
    Collections.emptyList() was misused into DefaultFXMLModel, thanks to Regis to have found this bug
  • Publish to Maven Central deployment - #89
    JRebirth artifacts is now pushed on Maven Central repository
  • Retrieve model from different KeyParts (but same content) - #88
    Each JRebirth Component can now use object that embed @KeyGenerator annotation to define how unique string key will be generated
  • ServiceTask state set to success even if the task actually fails - #87
    ServiceTask will set the wave status to failed if it fails itself
  • TaskTrackerService is broken - #86
    This is not a bug for Java 7u51
    A custom log was badly formatted, error message is also improved to facilitate trouble diagnosis
  • Check WaveContract when sending a Wave - #84
    When a wave is sent, its wave contract will be checked in developer mode
  • Improve All Object Model - #69
    All object model have been refactored and homogenized
  • Add @OnWave feature - #50
    It’s now possible to define wave handler method by using the @OnWave annotation

0.7.6 - “Testarossa Autodrive” Release - 2013-11-30

This version provides several threading enhancements.

  • Manage Thread Pool Size Parameter #82
    You can now define your ration by setting the threadPoolSizeRatio parameter, the rule is threadPoolSizeRatio x nb of available processor
  • WaveItem is now an abstract class #79
    It forces the addition of brackets to define a nested class, thanks to Christophe from dooApp.
  • Add a second Thread Pool #77
    The second Thread Pool is named HPTP (High Priority Thread Pool). It will run jobs that have an higher priority than those currently running into all JTP slots
  • Manage Runnable Priority #76
    All Command and ServiceTask are now supporting Priority by using @RunInto and @Priority annotations or dedicated constructor.
  • Improve JIT enhancement #45
    JRebirth Internal Thread has been improved to reduced waiting and sleeping time in order to be more reactive and support Task Priority.
  • Add JRebirth Preloader #29
    A module has been added to show a JRebirth preloader splash when launching application with Java WebStart It’s also possible to call the preloader programmatically by calling the preloadAndLaunch method.
  • Provide concise UI view #9
    This issue was fixed in a previous released by adding AbstractSimpleModel class.

0.7.5 - “Aerodynamite” Release - 2013-09-30

This version provides several priceless enhancements, you should consider migration.

  • Force callCommand to use right WaveBean class feature
    Now the callCommand require to use the right WaveBean type according to the command class used
  • Allow to catch orphan waves feature & Improve WaveBean usability duplicate
    Orphan waves will be caught by an handler that could be parameterized, the default one will throw a RuntimeException only if DeveloperMode is activated
  • Manage default services feature
    The service component has now a fully operational service task used to follow progression with binding.
    A bug was also fixed that was leading to a pause into the JIT waiting the result of the service. Now services are fully parallelized (running into JTP) and don’t block the JIT.
    Thanks to Antoine for having disclosed this problem (related to dead code).
  • Add resource parameter support
    All resources can be parameterized into JRebirth properties files.
  • Provide Undo/Redo support
    An Undo/Redo module has been added to demonstrate that Command layer is versatile and can manage complex workflow.
    A Showcase has been also added and deployed on the website: Undo/Redo Showcase.
    Thanks to Bastien for bug fix.
  • Allow Wave filtering according to a filter Data
    When a component listen a generic wave, it will receive all waves even those related to other components.
    Now it’s possible add a filter (defined as a callback) to receive only right waves.
    A sample is available into the StackModel component (of components module).
  • Allow customization of component instantiation
    It’s now possible to define its own factory class in order to build JRebirth top-level components (Command, Service, Model).
    For example you can plug a injector (like Guice) into your factory to build a outstanding pluggable software.
  • Bad Wave Contract Check with several parameters
    When application is start with developerMode parameter to true, all wave handler method are checked at runtime, this feature is now fully operational
  • Boolean Property is not overridable bug fix
    The default value of some parameters couldn’t be updated by properties file, it’s fixed
  • Override programmatically a Parameter
    It’s now possible to override programmatically a parameter by calling the define method, parameters values will be set according to this order : default, properties file, define call.
  • Only service method that return nothing (void) will not send a return wave
    Service method that return null will send a return wave with the null value.
  • Provide i18 Support
    Now it’s possible to manage l10n properties files to translate your application
  • Provide Smart logging capabilities
    Internal log are now localized, and use log markers. Custom hook has been added to support line number for log back
  • Add getFXMLController method
    Add this method into AbstractFXMLModel class to allow getting the FXML controller
  • Introduce JRebirth Runnable Priority
    Priority can be set for Commands and Service Task and any runnable run into JIT and JTP

0.7.4 - Core Release - 2013-07-22

This version must be used instead of 0.7.3 because a lot of API changes and bug fixes is provided.
JRebirth’s Team is growing and we are now proud to have our own Forge plugin to build application faster (Thanks to Raj & Guru)

  • API changes, a lot of method have been rename to have a more concise name
    CustomXXX method have been replaced, and now in example you just need to implement initModel instead of customInitialize method.
  • Manage Image & StyleSheet as Resources feature
    It’s now possible to load these resources with JRebvith resource engine it’s also possible to use them as JRebirth properties.
  • Properties that define default folder for images and style sheets have been added
    By default images and style sheets will be loaded from these folder .
  • Parameterize Default CSS File feature
    Define a default CSS file to load if none have been defined.
  • Parameterize Application Name
    Application name shown into the title bar of the stage can be parameterized as a properties instead of overriding the Application method getApplicationTitle.
  • Provide Event Annotation for view’s root node feature
    We can now attach event handler on the view’s root node by using a View annotation.
  • Define id of the view’s root node with an annotation
    Add @RootNodeId annotation to define id of the view’s root node.
  • Manage default bindable object
    Each Model class manage a default object and provides specific method to bound all properties.
  • Improve internal commands
    Internal command such AttachCommand and DetachCommand have been improved to be more robust.
  • Fix a regression related to fonts preloading
    Font preloading had been broken and so fixed.
  • Fix deadlock generator
    While using runInto method, deadlocks can occured in some specific cases, everything goes right now :)
  • Improve overall concurrency
    Some parts have been refactored to improve race condition with AtomicBoolean.

0.7.3 - ‘Doc&Site’ version - 2013-04-03

  • JRebirth is now available on JCenter repository hosted by bintray.
  • JRebirth has now its own Logo (Special Thanks to XoXi).
  • JRebirth provides a real Zip archive with all important files (also available in tar.gz and tar.bz2)
  • JRebirth Web site is now entirely generated with Maven Doxia engine.
    All documentation is written with Doxia and could be updated on GitHub.
    Every one can send a pull request to add information or to correct mistakes.
    PDF Documentation is delayed or will be manually built.
  • JRebirth Catalog used to declare JRebirth archetype is now available online for each version.
    The latest one is available here : Latest catalog

0.7.2 - Fix version - 2013-02-22

  • JRebirth Maven Repository is up to date Artifactory server was sometimes offline due to a lot of file corruption, Jenkins had broken a lot of build due to severals Java (64bit) VM fatal errors.
  • Update archetype to 0.7.2 version The 0.7.2 archetype has been upgraded to fit with new command and application classes
  • Add OnAction annotation JRebirth provides a new feature that allow handling events with annotation, a sample is available here : Annotation Junit tests.
  • Add Touch and Gesture events All newest touch and gesture event handlers have been added (with annotation and standard way)
  • Manage @RunInto Thread management are now configurable with annotation, you can still use class inheritance
  • Impossible to retrieve a component from ready method Main facades had a bug in their own lifecycle, everything is ok now, (Special Thanks to Heiko who send his remarks on mailing list)
  • Manage Multiple Stage A feature has been added to manage Stage (open, close etc…) with a command and a service
  • Improve Wave Contract WaveType usage has been improved (most convenient ot use)
  • Provide FXMLModel FXML integration has been simplified, you can just use a FXMLModel with a fxml file, check a sample here : FXML Junit test.
  • Merge Event Tracking with new Logging way Internal logger has been discarded, and internal event tracker has been upgraded, it allows JRebirth Analyzer tool to replay all JRebirth events to analyze application behaviour
  • Add JRebirth properties management A new mecanism to load properties has been created, it allows to use custom parameters (JRebirth already use some customizable properties)
  • Refactor Resources Management Usage of resources has been improved (font, colors, parameters), check sample test classes to learn more : Junit Tests.
  • Improve site deployment JRebirth maven web site has been repaired, it provides Javadoc API, you should visit these urls : [] [] []