At Last! I think Friki 2.1.1 is now stable enough for a release, so I've made it available at SourceForge. Note that this release only contains a "OneDotThree" version. I'm not confident about the reliability of the OneDotFour regex code, so I strongly suggest everyone use OneDotThree for this release. It will still work in JDK1.4 envronments, it's just a little larger than a pure OneDotFour version.
Many thanks to everyone who has helped with these major changes, and to everyone who has (patiently or not) stuck with Friki while waiting for the long-promised improvements. Everyone is still welcome to make comments and suggestions, of course, but they will now be targetted at 2.1.2 or later.
Release Note
This release note describes the "stable" release of Friki 2.1.1, It includes details of changes since the previous stable release (2.0.6), as well as the changes between the various "development" releases (2.0.7, 2.1.1 beta 1, 2.1.1 beta 2, and 2.1.1 rc1).
Overview of ths Release
Development on Friki 2.1.1 was started to solve three main problems which had been irritating users of the previous stable release.
The problem which generated the most comments was the inability to include more than one "pre-formatted block" in a Friki page. This, together with a few other accumulated niggles led to a complete redesign of the way pages are transformed from "wiki markup" into HTML for viewing in a browser. In the old Friki 2.0, all the details of the transformation were embedded in Java code. Although this code used regular expressions to recognize and replace patterns in the page, there was no way to alter these regular expressions without editing, recompiling, and rebuilding the complete application. Friki 2.1 has scrapped all the old transsformation code in favour of a more generic approach, which loads the complete transformation specification from a configuration file, allowing a Friki administrator to tinker and add extra transformations even without stopping a running Friki.
The second major problem was that rebuilding Friki 2.0 from source code was not an easy task. Friki has always been "open source", but this is only of academic use if you can't change things and regenerate a new Friki incorporating your changes. Even had users been tempted to enhance or fix problems in Friki 2.0, rebuilding it was worryingly difficult. Embedded in the build process were assumptions about where code was located, and the presence of other, unrelated, software. Friki 2.0 had also been stable for long enough that it had become "out of synch" with developments in some of the external library code it used, which meant that finding the correct versions of such code, and debugging problems when using it, became an almost insoluble problem. Friki 2.1 has solved this by "catching up" with the external library code, rewriting the build system, and making sure that all needed resources are provided in the source release. It makes the source release a little bigger, but it does mean that you can build your own Friki from scratch with just a Java SDK and Ant.
The final major problem was the lack of support for accented and other non-ASCII characters. Java as a whole supports the full range of unicode characters but, at several places in the code and the transformation regular expressions. Friki 2.0 made assumptions which prevented effective use of other characters. Friki 2.1 has addressed these issues and now correctly preserves non-ASCII characters in stored pages, and supports their use in WikiNames, where appropriate.
Along with these major issues, there are a whole bunch of smaller fixes and improvements including a first stab at a display of what has changed on a page, and a much simpler and more flexible way of reconfiguring almost every aspect of the software without stopping the server or the application.
Detailed Change List
Changes in 2.1.1 final
- allow broader regex in remote wiki links
- encode search URL in edit template
- read intermap file from data directory
Changes in 2.1.1 beta 3 (a.k.a 2.1.1 rc1)
- use a more-specific regex for mailto links [Frank Carver]
- bullets followed by hands-off block loses the block [Marion Sturtevant]
- RecentChanges doesn't show page links [Frank Carver]
- logfile formatting to still work if a bunch of log lines are copied to a new page (what about diff link?)
- ordered search results
- patch for searching on MacOSX [Ulf Dittmer]
- rationalise which jar files are in the source release [Marion Sturtevant]
- better handling of non-Ascii characters in WikiWords & filenames [Ulf Dittmer]
Changes in 2.1.1 beta 2
- stop read/write logging backing up the read requests page [Marion Sturtevant]
- remove diff links from read requests page [Marion Sturtevant]
- make logging of default pages/templates etc. a bit more useful [Marion Sturtevant]
- rename (and check) installing of default pages from resource (dflpages vs dflPages) [Marion Sturtevant]
- buildall.bat seems to build a OneDotThree with OneDotFour code in it [Marion Sturtevant]
- escape $ in 1.4 regex wrapper (org.stringtree.regex.Pattern.replaceAll(Pattern.java:28)) [Marion Sturtevant]
- stop the templating screwing up paypal buttons etc. [Frank Carver]
- why does old/EmptyPage not get copied over properly? [Frank Carver]
- fix searching error from sourceforge (rogue files in repository again?) [Tillmann Wegst] [Dave Watkins]
- check the old --WikiName bug [Frank Carver]
- run time command to re-load changed templates, transform etc. [Frank Carver]
- ( use http://.../friki?button?button=RESET )
- exception on bullet item with no text ( http://tomcat.efsol.com/friki/view?BulletPointBug ) [Dave Watkins]
- default to not logging page reads, this causes too much trouble on busy installations [Lasse Koskela]
- validity-checking (or documentation update) for directories in stored properties if repository is copied [Dave Watkins]
Changes in 2.1.1 beta 1
- new render engine with external spec
- split regex wrappers into separate project jars ?
- app name for tomcat console
- test and fix the greedy block bug
- allow "file:" URLS (and others, eg https: etc.)
- internationalization of stored pages and page editing [Ilja Preuss] [Ulf Dittmer]
- eliminate the needless "backup" of initially created pages
- add a "diff" facility [Ilja Preuss]
- fix "blank lines in preformatted table cells" problem [Dirk Schreckmann]
- allow unicode upper and lower case letters in page names [Ulf Dittmer]
- "config" mode when first installed
- allow templates to be fetched from outside the web app
- allow wiki.transform to be fetched from outside the web app
- allow button spec to be fetched from outside the web app
- update docs for new configuration options
Changes in 2.0.7
- remove the option of "simple" markup
- Bring up to date with current Stringtree utilities
- simpler build process [Dirk Schreckmann] [Steve Hutton]