Tobago Demo

Menu

4.0 to 5.0

Migration from Tobago 4.0 to 5.0

There are some migration steps to do, dependent on the application you want to migrate. The steps can be classified by

Theme Building

Resource Bundles

Java Class to Migrate from XML to properties

Here is a simple Java Class, that may help you to change the layout attributes in the facelets XHTML files.

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.Collections; import java.util.Enumeration; import java.util.Properties; import java.util.TreeSet; public class ConvertXmlToProperties { public static void main(String[] args) throws Exception { final String inXmlFile = args[0]; final InputStream inStream = new FileInputStream(inXmlFile); final Properties properties = new Properties(); properties.loadFromXML(inStream); final String outPropertiesFile = inXmlFile.replace(".xml", ".properties"); final OutputStream outStream = new FileOutputStream(outPropertiesFile); final Properties sorted = new Properties() { @Override public synchronized Enumeration<Object> keys() { return Collections.enumeration(new TreeSet<Object>(super.keySet())); } }; sorted.putAll(properties); sorted.store(outStream, "Converted from '" + inXmlFile + "'"); System.out.println("Converted items: " + properties.size()); } }

TobagoContext: ResourceBundle Changes

TobagoContext.getResourceBundle() now returns ResourceBundle
TobagoContext.getMessageBundle() now returns ResourceBundle

UI Components

Suggest

For local menu for the suggest box use localMenu="true" in <tc:suggest> instead of markup="localMenu" in the <tc:in>.

File Upload

The attribute placehoder in <tc:file> has been removed, because its not supported with Bootstrap 5.

Application Icon

The attribute applicatonIcon in <tc:page> has been removed. Please use the <tc:metaLink> tag instead.

Date Input

  • Completely refactored
  • Support for HTML input types: date, time, datetime-local
  • Droped support for java.util.Calendar
  • Replace <tc:convertDateTime> with <f:convertDateTime>

Form Components

On form components labelLayout='skip' could be used in Tobago 4 to remove the bottom margin. The new attribute autoSpacing replace this. By default it's 'true' and a bottom margin is set on form components. Use autoSpacing='false' to remove the margin.

Markups

Custom markups are no longer supported in Tobago 5. The markup attribute have to be replaced by <tc:style customClass="..."/>.

Java API

Icons

Using Bootstrap Icons and drop FontAwesome. The constants in enum org.apache.myfaces.tobago.renderkit.css.Icons has been changed to the names used by Bootstrap Icons.

JavaScript API

Listener Registration Removed

Tobago.registerListener(Demo.init, Tobago.Phase.DOCUMENT_READY); Tobago.registerListener(Demo.init, Tobago.Phase.AFTER_UPDATE);
© 2005-2025 Apache Software Foundation, Licensed under the Apache License, Version 2.0.