Apache Wicket is a mature, component-based Java web framework that's been around since 2004. Like Oorian, it emphasizes Java-centric development. But there are fundamental differences in approach that matter for modern applications.
Similarities
Both frameworks share important principles:
- Component-based architecture
- Java-centric development
- Type-safe programming model
- Server-side state management
Key Differences
1. HTML Templates vs Pure Java
Wicket requires HTML templates paired with Java components:
<!-- CustomerPanel.html -->
<wicket:panel>
<form wicket:id="form">
<input wicket:id="name" type="text" />
<input wicket:id="email" type="text" />
<button wicket:id="submit">Save</button>
</form>
</wicket:panel>
// CustomerPanel.java
public class CustomerPanel extends Panel {
public CustomerPanel(String id) {
Form form = new Form("form");
form.add(new TextField("name"));
form.add(new TextField("email"));
form.add(new Button("submit"));
add(form);
}
}
Oorian is pure Java—no templates:
public class CustomerForm extends Div
{
public CustomerForm()
{
OorianForm form = new OorianForm();
form.addElement(new TextInput().setName("name"));
form.addElement(new TextInput().setName("email"));
form.addElement(new Button("Save"));
addElement(form);
}
}
2. UI Components
Wicket provides basic HTML components. For rich UI, you integrate external libraries manually or use community extensions like Wicket-jQuery-UI.
Oorian provides 58 wrapper libraries for best-of-breed JavaScript components out of the box.
3. Communication Model
Wicket uses traditional request-response with optional AJAX updates. Real-time features require additional configuration.
Oorian offers flexible per-page communication: AJAX, SSE, or WebSocket.
4. Development Experience
Wicket:
- Must keep HTML and Java in sync
- Template errors at runtime
- wicket:id mismatches cause runtime exceptions
Oorian:
- Everything in Java
- All errors at compile time
- Full IDE support for everything
Feature Comparison
| Feature | Wicket | Oorian |
|---|---|---|
| UI Definition | HTML + Java | Pure Java |
| Rich Components | Community extensions | 58 built-in wrappers |
| Real-time | Additional config | Built-in SSE/WebSocket |
| Error Detection | Many at runtime | Most at compile time |
| Learning Curve | Moderate | Low |
When to Choose Wicket
- You prefer HTML templates for UI structure
- You have existing Wicket expertise
- You need the mature Wicket ecosystem
When to Choose Oorian
- You want pure Java with full IDE support
- You need rich UI components out of the box
- You need real-time features
- You prefer compile-time error detection
Conclusion
Wicket pioneered component-based Java web development, but its HTML template requirement adds complexity. Oorian's pure Java approach combined with rich component wrappers offers a more streamlined development experience for modern applications.