MoWare Plugin - Current Release, new and noteworty

  Sep 2016 - moware60 R6E
  • Objectflow supports an internal String.format() which is capable to print BigDecimal, LocalDate and DateTime as well.
    Number of arguments and all types are statically checked in the editor. Simply use two ' ' to get an instance in the mps editor.
    %s    - to insert a string
    %d   - to insert an integer
    %bd - for bigdecimal
    %ld  - for LocalDate (can also be applied to DateTime for formatting date only)
    %dt  - for DateTime
    %%  - escape string

    Do not forget to include the OFXStringFormatter in our runtime-configuration when applying the concept. 

  • New error Statement to be used instead of throw new RuntimeException("Some fatal error")
  • Whole new concept of OFXTestSuit which is included in this release but should not be applied yet - still under

  Aug 2016 - moware60 R6
  • manmap supports handling of null key for ValueObject references, if the references are set explicitly to null.

  • manmap does not rely on any conventions regarding Repo-Method naming. However, when "save with map" ist used,
    methods have to be marked as CHECKIN, if queries with checkout are used - CHECKOUT, if "delete is used" - "DELETE", and 
    if only readonly queries - then mark the method as READONLY.  

9 Jun 2016 - moware60 R5
  • moware independent of log4j, able to run on tomcat with or without log4j support. However, log4j is still the
    major logging library relied upon. (additional documentation can be found in

  • Moware plugin contains build environments for supported platforms in assembly directories.

  • Java FX8 TextArea fix to allow scrolling text even when disabled. 

  • H1Forms supports common browsers and adds hardware support for enterprise browsers. Motorola as well
    as Honeywell devices are fully supported, even if Honeywell still shows some issues.

  • Improved VaadinForms for testing and pre-rollout. Extended FormDelegates and a version switch to 
    vaadin 7.6. including a compatible 7.6 gwt-widetset.

  • Java Enum's could be used as runtime setting variables in batchjobs. The tomcat admin page allows for
    changing the enum s value per task instance. 

  • Model repository comes with advanced support für manual sql, providing reusable sql string fields and
    reusable row mappers.

  • Support for reload/resubmit activities with h1forms web-applications. 

20 Feb 2016 - moware60 R4
  • Important fix in manmap for reference dirty handling. A reference triggers a dirty on an entity,
    when a non null entity 
    is assigned to that reference, even if the entity's key is 0, null or "". 

  • A beforeSave() is introduced for entities. Right now, the entity checks if a reference is saved where
    the referred entity 
    is not already saved, that is, the referred entity does not come with a valid key.
    beforeSave() throws IllegalStateExceptions(). Further checks could be added! 

  • While MuPrint is still available, a new printing interface is provided. The new interface aims particularly at server environments
    (mde/vaadin), allowing to print for a specific user 
    session.getUserServices().getUserPrintService().renderView("TestDoc.pdf", "TestDoc.xml", conv XML(k), null);
    Obviously a session is needed. renderPrint(), renderView(), render(), print() and viel() are available after configuring
    the respective printservice correctly. print() does a so called silent print by putting the resulting pdf straight to the 
    print queue, view() opens a pdf reader viewing the pdf and render() just creates the pdf. All methods are returning
    the file with its full qualified path as string. 
    An example using a print factory for an fx8 fatclient is given below.

    new instance "org.modellwerkstatt.objectflow.ObjectFlowRT.OFXFatClientPrintFactory" printService <values> 
  •   constructor Argument "0" = "noTemplateClassLoaderHere"  // org.hafina.reko.RekoApp if loading XSLT from that classpath
      constructor Argument "1" =  "/Users/dan/BatchJobTest"   // backup path if XSLT not loadable via classpath 
      constructor Argument "2" = "/Users/dan"                 // output dir of pdf, "" => use temp dir
      constructor Argument "3" = "true"                       // fopland = true, xsltDesigner = false
      constructor Argument "4" = ""                           // font directory: "" = c:/Windows/Fonts
      constructor Argument "5" = "false"                      // auto detect mode, false recommended now

    If you are printing multiple files, do not forget to add an ID to the pdf-filename, e.g. Rechnung_4711.pdf.  Argument 1 acts as
    as fallback path in case the xslt could not be loaded via a full-qualified classname (argument 0). If outputdir is given as ""
    in argument 2 the operatingsystems's temporary dir is used as outputdir.
    [ Additionally use FoBc4jBarcode instead of MuPrint.Barcode! ]

    Even if using MuPrint - the FakePrintFactory has to be added to configurations (FatClients, Tomcats, Tests)
    => org.modellwerkstatt.objectflow.ObjectFlowRT.OFXFakePrintFactory 

  • The printing stack of fop 1.0 was updated to fop 2.1 including all related libs. Pdfbox 1.8 was added as standard jar to
    the moware plugin. (Pdfbox 2.0 can not be used, since fop 2.1 demands fontbox 1.8, which in turn is not compatible
    with pdfbox 2.0.  Unhappily, silentprint() of pdfbox 1.8 might result in wiered chars when printing. Moware switched
    to Desktop.print() instead.   
  • Applications can be locked to notify any users that a new version of the app is available. The users receive a message
    to exit the application and start it again, still able to save all data on all open commands. The application lock feature is 
    available via jmx in server environments and with this release also on richclient fx8 environments via zookeeper. To lock
    an application 
    with zookeeper, use ./ create /APPLICMOLOCK/ <<appname>>_<<version>> somdata 
    on your zookeeper server. The specific appname & version url can be found in the lock debugger (crtl-alt F7, Crtl-C to copy
    all text, inclusive url) in your application. As an example and for testing we just locked an app by using the following
    ./ -server create /APPLICMOLOCK/SimpleApplication_1_9_3 somdeadata

  • A new property "max init duration in seconds" was added to commands. This property is of particular
    interest in search, graph-owner, and sub-graph-owner commands when it comes to repository interaction. 
    If one of the init() methods in commands exceed the time limit given in seconds, a message in level error
    is logged containing command's name, user and time taken (typically, a mail appender will forward the
    problem to developers.) Thus, going forwards, database delays, database problems or app performance
    issues on servers can easily and automatically be monitored. However, the time limits do not apply to
    conclusions, they solely encompass 
    command init() and page init():
    - command init() + first page init()  <   max init duration
    - any following page init()   <  max init duration

    The property does not impair program behaviour. Even if commands exceed max duration in any way,
    operation is not interrupted or canceled. The <desc> is added to error messages, allowing developers 
    to add some cmd status information (like "article id" + currentArticleID) 

  • Internal handling of jmx reporting and jmx setups were changed massively, including app startup and app 
    shutdown. They do/should not come with any changes in app developer's API or application behaviour.

  • Various important and unimportant fixes int the h1forms implementation. Especially the error handling and exception reporting was double-checked.

  • One can do pushSelections() in run commands of tests, allowing to select particular ui objects and in turn receive those
    selections in command conclusions under test. 

  • Use log TRACE on MDE applications to log straight on the JMX server console. log on TRACE level can be used to
    check individual clients online. However, those logs should be removed on long term again.

  • ViewObjects can be referenced in ViewObjects to build more complex data structures. This was not
    possible up to R4. 

  • A session.setDirty() is available in commands. This allows explicitly marking a session as dirty programatically.  
    E.g. when creating a brand new entity, and we want the user to receive "really abort this command?" question. 

  • MapSELECT and MapUPDATE support a query debug mode.   

4 Jan 2016 - moware60 PRE3 D issued
The pre 3 is not a production release. Those working on productive environments should stick with the
moware 60 R2A release, which delivers some bugfixes for the R2. The PRE3 is the work in progress towards the 
vaadin and mde runtime unification. Furthermore, this pre release comes with new printing support and mde
input handling variations.   

28 Okt 2015 - moware60 R2 issued
moware60 is the first plugin for MPS323 running with java8_u60. The release 2 comes with additional 
features for improved hotkey and focus handling. 

1 Sep 2015 - mowareFx8 Loko Special Releases issued
due to vaadin adoption, changes in the forms library were necessary. At the same time
loko brought up some problems with entities and small adoptions in FX8 (hotkey handling).
As long as those features are not used, other apps do not have to switch.  

13 July 2015 - mowareFx8_rc20 available
previously released rc19 and rc20 - both minor fixes to mowareFx8, pertaining to 
printing features on linux and minor UI improvements. RC20 is the plugin to go, 
also running nicely on tomcat batchjobs.

28 Apr 2015 - mowareFx8_rc17 available
RC17 is a stable release used in multiple applications, including recent
releases of kmsw. All known problems are resolved with rc17, leading to 
some updates (rc17D) 

13 Apr 2015 - mowareFx8_rc16 available
The rc16 covers a blocker in batchjobs' session handling and some 
issues with editors resulting from the MPS 3.1 to 3.2 conversion. Table- and 
richtext plugin neatly integrated. 

9 Apr 2015 - mowareFx8_rc15 available
With rc15 we switched our stack to MPS 3.2, although there are still a couple of 
bugs which will be fixed with MPS 3.2.1. However, two major apps are up and 
running again.  

2 Apr 2015 - mowareFx8_rc13 available
Bugfixes pertinent to the Reko conversion to moware Fx8 - 
and some minor as preparations for the following MPS 3.2 move. 

24 Mar 2015 - mowareFx8_rc12 available
bugfixes for new emerging issues when ValueObject is null (SimpleConverter_TWO,
MoObjectIntrospector). Fx8MessageBox does allow for a "copy to clipboard"

5 Mar 2015 - mowareFx8_rc11 available
some bugs fixed in objectflow and fx8. splitpane in splitpane did cause
some confusion to dividers, new UserEnv did damage to ifvariant and recheck
statement. VirtualProperties for BigDecimal did not implement IOFXMetaRangeScale

26 Feb 2015 - mowareFx8_rc10 available
rc10 comes with adopted batchjob handling for tomact, allowing safe
shutdowns in all circumstances. h1forms and batchjobs share a
configuration model and the same build processes. furthermore, h1forms
supports hotkeys and adopted a new jquery mobile form handling.

23 Feb 2015 - mowareFx8_rc9 available
Small fixes pertaining to hotkey handling ESC or ENTER. Major fatflow
refactoring circumventing injected UserEnvironmentInformation.

19 Feb 2015 - mowareFx8_rc8 available
Fixes regarding tab-handling in FX8. Tab handling was changed in rc6 due to
changes in FCommandContainer. Still demands testing.

13 Feb 2015 - mowareFx8_rc7 available
Important update for BatchJobs on Tomcat. A particular exception was not caught,
what results in turn on a massive amount of mails sent on error. RC7 fixes this very
problem. No migration needed, if tomcat batchjob not in use.

20 Jan 2015 - mowareFx8_rc6 available
First FEATURE COMPLETE release of moware FX8 including Status Editing in Tables.
Small design fixes. Introducing the new batch job controls by cron notation
exclusively. Pause time is no longer taken into account.

13 Jan 2015 - mowareFx8_rc5 available
Some Fx8 Bugs like wrong filter/selection handling, Heading, Table Editing Comments,
Repo injection for app startup method, title add on after command init. Status in embedded
mapping for entity keys are available for demo-purpose.

7 Jan 2015 - mowareFx8_rc4 available
This Version covers some known bugs and introduces the new join-query with checkout
readonly distinction. Since table editing issues are not solved, this has to be considered
as temporal test version.

17 Dec 2014 - mowareFx8_rc3 available
Release candidate 3 covers all bugs found in december, e.g. problems when editing in table and
scrolling behaviour, issues with virtual properties etc.

10 Dec 2014 - mowareFx8_rc1 running on MPS3.1.3 with java8.0.25
Initial test release running on java8 with the moware Bond stack and the FX8

25. August 2014 - moware35_RC31A released
MoWare Release mit adaptierte BarCode Klasse für Reko. Umstieg nicht notwendig, da minor release.

7. August 2014 - moware35_RC31 released
Neuer MoWare Release zusammen mit dem MPS 3.1 und dem mps-tables Plugin.
(0) Alle Projekte committen,
(1) Zuerst MPS 3.1. installieren,
(2) dann mps-tables Plugin,
(3) anschließend moware35_RC31 Plugin.
(4) Projekt öffnen, refactoring wird automatisch ausgeführt.

1. August 2014 - moware35_RC30E released
Fehler von Christian bei Fopland Graphics behoben. Umstieg von D auf E nicht notwendig, da minor release.

9. July 2014 - moware35_RC30D released
Fehler beim Aufruf von cancel im ersten Page init(), welches beim Starten eines Kommandos aufgerufen wird.
Behoben und ausführlich getestet, da Initialisierung geändert werden musste. Umstieg auf dieses Release notwendig.