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.

/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ 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.getResourceBundle() returns now ResourceBundle TobagoContext.getMessageBundle() returns now 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-2023 Apache Software Foundation, Licensed under the Apache License, Version 2.0.