It is open source and was one of the first projects (November 2008) at SUN's open software platform K≡nai. February 2010 Oracle announced Kenai's shutdown. Hence Frame4J moved to AI2T (SVN repo. For just read/checkout guest/guest is sufficient).
Frame4J is a powerful infrastructure to build upon
- applications and tools,
- standalone and distributed as web-applications, Applets or Servlets,
- that are
- comfortable,
- (inter) nationalisable ,
- robust and reliable,
- and hence usable in critical infrastructures,
- and used so in 24h*7d process control applications.
- And it comes with a bundle of ready made tools for the developer's and admin's daily work.
Status / history
Since November 2008 Frame4J is an open source project, hosted then at SUN's K≡nai. 2010 it moved to AI2T due to Oracle's announcement to shut down Kenai.
Project owner is A. Weinert. Co-workers are welcome — take part.
For just read/checkout "guest/guest" is sufficient.
March 2009 saw the first successful port of a long run automation (process control) application from the predecessor to Frame4J. The predecessor's core is obsolete since then — aweinertbib is now (reduced to) the home of some very specialised libraries.
July 2009 we had a continually stabilising RC. Compared to the beta (and the predecessor) there are some substantial algorithmic improvements and all "de.frame4j.." packages are in English (instead of the German / English javaDoc and naming mix before).
It may be noted that the the work of translating a thorough javadoc etc. of some 240 files from German to English was totally underestimated. Experiments showed that all kind of automatic translation deplorably failed. On the other hand the translating (by hand) showed up to be one of the most efficient forms of code review digging out two hidden bugs (8 years old) and leading to some of the mentioned improvements. But all that made this part of the work quite labour-intensive.
Frame4J — Aims, Strategies
- Frame4J is developed on base of the approved predecessor, as it would have
been unwise to proceed otherwise (as some control / server applications
based on it did run trouble-free over many years in
uninterrupted 24h7d).
The main distinguishing characteristics are- English only (javaDoc, comments, names) instead of German (except for one banking package used for online transactions available in German speaking countries only)
- base package mainly de.frame4j (instead of de.a_weinert)
- using Java6 (/5) features
(with no return to Java2 or lower, avoiding the predecessor's 1.3 backward compatibility burden)
- Frame4J shall be to a large degree JUnit tested / test driven
- Frame4J conforms to good design rules and the "Guideline for the usage of OO programming in critical systems", (that may later be made part of project)
The sub-projects
- Frame4J
— the Java framework
- porting, streamlining core classes and tools
(de.a_weinert.. -> de.frame4j..; done) - translating existing javaDoc etc. German -> English (done)
- checking / improving the translation (ongoing process)
- adding / completing JUnit tests (40%; ongoing)
- algorithmic and performance / real time improvements (80 %)
- porting, streamlining core classes and tools
- Predecessor
- reduce to a (less than) half size Frame4J based rest (done; but recurrent in case of substantial Frame4J changes)
- adapt some special (legacy) applications, where porting of the supporting classes makes no sense, to it (done; see above)
- Guideline for the usage of OO programming in critical systems
- structure of guideline (60%)
- guide on the safe and robust use of Java's (OO) features
- guide on the use of dynamic objects and GC
- guide on the safe and robust use of patterns
- style guide part (80%, but in German)
- tooling, testing (2%)
- decide if needed
