CUBA Platform is a high level framework for enterprise applications development

Overview

CUBA Platform

Java RAD framework for enterprise web applications

license Build Status

CUBA Platform is a high level framework for rapid development of enterprise applications with rich web interface.

The simplest way to start using the platform is to download CUBA Studio and create a new project in it. A released version of the platform will be downloaded automatically from the artifact repository.

You can also build a snapshot version of the platform from the source code and use it in your project.

To contribute, first refer to Contributing Code for general instructions and requirements for contributing code to the platform.

Building from Source

In order to build the platform from source, you need to install the following:

Let's assume that you have cloned CUBA Gradle Plugin and CUBA into the following directories:

work/
    cuba/
    cuba-gradle-plugin/

Open terminal in the work directory and run the following command to build and install the plugin into your local Maven repository (~/.m2):

cd cuba-gradle-plugin
gradlew install

After that, go to the CUBA directory and build and install it with the same command:

cd ../cuba
gradlew install

Using Snapshot Version

Edit the build.gradle file of your project. Change the ext.cubaVersion property and add mavenLocal() to the repositories section, for example:

buildscript {
    ext.cubaVersion = '7.3-SNAPSHOT'
    repositories {
        mavenLocal()
        maven { ...

That's all. Now you can build and deploy your application based on the snapshot version of the platform from your local repository:

gradlew deploy

Third-party dependencies

The platform uses a number of forked third-party libraries. They can be found in the following source code repositories:

All dependencies are also located in our artifacts repository, so you don't have to build them from sources in order to build and use the platform.

Issues
  • URL browser history and navigation

    URL browser history and navigation

    We should provide first-class support for URLs and parameters that should replace LinkHandler completely and bring new functionality.

    Please note that we should permit both authorized and non-authorized access to URLs, for instance public pages of web application, such as Terms of use, Help, Registration and so on.

    See forum:

    Issues to be addressed:

    • [x] Screen links: /login, /main, /help, etc
    • [x] Sub paths: /main/users, /main/users/<base64_id>, /main/users/add (the last one should be explicitly defined by user-developer)
    • [x] UrlParamsChangedEvent
    • [x] New API for URL changing (route, params)
    • [x] Handle 404
    • [x] Screen navigation access check

    Original issue: https://youtrack.haulmont.com/issue/PL-8076

    type: enhancement severity: major ver: 7.0.0 
    opened by haulmont-git 20
  • Built-in mechanism for declarative linking of data components

    Built-in mechanism for declarative linking of data components

    Environment

    • Platform version: 7.0

    Description of the bug or enhancement

    Now linking of data loaders with data containers and components requires too much boilerplate code.

    type: enhancement state: fixed ver: 7.1.0 ver: 7.2.0 
    opened by knstvk 16
  • Provide replacement for havana theme with similar visual look and feel

    Provide replacement for havana theme with similar visual look and feel

    Variables already described in: Migration from Havana to feature-rich Halo theme

    https://doc.cuba-platform.com/manual-6.9/web_theme_extension.html#web_theme_migration

    Improve the following aspects:

    • hover color for Table rows
    • editable / non-editable fields differences: #522
    • disable all animations

    Changes

    Reworked following styles:

    • DataGrid, TreeDataGrid
    • Table
    • Notification
    • Dialog window
    • Menu Bar
    • Tab Sheet in Main window
    • Login window

    Migrated almost all png icons in components. Following components use FontAwesome:

    • LookupField, PopupButton and other with dropdown list: image.png
    • DateField image.png
    • Table column with ascending and descending sorts image.png
    • Tree image.png
    • Dialog window icons: image.png
    • Close icon in the Tab: image.png
    • ResizableTextArea: image

    SCSS variables

    Table

    • $c-table-selected-row-cell-border-color - cell border color of selected row;
    • $c-table-header-background-color - background of header cell in table
    • $c-table-header-hover-background-color - hover background of header cell in table

    DataGrid

    • $c-datagrid-selected-row-cell-border-color - cell border color of selected row
    • $c-datagrid-header-cell-background-color - header cell background color
    • $c-datagrid-header-cell-hover-background-color - header cell hover background color

    Table and DataGrid

    • $c-row-selection-background-color - Table and DataGrid selection row color
    • $c-row-selection-text-color - Table and DataGrid selection row text color

    Window

    • $c-window-header-background-color - Window header background color

    Notifications

    • $c-notification-border-radius - notification border radius

    MenuBar

    • $c-menubar-submenu-outline-color - outline color of submenu
    • $c-main-menu-popup-text-color - text color of main popup menu

    Main Window

    • $c-main-tabsheet-tab-caption-text-color - caption color of tab in main tabSheet
    • $c-tabsheet-tab-close-text-color-hover - hover color of close font-icon
    • $c-tabsheet-tab-close-text-color - close font-icon color of tab in tabSheet
    • $c-app-workarea-background - background color of application work area
    type: enhancement severity: minor state: fixed ver: 7.0.0 
    opened by jreznot 12
  • Support 12 hours format for TimeField

    Support 12 hours format for TimeField

    https://www.cuba-platform.com/discuss/t/localtime-illegalargumentexception/9811

    Description of the bug or enhancement

    Currently hh:mm a time format doesn't work. Let's implement support for 12 hours format with AM/PM part represented as a separate combo box.

    Upd: Provide a separate attribute with a type such as FORMAT_12_H, FORMAT_24_H.

    Upd2: DateField should support 12 hours format either.

    Updates

    12h time mode is supported for DateField and TimeField components. This mode is supported as additional dropdown next to inputs and automatic conversion 24h time values into 12h format.

    image.png

    Declarative settings

    The time mode can be set in XML screen descriptor via new timeMode attribute:

    <dateField timeMode="H_12"/>
    
    <!-- default value -->
    <timeField timeMode="H_24">
    

    API

    New pair of methods getTimeMode / setTimeMode is added for DateField and TimeField components:

    TimeField.TimeMode timeMode = dateField.getTimeMode();
    
    timeField.setTimeMode(TimeField.TimeMode.H_12);
    

    Demo project

    https://github.com/cuba-labs/cuba-timefield-ampm-demo

    QA

    Check that:

    • [x] TimeMode switching is done correctly - components display correctly converted value
    • [x] 24h time value are correctly converted into 12h format
    • [x] Components have correct value while conversions
    type: enhancement state: fixed ver: 7.2.0 
    opened by andreysubbotin 10
  • Support for JSR-310 date/time APIs in entities

    Support for JSR-310 date/time APIs in entities

    Hi, I'm evaluating CUBA and its Studio app, but I'm wondering if it can deal with entity attributes using Java 8 date/time types. I successfully used them in another project using Spring Data Rest and Hibernate, without any issue, but I don't know if your infrastructure is ready to support them OOB.. I'd prefer avoid using the old & awkward Date/Time types in my codebase.

    Thanks! P.

    PS: To clarify, I mean using the LocalDate, LocalTime and LocalDateTime types to store UTC-only values (so "without timezone"), alongside a ZoneId associated to a user to make date/time calculations or displaying in the UI..

    opened by pfurini 9
  • FileStorageAPI was migrated to global module and parametrized

    FileStorageAPI was migrated to global module and parametrized

    FileStorageAPI was migrated to global module. It was parametrized with parameter T. Other code was migrated to use FileStorageAPI with parameter

    opened by ikuchmin 9
  • Email local part validation problems

    Email local part validation problems

    A topic on support forum: link.

    Description of the bug or enhancement

    • Minimal reproducible example

    Try to validate the following emails:

    1. [email protected]
    2. [email protected]
    • Expected behavior
    1. The first email should be rejected
    2. The second should be accepted
    • Actual behavior
    1. The first email is accepted
    2. The second email is rejected

    Updates

    Hibernate EmailValidator is used now instead of custom regular expressions. It has less strict check so some cases can be considered as correct. It's intended to decrease false negative cases.

    QA

    Make sure that EmailValidator doesn't reject correct emails.

    type: bug state: fixed ver: 7.0.0 ver: 6.10.2 
    opened by dtsaryov 8
  • Use own database connection pool

    Use own database connection pool

    • By default, use own database connection pool configurable via app properties
    • Optionally use a pool provided by app server
    • For backward compatibility, current datasource settings should work as is
    type: enhancement state: fixed ver: 7.2.0 
    opened by knstvk 8
  • Ubuntu 20.04 cuba 7.2.1 Hotkey (ctrl+tab)

    Ubuntu 20.04 cuba 7.2.1 Hotkey (ctrl+tab)

    Environment

    • Platform version: 7.2.1
    • Client type: Portal
    • Browser: Chrome, etc.
    • Database: PostgreSQL
    • Operating system: Ubuntu 20.04 Linux

    Description of the bug or enhancement

    Добрый день. При использовании cuba plugin idea jetbrains в ОС Ubuntu 20.04 происходит отключение клавиатуры после использовании переключения между вкладками открытых файлов (ctr+tab). В ранних версиях ubuntu такой проблемы нет (19.10).

    100_sys_log.txt

    opened by aosivt 8
  • Newline in markdown within a paragraph should not cause hard break in rendered HTML

    Newline in markdown within a paragraph should not cause hard break in rendered HTML

    CUBA Studio automatically shows the rendered output of any README.md in the project root if present, which is really cool by the way.

    I have one small problem with the rendered output though: Newlines within a paragraph in the markdown source get rendered as hard breaks in the HTML output (<br>), as demonstrated below.

    So, a markdown source like this... screen shot 2018-02-16 at 17 48 34

    ...gets rendered like this: screen shot 2018-02-16 at 17 44 46

    I think this does not comply with the CommonMark specification, but more importantly it makes the READMEs I write for my CUBA projects look worse than they should, because I prefer not using soft wrapping in my code (including markdown).

    It's obviously a minor and purely esthetic issue, but I would be very pleased if this could be fixed.

    state: won't fix 
    opened by anothernode 7
  • SplitPanel has visual issues when browser scale is decreased

    SplitPanel has visual issues when browser scale is decreased

    Environment

    • Platform version: 7.2

    Description of the bug or enhancement

    Make browser scale ~ 75%

    https://user-images.githubusercontent.com/6077149/132463892-fca3bb44-7eef-4447-ab27-3fb479740025.mov

    image


    For more details: https://www.cuba-platform.ru/discuss/t/problemy-so-split-pri-malom-masshtabe-brauzera/5959

    opened by glebfox 0
  • Can not subscribe to table action inside popupButton

    Can not subscribe to table action inside popupButton

    Environment

    Platform version: 7.2.15 Studio plugin version: 15.6-202

    Description of the bug or enhancement

    • Create an entity Book
    • Create some attributes
    • Create browser (with groupTable) and editor screens
    • Open browser descriptor
    • Add refresh action to actions list <action id="refresh" type="refresh"/>
    • Add popup button in buttons panel
                    <popupButton id="reviewPopupButton" caption="popup">
                        <actions>
                            <action id="booksTable.refresh" type="refresh"/>
                            <action id="popupAction" caption="custom"/>
                        </actions>
                    </popupButton>
    
    • Open browser controller
    • Add enabledRule event handler:
        @Install(to = "reviewPopupButton.booksTable.refresh", subject = "enabledRule")
        private boolean reviewPopupButtonBooksTableRefreshEnabledRule() {
            notifications.create(Notifications.NotificationType.WARNING)
                    .withCaption("reviewPopupButton.booksTable.refresh")
                    .show();
            return true;
        }
    
    • Run the application
    • Open Browser screen

    Expected behavior Browser is available, if you select popup>refresh, you'll get the notification

    Actual behavior: DevelopmentException image

    com.haulmont.cuba.core.global.DevelopmentException: Unable to find @Install target for method private boolean com.company.new2.web.screens.book.BookBrowse.reviewPopupButtonBooksTableRefreshEnabledRule() in class com.company.new2.web.screens.book.BookBrowse
    	at com.haulmont.cuba.gui.sys.UiControllerDependencyInjector.initInstallMethods(UiControllerDependencyInjector.java:134)
    	at com.haulmont.cuba.gui.sys.UiControllerDependencyInjector.inject(UiControllerDependencyInjector.java:116)
    	at com.haulmont.cuba.web.sys.WebScreens.createScreen(WebScreens.java:250)
    	at com.haulmont.cuba.web.sys.WebScreens.create(WebScreens.java:179)
    	at com.haulmont.cuba.gui.config.MenuItemCommands$ScreenCommand.run(MenuItemCommands.java:319)
    	at com.haulmont.cuba.web.sys.SideMenuBuilder$MenuCommandExecutor.accept(SideMenuBuilder.java:264)
    	at com.haulmont.cuba.web.sys.SideMenuBuilder$MenuCommandExecutor.accept(SideMenuBuilder.java:249)
    	at com.haulmont.cuba.web.gui.components.mainwindow.WebSideMenu$MenuItemImpl.menuSelected(WebSideMenu.java:576)
    	at com.haulmont.cuba.web.widgets.CubaSideMenu$1.menuItemTriggered(CubaSideMenu.java:90)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:153)
    	at com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:115)
    	at com.vaadin.server.communication.ServerRpcHandler.handleInvocation(ServerRpcHandler.java:431)
    	at com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:396)
    	at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:260)
    	at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:82)
    	at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40)
    	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1580)
    	at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:425)
    	at com.haulmont.cuba.web.sys.CubaApplicationServlet.serviceAppRequest(CubaApplicationServlet.java:329)
    	at com.haulmont.cuba.web.sys.CubaApplicationServlet.service(CubaApplicationServlet.java:215)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
    	at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
    	at com.haulmont.cuba.web.sys.CubaHttpFilter.doFilter(CubaHttpFilter.java:93)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:748)
    

    Note that you can subscribe to reviewPopupButton.popupAction. Also, you can subscribe to booksTable.refresh, but it triggers on every refresh (not only by popupButton)

    type: bug 
    opened by lovtsovaik 0
  • ColorPicker history sets white color instead of selected one

    ColorPicker history sets white color instead of selected one

    Environment

    • Platform version: 7.2
    • Client type: Web

    Description of the bug or enhancement

    Minimal reproducible example

    1. Add to the screen:
    <colorPicker id="colorPicker" historyVisible="true"/>
    
    1. Select some colors to fill the history panel
    2. Open dialog again and try to select color from history
    • Expected behavior Selected color should be set
    • Actual behavior White color is set
    type: bug 
    opened by Flaurite 0
  • RadioButtonGroup.setItemEnabledProvider is ignored

    RadioButtonGroup.setItemEnabledProvider is ignored

    Environment

    • Platform version: 7.2.0+

    Description of the bug or enhancement

    • Minimal reproducible example
    @Inject
    private RadioButtonGroup radioButtonGroup;
    
    @Subscribe
    public void onInit(InitEvent event) {
        radioButtonGroup.unwrap(CubaRadioButtonGroup.class)
                .setItemEnabledProvider(i -> false);
    }
    
    • Expected behavior All items are disabled

    • Actual behavior All items are enabled


    Caused by: https://github.com/cuba-platform/cuba/issues/2630

    type: regression 
    opened by glebfox 0
  • Incorrect icons aligment at Brand login screen

    Incorrect icons aligment at Brand login screen

    based on forum's question

    Environment

    • Platform version: 7.2.15
    • Browser: Chrome

    Description of the bug or enhancement

    TC:

    1. Create new project
    2. Add Brand login screen
    3. Run app

    AR: icons are aligned incorrectly image

    ER: image

    type: bug 
    opened by owlet1997 0
  • CollectionPropertyContainer replaces the wrong item in the master entity field

    CollectionPropertyContainer replaces the wrong item in the master entity field

    Environment

    • Platform version: 7.2.15

    Description of the bug or enhancement

    Sample project: dc-sort-demo.zip

    Given:

    • There are 2 entities: Order and OrderItem (one-to-many, composition)
    • In OrderEdit it is possible to edit OrderItems as well.
    • The Order has an attribute “sum” which is the sum of all OrderItem prices.
    • When an OrderItem is changed the sum is updated in the editor.

    Steps to reproduce the issue:

    1. Open existing order (example with 2 items)
    2. Edit 1st item (“Cup”) and set price to 100 (and save)
    3. Sum in table is 130, but sum in field is 200

    Analysis:

    The order items table is sorted by the "Product" column - that's why the order of elements in the order items collection in order.items collection and in the collection container are different (sorting affects only collection container)

    CollectionContainerImpl.replaceItem() evaluates the modified element index inside the CollectionPropertyContainer collection and then replaces the element with this index in the order.items property master collection, but elements order in both collections is different because of sorting

    Forum topic: https://forum.cuba-platform.com/t/merge-compostion-in-editor-overrides-wrong-item/15588

    type: bug ver: 7.3.0 ver: 7.2.16 ver: 7.1.10 
    opened by gorbunkov 0
  • Attribute 'maxTextLength' doesn't work for some column types

    Attribute 'maxTextLength' doesn't work for some column types

    based on forum's question

    Environment

    CUBA Platform version: 7.2.15 CUBA Studio plugin version: 15.5-211 IntelliJ version: IntelliJ IDEA 2021.2 (Community Edition)

    Description of the bug or enhancement

    TC:

    1. Open attached project -> Run app
    2. Open Parts browser -> create new instance with long name (name1qweruiopifwegaggyuyio e.g.)
    3. Open NewEntity browser -> create new instance with long name (name1qweruiopifwegaggyuyio e.g.) -> choose created Part -> save

    Actual behavior

    strings in columns Part and newColumn are not hided the attribute maxTextLength doesn't work for generated column and for displayed namePattern of linked entity: image

    Expected behavior

    the attribute maxTextLength works correctly

    opened by owlet1997 0
  • ColorPicker uses the wrong order of loading tabs visibility

    ColorPicker uses the wrong order of loading tabs visibility

    Environment

    • Platform version: 7.2
    • Client type: Web

    Description of the bug or enhancement

    See RU support forum: topic.

    • Minimal reproducible example
    1. Add the following ColorPicker to the screen:
    <colorPicker id="colorField"
                 rgbVisible="false" 
                 swatchesVisible="true"/>
    
    1. Open the screen.
    • Actual behavior
    java.lang.IllegalArgumentException: Cannot hide all tabs.
    	at com.vaadin.ui.AbstractColorPicker.setRGBVisibility(AbstractColorPicker.java:291)
    	at com.haulmont.cuba.web.widgets.CubaColorPickerWrapper.setRGBVisible(CubaColorPickerWrapper.java:159)
    	at com.haulmont.cuba.web.gui.components.WebColorPicker.setRGBVisible(WebColorPicker.java:92)
    	at com.haulmont.cuba.gui.xml.layout.loaders.ColorPickerLoader.loadRGBVisibility(ColorPickerLoader.java:174)
    	at com.haulmont.cuba.gui.xml.layout.loaders.ColorPickerLoader.loadComponent(ColorPickerLoader.java:38)
    	at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponents(ContainerLoader.java:38)
    	at com.haulmont.cuba.gui.xml.layout.loaders.ContainerLoader.loadSubComponentsAndExpand(ContainerLoader.java:76)
    	at com.haulmont.cuba.gui.xml.layout.loaders.WindowLoader.loadComponent(WindowLoader.java:94)
    	at com.haulmont.cuba.web.sys.WebScreens.loadWindowFromXml(WebScreens.java:374)
    	at com.haulmont.cuba.web.sys.WebScreens.createScreen(WebScreens.java:241)
    	at com.haulmont.cuba.web.sys.WebScreens.create(WebScreens.java:179)
    
    type: bug 
    opened by Flaurite 0
  • Missing javadoc

    Missing javadoc

    Hello! I find in your CONTRIBUTING.md that

    All public interfaces, classes and their public methods must have JavaDoc statement (excluding entities and simple getters/setters).

    However, I still witness some public classes without Javadocs, e.g.,

    • modules/web-widgets/src/com/haulmont/cuba/web/widgets/renderers/CubaClickableTextRenderer.java
    • modules/web-toolkit/src/com/haulmont/cuba/web/widgets/client/jqueryfileupload/CubaFileUploadProgressWindow.java
    • modules/web-toolkit/src/com/haulmont/cuba/web/widgets/client/addons/contextmenu/VContextMenu.java ......

    I also find likely missing Javadoc for public methods in the following files:

    • modules/web-toolkit/src/com/haulmont/cuba/web/widgets/client/Tools.java
    • modules/global/src/com/haulmont/cuba/core/sys/jpql/Parser.java
    • modules/global/src/com/haulmont/cuba/core/sys/jpql/JPATreeNodes.java ......

    Would you like to add Javadoc for these methods or classes, or they are just not that important? If there is anything I can help with?

    opened by CoolKangaroo2022 0
  • Table with variable row height might have extra space

    Table with variable row height might have extra space

    Environment

    • Platform version: 6.10.20

    Description of the bug or enhancement

    • Minimal reproducible example

    whitespace.zip

    1. Open Search Items screen
    2. Switch table pages
    • Actual behavior

    7de39e7601108626ac385b20a2205891944c3cc6

    407b2b9a488b64032a2c7dd71b8ad9f387ad206d

    type: bug 
    opened by glebfox 0
