Skip to content
Flow is a Java framework binding Vaadin web components to Java. This is part of Vaadin 10+.
Java JavaScript HTML Other
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update issue template (#4758) Nov 5, 2018
.settings Include initial JS dependencies in the HTML (#1232) Feb 16, 2017
build-tools Update to 2.1 rebased (#6302) Aug 22, 2019
checkstyle Update Copyright Header (#4355) Jul 5, 2018
eclipse Fix line endings from CRLF to CR. (#3059) Nov 27, 2017
flow-bom Update to 2.1 rebased (#6302) Aug 22, 2019
flow-client Update to 2.1 rebased (#6302) Aug 22, 2019
flow-components-parent Fix GitHub vulnerability warning (#6356) Aug 29, 2019
flow-data Remove extra files. (#6402) Sep 5, 2019
flow-dnd Update to 2.1 rebased (#6302) Aug 22, 2019
flow-html-components-testbench Update to 2.1 rebased (#6302) Aug 22, 2019
flow-html-components Update to 2.1 rebased (#6302) Aug 22, 2019
flow-maven-plugin Fail for non existing folders in dev mode. (#6405) Sep 6, 2019
flow-migration Add log message about non-Vaadin component and change the generated p… Aug 27, 2019
flow-osgi Update to 2.1 rebased (#6302) Aug 22, 2019
flow-push Update to 2.1 rebased (#6302) Aug 22, 2019
flow-server-compatibility-mode Update to 2.1 rebased (#6302) Aug 22, 2019
flow-server-production-mode Update to 2.1 rebased (#6302) Aug 22, 2019
flow-server Fix DomEventListener filter (and other stuff) removal (#6427) Sep 12, 2019
flow-test-generic Update to 2.1 rebased (#6302) Aug 22, 2019
flow-test-util Update to 2.1 rebased (#6302) Aug 22, 2019
flow-tests make removingShortcutCleansJavascriptEventSettingsItUsed more stable (#… Sep 16, 2019
flow-theme-integrations Update to 2.1 rebased (#6302) Aug 22, 2019
flow Update to 2.1 rebased (#6302) Aug 22, 2019
scripts Have removed instructions for running tests using the script, since t… Aug 9, 2017
.gitattributes Correct line endings of various file types (#3001) Nov 22, 2017
.gitignore Clean embedding code (#5906) Jun 14, 2019
CONTRIBUTING.md Update version to 1.1-SNAPSHOT (#4323) Jun 25, 2018
LICENSE Update LICENSE for documentation module. (#1282) Feb 28, 2017
README.md Polish Readme (#6081) Jul 16, 2019
drivers.xml Chromedriver 76 update (#6168) Aug 3, 2019
pom.xml Update to 2.1 rebased (#6302) Aug 22, 2019
settings.xml Change snapshot repository (#2958) Nov 17, 2017

README.md

Gitter

Vaadin Flow

Vaadin Flow is the Java framework of Vaadin Platform for building modern web sites that look great, perform well and make you and your users happy.

For instructions about developing web applications with Vaadin Flow, please refer to the starter packs for Vaadin 14 with Flow or the documentation.

To contribute, first refer to Contribution Guide for general instructions and requirements for contributing code to Flow.

Flow EAP discussion in Gitter IM at https://gitter.im/vaadin-flow/Lobby

Instructions on how to set up a working environment for developing the Flow project follow below.

master branch is the latest version that will at some point be released in the Vaadin platform 14.0.0. See other branches for other framework versions:

  • 1.0 branch is Vaadin 10 LTS (Flow version 1.0)
  • 1.4 branch is for Vaadin 13 (Flow version 1.4)

Setting up Eclipse to Develop Flow

Import the Project into the Workspace

  1. Do File -> Import -> General -> Existing Maven Project
  2. Select the flow folder (where you cloned the project)
  3. Ensure all projects are checked
  4. Click “finish” to complete the import
  5. Disable HTML and XML validation in the workspace to avoid validating Bower dependencies
  6. Eclipse preferences -> Validation
  7. Uncheck Build for HTML Syntax Validator
  8. Uncheck Build for XML Validator

Note that the first compilation takes a while to finish as Maven downloads dependencies used in the projects.

Compiling the Client Engine

Compile the client engine by executing the Eclipse build configuration Compile ClientEngine in flow-client/eclipse

Set up extra workspace preferences

The following preferences need to be set to keep the project consistent. You need to do this especially to be able to contribute changes to the project.

  1. Open Window -> Preferences (Windows) or Eclipse -> Preferences (Mac)
  2. Go to General -> Workspace
  3. Set Text file encoding to UTF-8
  4. Set New text file line delimiter to Unix
  5. Go to XML -> XML Files -> Editor
  6. Ensure the settings are follows:
Line width: 72
Format comments: true
Join lines: true
Insert whitespace before closing empty end-tags: true
Indent-using spaces: true
Indentation size: 4

Running tests

The unit tests for the projects can be run using

mvn test

IT tests can be run with

mvn verify

To run IT tests locally, you'll need a Testbench license and a Chrome browser installed (currently this is the only browser that IT tests are run in). If you don't have the license, it's ok, our CI system will run those tests for you after you create a pull request. Refer to the contribution guide for details.

When running IT tests locally, by default, local Chrome is used to run tests, make sure it's installed.

Building a package

The distribution package is built and installed into the local Maven repository by doing

  1. mvn install

Running SuperDevMode

Some flow internals use GWT in the client code. superDevMode allows to reload GWT changes on the fly, but it requires some setup first.

To start superDevMode do the following:

  1. Get flow source code
  2. If you are planning to launch the mode for the external application based on flow, first make sure that flow source code is of the same version as the application uses. If it's not true, either update the application dependencies or check out the corresponding flow tag and rebuild both flow and the application.
  3. Navigate to flow-client package in flow project
  4. Run mvn -Psdm clean install gwt:compile gwt:run-codeserver -DskipTests
  5. Start the application server
  6. Open the application page and use the bookmarks to control dev mode If you have no bookmarks, navigate to http://localhost:9876 to setup them.

In eclipse run .launch files from flow-client/eclipse in the order:

  1. Compile ClientEngine.launch
  2. Super Dev Mode.launch

NOTE! SuperDevMode should be compiled before the application server is launched, also, flow version should match with the application one as else the application won't be able to run SDM and you will receive the exception Can't find any GWT Modules on this page.

More info about SuperDevMode: http://www.gwtproject.org/articles/superdevmode.html

You can’t perform that action at this time.