Release Notes for XWiki Enterprise 2.0 Milestone 2

Second milestone of the XWiki Enterprise 2.0 version (Roadmap).

New and Noteworthy (since XWiki Enterprise 2.0 Milestone 1)

At a glance (see below for details):

  • Improvements and bug fixes in the GWT WYSIWYG editor
  • Improvements and bug fixes in the rendering engine
  • Improvements for the Blog application
  • It's now possible to choose the content renderer to use when viewing a page
  • New xwiki-properties module
  • New Latvian translation
  • New Swedish translation
  • New Korean translation

New Wiki rendering 2.0 macros

See Wiki Macro Tutorial.

Output syntax parameter

It's now possible to decide which renderer to use to print the document content. For example if you want to generate dome JSON page you can use "?outputSyntax=plain&xpage=plain" to make sure only the content is printed and there is no html syntax printed, just a plain text of what exactly was generated by a velocity macro (without macro markers html comments etc.)

See URL parsing documentation.

WYSIWYG improvements

  • Add the ability to configure the colors displayed by the color picker
  • Allow the page to link to to be searched for or selected from the most recently edited pages
  • Component Manager should generate event when the component is registered instead of initialized

Rendering improvements

  • New Section editing
  • Allow default document syntax to be specified in User profile configuration

1.0 -> 2.0 syntax converter

  • Converter should make sure code macro are forced standalone
  • Converter should make sure to put get calls in {{html}} macros
  • Converter should trim code macro content

Component Manager api improvements

  • Add way to directly provide the component instance when register it
  • Add way to unregister component

New xwiki-properties module

  • Java bean populating support
  • Java type conversion support
  • Java bean validation support
Among other things this mean the following changes for the 2.0 macros:
  • any case is supported for macros parameters names
  • public fields are now supported (not only getters and setters)
  • java macro parameters bean is validated agains JSR 303 (See )
  • macro properties java bean can implements RawProperties to get custom non converted parameters
  • you can add support for any type conversion by implementing Converter component
  • any Enum conversion is supported (no need to register each Enum subclass agains ConvertUtils anymore)
  • support for Color conversion
See Properties module documentation.

Miscellaneous UI improvements

  • Improved document footer section
  • Improved tag display and editing

Important bugs fixed

  • XWIKI-4033 - When saving after section edit entire page is overwritten
  • XWIKI-4043 - Main.AllDocs not showing any documents in a farm

Known issues

Backward Compatibility and Migration Notes

General Notes

Warning: If you're running in a multiwiki setup you'll also need to define the property to your xwiki.cfg file or explicitly name all databases to be migrated as in,db2,....

You may also want to import the default wiki XAR in order to benefit from improvements listed above.

Warning: Always make sure you compare your xwiki.cfg file with the newest version since some configuration parameters were added. Of note, you should add so that XWiki will attempt to automatically migrate your current database to the new schema. Make sure you backup your Database before doing anything.

API Breakages

The following APIs were modified since XWiki Enterprise 2.0M1:

  • Rendering Module
    • AbstractBlock constructors has been refactored to make easier to create new common macros. Main change is that the macro author does not have to provide the MacroDescriptor anymore.
    • Macro parameters bean are now supposed to use xwiki-properties annotations instead of org.xwiki.rendering.macro.descriptor.annotation.* annotations. Simply change org.xwiki.rendering.macro.descriptor.annotation.Parameter* by* to upgrade you macro parameters bean.
    • Details:
      [ERROR] org.xwiki.rendering.block.AbstractBlock: Method 'public void setParameter(java.lang.String, java.lang.Object)' has been removed
      [ERROR] org.xwiki.rendering.macro.AbstractMacro: Parameter 1 of 'public AbstractMacro(org.xwiki.rendering.macro.descriptor.MacroDescriptor)' has changed its type to java.lang.String
      [ERROR] org.xwiki.rendering.macro.AbstractMacro: Method 'protected void registerConverter(org.apache.commons.beanutils.Converter, java.lang.Class)' has been removed
      [ERROR] org.xwiki.rendering.macro.AbstractMacroSource: Class org.xwiki.rendering.macro.AbstractMacroSource removed
      [ERROR] org.xwiki.rendering.macro.MacroManager: Removed java.lang.Comparable from the set of implemented interfaces
      [ERROR] org.xwiki.rendering.macro.MacroManager: Method 'public int getPriority()' has been removed
      [ERROR] org.xwiki.rendering.macro.MacroSource: Class org.xwiki.rendering.macro.MacroSource removed
      [ERROR] org.xwiki.rendering.macro.descriptor.AbstractMacroDescriptor: Parameter 3 of 'public AbstractMacroDescriptor(java.lang.String, org.xwiki.rendering.macro.descriptor.ContentDescriptor, java.lang.Class)' has changed its type to
      [ERROR] org.xwiki.rendering.macro.descriptor.AbstractMacroDescriptor: Method 'protected java.lang.annotation.Annotation extractParameterAnnotation(java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Class)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.AbstractMacroDescriptor: Method 'protected void extractParameterDescriptor(java.beans.PropertyDescriptor, java.lang.Object)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultMacroDescriptor: Parameter 3 of 'public DefaultMacroDescriptor(java.lang.String, org.xwiki.rendering.macro.descriptor.ContentDescriptor, java.lang.Class)' has changed its type to
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultMacroDescriptor: Method 'public DefaultMacroDescriptor(java.lang.String, java.lang.Class)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultParameterDescriptor: In method 'public DefaultParameterDescriptor()' the number of arguments has changed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultParameterDescriptor: Method 'public void setDefaultValue(java.lang.Object)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultParameterDescriptor: Method 'public void setDescription(java.lang.String)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultParameterDescriptor: Method 'public void setMandatory(boolean)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultParameterDescriptor: Method 'public void setName(java.lang.String)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.DefaultParameterDescriptor: Method 'public void setType(java.lang.Class)' has been removed
      [ERROR] org.xwiki.rendering.macro.descriptor.annotation.ParameterDescription: Class org.xwiki.rendering.macro.descriptor.annotation.ParameterDescription removed
      [ERROR] org.xwiki.rendering.macro.descriptor.annotation.ParameterHidden: Class org.xwiki.rendering.macro.descriptor.annotation.ParameterHidden removed
      [ERROR] org.xwiki.rendering.macro.descriptor.annotation.ParameterMandatory: Class org.xwiki.rendering.macro.descriptor.annotation.ParameterMandatory removed
      [ERROR] org.xwiki.rendering.renderer.PrintRendererFactory: Method 'public java.util.List getAvailableSyntaxes()' has been added to an interface
Created by Thomas Mortagne on 2009/07/19

Get Connected