Releases(7.2.9)
Owner
CUBA Platform
A high level open source Java web framework for enterprise applications
CUBA Platform
Vaadin 6, 7, 8 is a Java framework for modern Java web applications.

Vaadin Framework Vaadin allows you to build modern web apps efficiently in plain Java, without touching low level web technologies. This repository co

Vaadin 1.7k Sep 11, 2021
ZK is a highly productive Java framework for building amazing enterprise web and mobile applications

ZK ZK is a highly productive Java framework for building amazing enterprise web and mobile applications. Resources Documentation Tutorial ZK Essential

ZK 339 Sep 8, 2021
Play Framework

Play Framework - The High Velocity Web Framework The Play Framework combines productivity and performance making it easy to build scalable web applica

Play Framework 12k Sep 8, 2021
An Intuitive, Lightweight, High Performance Full Stack Java Web Framework.

mangoo I/O mangoo I/O is a Modern, Intuitive, Lightweight, High Performance Full Stack Java Web Framework. It is a classic MVC-Framework. The foundati

Sven Kubiak 52 Aug 30, 2021
Spring Boot

Spring Boot Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinion

Spring 57.1k Sep 15, 2021
Firefly is an asynchronous web framework for rapid development of high-performance web application.

What is Firefly? Firefly framework is an asynchronous Java web framework. It helps you create a web application Easy and Quickly. It provides asynchro

