Tutorial

Migrating from Vaadin to Oorian

A practical guide for teams migrating from Vaadin to Oorian.

M. WarbleAugust 18, 20262 min read
Migrating from Vaadin to Oorian

If you're considering moving from Vaadin to Oorian, this guide will help you understand the differences and plan your migration strategy.

Why Migrate?

Common reasons teams consider migration:

  • Licensing costs as your team grows
  • Need for UI components Vaadin doesn't provide
  • Desire for more flexibility in component choice
  • Performance concerns with specific Vaadin components

Conceptual Mapping

Vaadin Oorian
@Route @Page
VerticalLayout/HorizontalLayout Div with CSS Flexbox
Grid AgGrid, SfDataGrid, etc.
TextField TextInput
Button Button
Notification Toast (SweetAlert2)

Code Comparison

Vaadin

@Route("customers")
public class CustomerView extends VerticalLayout {
    public CustomerView(CustomerService service) {
        Grid<Customer> grid = new Grid<>(Customer.class);
        grid.setItems(service.findAll());
        grid.addColumn("name").setHeader("Name");
        grid.addColumn("email").setHeader("Email");

        Button addButton = new Button("Add", e -> openDialog());

        add(addButton, grid);
    }
}

Oorian

@Page("/customers")
public class CustomerPage extends HtmlPage implements MouseClickListener
{
    private CustomerService service;

    @Override
    protected void createBody(Body body)
    {
        Div container = new Div();
        container.setDisplay(Display.FLEX);
        container.setFlexDirection(FlexDirection.COLUMN);
        container.addStyleAttribute("gap", "16px");

        Button addButton = new Button("Add");
        addButton.registerListener(this, MouseClickedEvent.class);
        container.addElement(addButton);

        AgGrid grid = new AgGrid();
        grid.setRowData(service.findAll());
        grid.addColumn("name", "Name");
        grid.addColumn("email", "Email");
        container.addElement(grid);

        body.addElement(container);
    }

    @Override
    public void onEvent(MouseClickedEvent event)
    {
        openDialog();
    }
}

Migration Strategy

Phase 1: New Features in Oorian

Build new pages in Oorian while maintaining existing Vaadin code.

Phase 2: Migrate Shared Components

Convert common UI components to Oorian equivalents.

Phase 3: Page-by-Page Migration

Migrate pages incrementally, starting with simpler ones.

Phase 4: Remove Vaadin

Once all pages are migrated, remove Vaadin dependencies.

Conclusion

Migration from Vaadin to Oorian is a gradual process. The conceptual models are similar, making the transition manageable. The payoff is flexibility, reduced licensing costs, and access to best-of-breed UI components.

Share this article

Related Articles

Tutorial

Oorian's Built-In Accessibility Features

January 19, 2026
Tutorial

Getting Started with Oorian: Your First Java Web Application

December 31, 2025
Deep Dive

Logging and Error Handling in Oorian: A Complete Guide

February 24, 2026