UberFire was designed to be a highly modular framework, so basically it's possible to select whatever you want for your application.
UberFire modules are called "plugins"; everything can be considered a plugin, from a simple Screen, to VFS, to Security. Using this approach, Uberfire allows you to select from built-in plugins, or create your own.
Plugins are classified as compile time (a maven module) and runtime. Most of the available components are compile time, but Uberfire also enables extensions on runtime for UI components which use UFJS.