Alvin Qiu 279 Sep 15, 2021
Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks

Welcome to Atmosphere: The Event Driven Framework supporting WebSocket and HTTP The Atmosphere Framework contains client and server side components fo

Atmosphere Framework 3.5k Sep 8, 2021
True Object-Oriented Java Web Framework

Project architect: @paulodamaso Takes is a true object-oriented and immutable Java8 web development framework. Its key benefits, comparing to all othe

Yegor Bugayenko 689 Sep 10, 2021
This is a Playwright Java Framework written in POM

Playwright Java Framework Main Objective of this Framework is to Build an Automation Framework that can be scalable, Easily Configurable and Ready to

AutoInfra 4 Aug 18, 2021
:rocket: Lightning fast and elegant mvc framework for Java8

Based on Java8 + Netty4 to create a lightweight, high-performance, simple and elegant Web framework ?? Spend 1 hour to learn it to do something intere

Blade Framework 5.5k Sep 4, 2021
:rocket: Lightning fast and elegant mvc framework for Java8

Based on Java8 + Netty4 to create a lightweight, high-performance, simple and elegant Web framework ?? Spend 1 hour to learn it to do something intere

Blade Framework 5.5k Sep 7, 2021
An evolving set of open source web components for building mobile and desktop web applications in modern browsers.

