Giter Club home page Giter Club logo

bookstore-flow-ee's Introduction

Bookstore App Starter for Vaadin Flow / Java EE

A project example for a Vaadin application that requires a Servlet 6 container to run. The UI is built mostly with Java only.

Vaadin 24 supports Servlet 6 and Jakarta EE 10. This demo app demonstrates many use cases with Java EE and CDI such as

  • How to use dependency injection and inversion of control
  • How to apply model view presenter architecture in Vaadin app using CDI
  • How to use Vaadin scopes when beans.xml has bean-discovery-mode="annotated"
  • How to use EAR packaging for production
  • How to use WAR packaging for development

Other useful Vaadin tips demoed

These tips are not specific to CDI or JavaEE

  • How to build custom app layout when not using AppLayout component
  • How to build CRUD view without using Crud component
  • How to use Dialog as Offcanvas style modal view
  • How to highlight changed fields in the Form
  • How to use CustomI18NProvider with multiple supported languages
  • How to persist chosen language in a cookie
  • How to use localized error messages with JSR-303 and BeanValidationBinder
  • How to use bean level validator
  • How to implement caching data provider when backend is slow
  • How to use warning colors with Button and ConfirmDialog
  • How to create responsive design

Prerequisites

The project can be imported into the IDE of your choice, with Java 17 installed, as a Maven project.

Project Structure

The project consists of the following three modules:

  • parent project: common metadata and configuration
  • bookstore-starter-flow-ui: main application module that includes views (war)
  • bookstore-starter-flow-my-component: sub module for custom components (jar)
  • bookstore-starter-flow-backend: POJO classes and mock services being used in the ui (jar)
  • bookstore-starter-flow-it: TestBench test examples (ToDo: update to work)
  • bookstore-starter-flow-ear: EAR packaging

Workflow

Development version as WAR

To compile the entire project, run "mvn install" in the parent project.

Production version as EAR

To compile the entire project, run "mvn install" in the parent project.

Other basic workflow steps:

  • getting started
  • compiling the whole project
    • run mvn clean install -Production in parent project
  • running in production mode
  • creating a production mode war
    • run mvn package -Pproduction ear module
  • running in production mode
    • production mode is used by default

Branching information:

  • v24 the latest version of the starter, using the latest platform version

bookstore-flow-ee's People

Contributors

alvarezguille avatar amahdy avatar artur- avatar benwilsoni avatar bogdanudrescu avatar caalador avatar dependabot[bot] avatar legioth avatar manolo avatar mehdi-vaadin avatar mikotin avatar pekam avatar pleku avatar someonetoignore avatar tatulund avatar ujoni avatar vaadin-bot avatar zhesun88 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.