Tutorial

Migrating from Vaadin to Oorian

A practical guide for teams migrating from Vaadin to Oorian.

M. WarbleMay 21, 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.

Related Articles

Tutorial

Getting Started with Oorian: Your First Java Web Application

December 31, 2025
Security

Security by Default: How Oorian Protects Your Applications

January 11, 2026
Announcement

Why We Built Oorian: The Story Behind the Framework

January 7, 2026