Vaadin components Vaadin components is an evolving set of high-quality user interface web components commonly needed in modern mobile and desktop busi

Vaadin 460 Sep 16, 2021
DEPRECATED: use https://github.com/jhipster/jhipster-bom instead

JHipster BOM and server-side library - DEPRECATED Full documentation and information is available on our website at https://www.jhipster.tech/ This pr

JHipster 402 Sep 1, 2021
Scalable, easily deployable Hello World designed for enterprise

HelloWorldEnterprise Scalable, easily deployable Hello World designed for enterprise. Features Built to work with Maven (hand-coded 1000k lines of XML

abi 4 May 10, 2021
Lean & powerful HTTP apps

What is Ratpack? Ratpack is a simple, capable, toolkit for creating high performance web applications. Ratpack is built on Java and the Netty event-dr

Ratpack 1.9k Sep 10, 2021
an awesome automation test framework

PnxTest PnxTest is a Java-based test automation framework that unites all testing layers: Mobile applications, WEB applications, REST services. Due to

nicolas chen 19 Aug 31, 2021
Micro Java Web Framework

Micro Java Web Framework It's an open source (Apache License) micro web framework in Java, with minimal dependencies and a quick learning curve. The g

Pippo 758 Sep 14, 2021
Apache Wicket - Component-based Java web framework

What is Apache Wicket? Apache Wicket is an open source, java, component based, web application framework. With proper mark-up/logic separation, a POJO

The Apache Software Foundation 582 Sep 14, 2021