From 432be6d43b61e663bf6719d6d9319abe3463a4df Mon Sep 17 00:00:00 2001 From: Martin Vysny Date: Fri, 5 May 2023 07:51:54 +0300 Subject: [PATCH] Add support for Shepherd (#6) * vaadin v bump * pom.xml: remove unused deps * add vaadin-boot * Fix vaadin-boot configuration * Fix maven run configuration * add github actions * Maven needs to be run with -Dvaadin.webpackForFrontendBuild=true * Add missing validation library * Mark com.vaadin:vaadin dependency properly as optional * Initial impl of Dockerfile * Dockerfile * Dockerfile: fix missing ARG clause --- .github/workflows/maven.yml | 29 ++ .gitignore | 2 + Dockerfile | 46 ++ README.md | 3 +- frontend/index.html | 23 + package.json | 457 +++++++++--------- pom.xml | 46 +- .../java/com/example/application/Main.java | 21 + src/test/resources/webapp/ROOT | 0 tsconfig.json | 20 +- 10 files changed, 391 insertions(+), 256 deletions(-) create mode 100644 .github/workflows/maven.yml create mode 100644 Dockerfile create mode 100644 frontend/index.html create mode 100644 src/test/java/com/example/application/Main.java create mode 100644 src/test/resources/webapp/ROOT diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000..053b649 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,29 @@ +name: Maven + +on: [push, pull_request] + +jobs: + build: + + strategy: + matrix: + os: [ubuntu-latest] + java: [11] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK ${{ matrix.java }} + uses: actions/setup-java@v2 + with: + java-version: ${{ matrix.java }} + distribution: 'temurin' + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: | + ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml', '.mvn/wrapper/maven-wrapper.properties') }} + - name: Build with Maven + run: ./mvnw -C -B -e -V clean package -Dvaadin.webpackForFrontendBuild=true diff --git a/.gitignore b/.gitignore index 7e3df18..6eb1ccb 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ drivers/ # Error screenshots generated by TestBench for failed integration tests error-screenshots/ webpack.generated.js +frontend/generated +package-lock.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b195009 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,46 @@ +# Allows you to run this addon's app easily as a docker container. +# See README.md for more details. +# +# 1. Build the image with: docker build --no-cache -t test/breeze-theme:latest . +# 2. Run the image with: docker run --rm -ti -p8080:8080 test/breeze-theme +# +# Uses Docker Multi-stage builds: https://docs.docker.com/build/building/multi-stage/ + +# The "Build" stage. Copies the entire project into the container, into the /app/ folder, and builds it. +# The app is actually packaged in src/test/java, so we need to run couple of specialized steps. +FROM eclipse-temurin:17 AS BUILD +COPY . /app/ +WORKDIR /app/ +# 1. Need to copy all routes to src/main/java otherwise Vaadin plugin won't include JS files into webpack build for all components. +# Workaround for https://github.com/vaadin/flow/issues/14732 +RUN cp -r src/test/java/* src/main/java/ +# 2. Turn all test dependencies into compile deps, so that test files copied to src/main/java/ are compilable. +RUN sed -i 's_test__g' pom.xml +# 3. Finally, build the app +ARG offlinekey +ENV VAADIN_OFFLINE_KEY=$offlinekey +RUN ./mvnw -C clean package -Pproduction -Dvaadin.webpackForFrontendBuild=true -DskipTests +# Prepare a folder with dependencies +RUN ./mvnw dependency:copy-dependencies -DoutputDirectory=target/deps + +# At this point, we have the app as follows: +# 1. All jar deps are at /app/target/deps/*.jar +# 2. We also need to add /app/target/classes/ and /app/target/test-classes/ onto classpath, to include the app itself. + + +# The "Run" stage. Start with a clean image, and copy over just the app itself, omitting gradle, npm and any intermediate build files. +FROM eclipse-temurin:17 +COPY --from=BUILD /app/target/deps /app/ +COPY --from=BUILD /app/target/classes /app/classes +COPY --from=BUILD /app/target/test-classes /app/test-classes +WORKDIR /app/ +RUN ls -la +SHELL ["/bin/bash", "-c"] +RUN echo $'#!/bin/bash\n\ +set -e -o pipefail\n\ +CP=`ls *.jar|tr \'\\n\' \':\'`\n\ +java -cp "classes:test-classes:$CP" com.example.application.Main' >/app/run +RUN chmod a+x /app/run +EXPOSE 8080 +ENTRYPOINT ./run + diff --git a/README.md b/README.md index 7fb9c5b..62bcac0 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ You can still make your own changes on top in the applications theme. ## Running the application -To run the project during development, run `mvn jetty:run` +To run the project during development, run the `Main.java` class from your IDE. Alternatively, +run `mvn exec:java -Dvaadin.webpackForFrontendBuild=true`. ## Cutting releases diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..d36e593 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + +
+ + diff --git a/package.json b/package.json index 5211497..e07a550 100644 --- a/package.json +++ b/package.json @@ -9,118 +9,119 @@ "@polymer/iron-meta": "3.0.1", "@polymer/iron-resizable-behavior": "3.0.1", "@polymer/polymer": "3.5.1", - "@vaadin/accordion": "23.2.8", - "@vaadin/app-layout": "23.2.8", - "@vaadin/avatar": "23.2.8", - "@vaadin/avatar-group": "23.2.8", - "@vaadin/board": "23.2.8", - "@vaadin/bundles": "23.2.8", - "@vaadin/button": "23.2.8", - "@vaadin/charts": "23.2.8", - "@vaadin/checkbox": "23.2.8", - "@vaadin/checkbox-group": "23.2.8", - "@vaadin/combo-box": "23.2.8", - "@vaadin/common-frontend": "0.0.17", - "@vaadin/component-base": "23.2.8", - "@vaadin/confirm-dialog": "23.2.8", - "@vaadin/context-menu": "23.2.8", - "@vaadin/cookie-consent": "23.2.8", - "@vaadin/crud": "23.2.8", - "@vaadin/custom-field": "23.2.8", - "@vaadin/date-picker": "23.2.8", - "@vaadin/date-time-picker": "23.2.8", - "@vaadin/details": "23.2.8", - "@vaadin/dialog": "23.2.8", - "@vaadin/email-field": "23.2.8", - "@vaadin/field-base": "23.2.8", - "@vaadin/field-highlighter": "23.2.8", - "@vaadin/flow-frontend": "./target/flow-frontend", - "@vaadin/form-layout": "23.2.8", - "@vaadin/grid": "23.2.8", - "@vaadin/grid-pro": "23.2.8", - "@vaadin/horizontal-layout": "23.2.8", - "@vaadin/icon": "23.2.8", - "@vaadin/icons": "23.2.8", - "@vaadin/input-container": "23.2.8", - "@vaadin/integer-field": "23.2.8", - "@vaadin/item": "23.2.8", - "@vaadin/list-box": "23.2.8", - "@vaadin/lit-renderer": "23.2.8", - "@vaadin/login": "23.2.8", - "@vaadin/map": "23.2.8", - "@vaadin/menu-bar": "23.2.8", - "@vaadin/message-input": "23.2.8", - "@vaadin/message-list": "23.2.8", - "@vaadin/multi-select-combo-box": "23.2.8", - "@vaadin/notification": "23.2.8", - "@vaadin/number-field": "23.2.8", - "@vaadin/password-field": "23.2.8", - "@vaadin/polymer-legacy-adapter": "23.2.8", - "@vaadin/progress-bar": "23.2.8", - "@vaadin/radio-group": "23.2.8", - "@vaadin/rich-text-editor": "23.2.8", - "@vaadin/router": "1.7.4", - "@vaadin/scroller": "23.2.8", - "@vaadin/select": "23.2.8", - "@vaadin/split-layout": "23.2.8", - "@vaadin/tabs": "23.2.8", - "@vaadin/text-area": "23.2.8", - "@vaadin/text-field": "23.2.8", - "@vaadin/time-picker": "23.2.8", - "@vaadin/upload": "23.2.8", - "@vaadin/vaadin-accordion": "23.2.8", - "@vaadin/vaadin-app-layout": "23.2.8", - "@vaadin/vaadin-avatar": "23.2.8", - "@vaadin/vaadin-board": "23.2.8", - "@vaadin/vaadin-button": "23.2.8", - "@vaadin/vaadin-charts": "23.2.8", - "@vaadin/vaadin-checkbox": "23.2.8", - "@vaadin/vaadin-combo-box": "23.2.8", - "@vaadin/vaadin-confirm-dialog": "23.2.8", - "@vaadin/vaadin-context-menu": "23.2.8", - "@vaadin/vaadin-cookie-consent": "23.2.8", - "@vaadin/vaadin-crud": "23.2.8", - "@vaadin/vaadin-custom-field": "23.2.8", - "@vaadin/vaadin-date-picker": "23.2.8", - "@vaadin/vaadin-date-time-picker": "23.2.8", - "@vaadin/vaadin-details": "23.2.8", - "@vaadin/vaadin-development-mode-detector": "2.0.5", - "@vaadin/vaadin-dialog": "23.2.8", - "@vaadin/vaadin-form-layout": "23.2.8", - "@vaadin/vaadin-grid": "23.2.8", - "@vaadin/vaadin-grid-pro": "23.2.8", - "@vaadin/vaadin-icon": "23.2.8", - "@vaadin/vaadin-icons": "23.2.8", - "@vaadin/vaadin-item": "23.2.8", - "@vaadin/vaadin-list-box": "23.2.8", - "@vaadin/vaadin-list-mixin": "23.2.8", - "@vaadin/vaadin-login": "23.2.8", - "@vaadin/vaadin-lumo-styles": "23.2.8", - "@vaadin/vaadin-material-styles": "23.2.8", - "@vaadin/vaadin-menu-bar": "23.2.8", - "@vaadin/vaadin-messages": "23.2.8", - "@vaadin/vaadin-notification": "23.2.8", - "@vaadin/vaadin-ordered-layout": "23.2.8", - "@vaadin/vaadin-overlay": "23.2.8", - "@vaadin/vaadin-progress-bar": "23.2.8", - "@vaadin/vaadin-radio-button": "23.2.8", - "@vaadin/vaadin-rich-text-editor": "23.2.8", - "@vaadin/vaadin-select": "23.2.8", - "@vaadin/vaadin-split-layout": "23.2.8", - "@vaadin/vaadin-tabs": "23.2.8", - "@vaadin/vaadin-template-renderer": "23.2.8", - "@vaadin/vaadin-text-field": "23.2.8", - "@vaadin/vaadin-themable-mixin": "23.2.8", - "@vaadin/vaadin-time-picker": "23.2.8", - "@vaadin/vaadin-upload": "23.2.8", + "@vaadin/accordion": "23.3.11", + "@vaadin/app-layout": "23.3.11", + "@vaadin/avatar": "23.3.11", + "@vaadin/avatar-group": "23.3.11", + "@vaadin/board": "23.3.11", + "@vaadin/bundles": "23.3.11", + "@vaadin/button": "23.3.11", + "@vaadin/charts": "23.3.11", + "@vaadin/checkbox": "23.3.11", + "@vaadin/checkbox-group": "23.3.11", + "@vaadin/combo-box": "23.3.11", + "@vaadin/common-frontend": "0.0.18", + "@vaadin/component-base": "23.3.11", + "@vaadin/confirm-dialog": "23.3.11", + "@vaadin/context-menu": "23.3.11", + "@vaadin/cookie-consent": "23.3.11", + "@vaadin/crud": "23.3.11", + "@vaadin/custom-field": "23.3.11", + "@vaadin/date-picker": "23.3.11", + "@vaadin/date-time-picker": "23.3.11", + "@vaadin/details": "23.3.11", + "@vaadin/dialog": "23.3.11", + "@vaadin/email-field": "23.3.11", + "@vaadin/field-base": "23.3.11", + "@vaadin/field-highlighter": "23.3.11", + "@vaadin/form-layout": "23.3.11", + "@vaadin/grid": "23.3.11", + "@vaadin/grid-pro": "23.3.11", + "@vaadin/horizontal-layout": "23.3.11", + "@vaadin/icon": "23.3.11", + "@vaadin/icons": "23.3.11", + "@vaadin/input-container": "23.3.11", + "@vaadin/integer-field": "23.3.11", + "@vaadin/item": "23.3.11", + "@vaadin/list-box": "23.3.11", + "@vaadin/lit-renderer": "23.3.11", + "@vaadin/login": "23.3.11", + "@vaadin/map": "23.3.11", + "@vaadin/menu-bar": "23.3.11", + "@vaadin/message-input": "23.3.11", + "@vaadin/message-list": "23.3.11", + "@vaadin/multi-select-combo-box": "23.3.11", + "@vaadin/notification": "23.3.11", + "@vaadin/number-field": "23.3.11", + "@vaadin/password-field": "23.3.11", + "@vaadin/polymer-legacy-adapter": "23.3.11", + "@vaadin/progress-bar": "23.3.11", + "@vaadin/radio-group": "23.3.11", + "@vaadin/rich-text-editor": "23.3.11", + "@vaadin/router": "1.7.5", + "@vaadin/scroller": "23.3.11", + "@vaadin/select": "23.3.11", + "@vaadin/split-layout": "23.3.11", + "@vaadin/tabs": "23.3.11", + "@vaadin/tabsheet": "23.3.11", + "@vaadin/text-area": "23.3.11", + "@vaadin/text-field": "23.3.11", + "@vaadin/time-picker": "23.3.11", + "@vaadin/tooltip": "23.3.11", + "@vaadin/upload": "23.3.11", + "@vaadin/vaadin-accordion": "23.3.11", + "@vaadin/vaadin-app-layout": "23.3.11", + "@vaadin/vaadin-avatar": "23.3.11", + "@vaadin/vaadin-board": "23.3.11", + "@vaadin/vaadin-button": "23.3.11", + "@vaadin/vaadin-charts": "23.3.11", + "@vaadin/vaadin-checkbox": "23.3.11", + "@vaadin/vaadin-combo-box": "23.3.11", + "@vaadin/vaadin-confirm-dialog": "23.3.11", + "@vaadin/vaadin-context-menu": "23.3.11", + "@vaadin/vaadin-cookie-consent": "23.3.11", + "@vaadin/vaadin-crud": "23.3.11", + "@vaadin/vaadin-custom-field": "23.3.11", + "@vaadin/vaadin-date-picker": "23.3.11", + "@vaadin/vaadin-date-time-picker": "23.3.11", + "@vaadin/vaadin-details": "23.3.11", + "@vaadin/vaadin-development-mode-detector": "2.0.6", + "@vaadin/vaadin-dialog": "23.3.11", + "@vaadin/vaadin-form-layout": "23.3.11", + "@vaadin/vaadin-grid": "23.3.11", + "@vaadin/vaadin-grid-pro": "23.3.11", + "@vaadin/vaadin-icon": "23.3.11", + "@vaadin/vaadin-icons": "23.3.11", + "@vaadin/vaadin-item": "23.3.11", + "@vaadin/vaadin-list-box": "23.3.11", + "@vaadin/vaadin-list-mixin": "23.3.11", + "@vaadin/vaadin-login": "23.3.11", + "@vaadin/vaadin-lumo-styles": "23.3.11", + "@vaadin/vaadin-material-styles": "23.3.11", + "@vaadin/vaadin-menu-bar": "23.3.11", + "@vaadin/vaadin-messages": "23.3.11", + "@vaadin/vaadin-notification": "23.3.11", + "@vaadin/vaadin-ordered-layout": "23.3.11", + "@vaadin/vaadin-overlay": "23.3.11", + "@vaadin/vaadin-progress-bar": "23.3.11", + "@vaadin/vaadin-radio-button": "23.3.11", + "@vaadin/vaadin-rich-text-editor": "23.3.11", + "@vaadin/vaadin-select": "23.3.11", + "@vaadin/vaadin-split-layout": "23.3.11", + "@vaadin/vaadin-tabs": "23.3.11", + "@vaadin/vaadin-template-renderer": "23.3.11", + "@vaadin/vaadin-text-field": "23.3.11", + "@vaadin/vaadin-themable-mixin": "23.3.11", + "@vaadin/vaadin-time-picker": "23.3.11", + "@vaadin/vaadin-upload": "23.3.11", "@vaadin/vaadin-usage-statistics": "2.1.2", - "@vaadin/vaadin-virtual-list": "23.2.8", - "@vaadin/vertical-layout": "23.2.8", - "@vaadin/virtual-list": "23.2.8", + "@vaadin/vaadin-virtual-list": "23.3.11", + "@vaadin/vertical-layout": "23.3.11", + "@vaadin/virtual-list": "23.3.11", "construct-style-sheets-polyfill": "3.1.0", "date-fns": "2.29.3", - "lit": "2.3.0", - "proj4": "2.8.0" + "lit": "2.6.1", + "proj4": "2.8.1" }, "devDependencies": { "async": "3.2.2", @@ -135,15 +136,15 @@ "glob": "7.2.3", "html-webpack-plugin": "4.5.1", "lit-css-loader": "0.1.0", - "loader-utils": "2.0.0", + "loader-utils": "2.0.4", "strip-css-comments": "5.0.0", - "typescript": "4.7.4", + "typescript": "4.9.5", "webpack": "4.46.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.10.0", "webpack-merge": "4.2.2", - "workbox-core": "6.5.0", - "workbox-precaching": "6.5.0", + "workbox-core": "6.5.4", + "workbox-precaching": "6.5.4", "workbox-webpack-plugin": "6.5.0" }, "overrides": { @@ -265,6 +266,8 @@ "@polymer/polymer": "$@polymer/polymer", "proj4": "$proj4", "date-fns": "$date-fns", + "@vaadin/tabsheet": "$@vaadin/tabsheet", + "@vaadin/tooltip": "$@vaadin/tooltip", "chokidar": "$chokidar" }, "vaadin": { @@ -275,117 +278,119 @@ "@polymer/iron-meta": "3.0.1", "@polymer/iron-resizable-behavior": "3.0.1", "@polymer/polymer": "3.5.1", - "@vaadin/accordion": "23.2.8", - "@vaadin/app-layout": "23.2.8", - "@vaadin/avatar": "23.2.8", - "@vaadin/avatar-group": "23.2.8", - "@vaadin/board": "23.2.8", - "@vaadin/bundles": "23.2.8", - "@vaadin/button": "23.2.8", - "@vaadin/charts": "23.2.8", - "@vaadin/checkbox": "23.2.8", - "@vaadin/checkbox-group": "23.2.8", - "@vaadin/combo-box": "23.2.8", - "@vaadin/common-frontend": "0.0.17", - "@vaadin/component-base": "23.2.8", - "@vaadin/confirm-dialog": "23.2.8", - "@vaadin/context-menu": "23.2.8", - "@vaadin/cookie-consent": "23.2.8", - "@vaadin/crud": "23.2.8", - "@vaadin/custom-field": "23.2.8", - "@vaadin/date-picker": "23.2.8", - "@vaadin/date-time-picker": "23.2.8", - "@vaadin/details": "23.2.8", - "@vaadin/dialog": "23.2.8", - "@vaadin/email-field": "23.2.8", - "@vaadin/field-base": "23.2.8", - "@vaadin/field-highlighter": "23.2.8", - "@vaadin/form-layout": "23.2.8", - "@vaadin/grid": "23.2.8", - "@vaadin/grid-pro": "23.2.8", - "@vaadin/horizontal-layout": "23.2.8", - "@vaadin/icon": "23.2.8", - "@vaadin/icons": "23.2.8", - "@vaadin/input-container": "23.2.8", - "@vaadin/integer-field": "23.2.8", - "@vaadin/item": "23.2.8", - "@vaadin/list-box": "23.2.8", - "@vaadin/lit-renderer": "23.2.8", - "@vaadin/login": "23.2.8", - "@vaadin/map": "23.2.8", - "@vaadin/menu-bar": "23.2.8", - "@vaadin/message-input": "23.2.8", - "@vaadin/message-list": "23.2.8", - "@vaadin/multi-select-combo-box": "23.2.8", - "@vaadin/notification": "23.2.8", - "@vaadin/number-field": "23.2.8", - "@vaadin/password-field": "23.2.8", - "@vaadin/polymer-legacy-adapter": "23.2.8", - "@vaadin/progress-bar": "23.2.8", - "@vaadin/radio-group": "23.2.8", - "@vaadin/rich-text-editor": "23.2.8", - "@vaadin/router": "1.7.4", - "@vaadin/scroller": "23.2.8", - "@vaadin/select": "23.2.8", - "@vaadin/split-layout": "23.2.8", - "@vaadin/tabs": "23.2.8", - "@vaadin/text-area": "23.2.8", - "@vaadin/text-field": "23.2.8", - "@vaadin/time-picker": "23.2.8", - "@vaadin/upload": "23.2.8", - "@vaadin/vaadin-accordion": "23.2.8", - "@vaadin/vaadin-app-layout": "23.2.8", - "@vaadin/vaadin-avatar": "23.2.8", - "@vaadin/vaadin-board": "23.2.8", - "@vaadin/vaadin-button": "23.2.8", - "@vaadin/vaadin-charts": "23.2.8", - "@vaadin/vaadin-checkbox": "23.2.8", - "@vaadin/vaadin-combo-box": "23.2.8", - "@vaadin/vaadin-confirm-dialog": "23.2.8", - "@vaadin/vaadin-context-menu": "23.2.8", - "@vaadin/vaadin-cookie-consent": "23.2.8", - "@vaadin/vaadin-crud": "23.2.8", - "@vaadin/vaadin-custom-field": "23.2.8", - "@vaadin/vaadin-date-picker": "23.2.8", - "@vaadin/vaadin-date-time-picker": "23.2.8", - "@vaadin/vaadin-details": "23.2.8", - "@vaadin/vaadin-development-mode-detector": "2.0.5", - "@vaadin/vaadin-dialog": "23.2.8", - "@vaadin/vaadin-form-layout": "23.2.8", - "@vaadin/vaadin-grid": "23.2.8", - "@vaadin/vaadin-grid-pro": "23.2.8", - "@vaadin/vaadin-icon": "23.2.8", - "@vaadin/vaadin-icons": "23.2.8", - "@vaadin/vaadin-item": "23.2.8", - "@vaadin/vaadin-list-box": "23.2.8", - "@vaadin/vaadin-list-mixin": "23.2.8", - "@vaadin/vaadin-login": "23.2.8", - "@vaadin/vaadin-lumo-styles": "23.2.8", - "@vaadin/vaadin-material-styles": "23.2.8", - "@vaadin/vaadin-menu-bar": "23.2.8", - "@vaadin/vaadin-messages": "23.2.8", - "@vaadin/vaadin-notification": "23.2.8", - "@vaadin/vaadin-ordered-layout": "23.2.8", - "@vaadin/vaadin-overlay": "23.2.8", - "@vaadin/vaadin-progress-bar": "23.2.8", - "@vaadin/vaadin-radio-button": "23.2.8", - "@vaadin/vaadin-rich-text-editor": "23.2.8", - "@vaadin/vaadin-select": "23.2.8", - "@vaadin/vaadin-split-layout": "23.2.8", - "@vaadin/vaadin-tabs": "23.2.8", - "@vaadin/vaadin-template-renderer": "23.2.8", - "@vaadin/vaadin-text-field": "23.2.8", - "@vaadin/vaadin-themable-mixin": "23.2.8", - "@vaadin/vaadin-time-picker": "23.2.8", - "@vaadin/vaadin-upload": "23.2.8", + "@vaadin/accordion": "23.3.11", + "@vaadin/app-layout": "23.3.11", + "@vaadin/avatar": "23.3.11", + "@vaadin/avatar-group": "23.3.11", + "@vaadin/board": "23.3.11", + "@vaadin/bundles": "23.3.11", + "@vaadin/button": "23.3.11", + "@vaadin/charts": "23.3.11", + "@vaadin/checkbox": "23.3.11", + "@vaadin/checkbox-group": "23.3.11", + "@vaadin/combo-box": "23.3.11", + "@vaadin/common-frontend": "0.0.18", + "@vaadin/component-base": "23.3.11", + "@vaadin/confirm-dialog": "23.3.11", + "@vaadin/context-menu": "23.3.11", + "@vaadin/cookie-consent": "23.3.11", + "@vaadin/crud": "23.3.11", + "@vaadin/custom-field": "23.3.11", + "@vaadin/date-picker": "23.3.11", + "@vaadin/date-time-picker": "23.3.11", + "@vaadin/details": "23.3.11", + "@vaadin/dialog": "23.3.11", + "@vaadin/email-field": "23.3.11", + "@vaadin/field-base": "23.3.11", + "@vaadin/field-highlighter": "23.3.11", + "@vaadin/form-layout": "23.3.11", + "@vaadin/grid": "23.3.11", + "@vaadin/grid-pro": "23.3.11", + "@vaadin/horizontal-layout": "23.3.11", + "@vaadin/icon": "23.3.11", + "@vaadin/icons": "23.3.11", + "@vaadin/input-container": "23.3.11", + "@vaadin/integer-field": "23.3.11", + "@vaadin/item": "23.3.11", + "@vaadin/list-box": "23.3.11", + "@vaadin/lit-renderer": "23.3.11", + "@vaadin/login": "23.3.11", + "@vaadin/map": "23.3.11", + "@vaadin/menu-bar": "23.3.11", + "@vaadin/message-input": "23.3.11", + "@vaadin/message-list": "23.3.11", + "@vaadin/multi-select-combo-box": "23.3.11", + "@vaadin/notification": "23.3.11", + "@vaadin/number-field": "23.3.11", + "@vaadin/password-field": "23.3.11", + "@vaadin/polymer-legacy-adapter": "23.3.11", + "@vaadin/progress-bar": "23.3.11", + "@vaadin/radio-group": "23.3.11", + "@vaadin/rich-text-editor": "23.3.11", + "@vaadin/router": "1.7.5", + "@vaadin/scroller": "23.3.11", + "@vaadin/select": "23.3.11", + "@vaadin/split-layout": "23.3.11", + "@vaadin/tabs": "23.3.11", + "@vaadin/tabsheet": "23.3.11", + "@vaadin/text-area": "23.3.11", + "@vaadin/text-field": "23.3.11", + "@vaadin/time-picker": "23.3.11", + "@vaadin/tooltip": "23.3.11", + "@vaadin/upload": "23.3.11", + "@vaadin/vaadin-accordion": "23.3.11", + "@vaadin/vaadin-app-layout": "23.3.11", + "@vaadin/vaadin-avatar": "23.3.11", + "@vaadin/vaadin-board": "23.3.11", + "@vaadin/vaadin-button": "23.3.11", + "@vaadin/vaadin-charts": "23.3.11", + "@vaadin/vaadin-checkbox": "23.3.11", + "@vaadin/vaadin-combo-box": "23.3.11", + "@vaadin/vaadin-confirm-dialog": "23.3.11", + "@vaadin/vaadin-context-menu": "23.3.11", + "@vaadin/vaadin-cookie-consent": "23.3.11", + "@vaadin/vaadin-crud": "23.3.11", + "@vaadin/vaadin-custom-field": "23.3.11", + "@vaadin/vaadin-date-picker": "23.3.11", + "@vaadin/vaadin-date-time-picker": "23.3.11", + "@vaadin/vaadin-details": "23.3.11", + "@vaadin/vaadin-development-mode-detector": "2.0.6", + "@vaadin/vaadin-dialog": "23.3.11", + "@vaadin/vaadin-form-layout": "23.3.11", + "@vaadin/vaadin-grid": "23.3.11", + "@vaadin/vaadin-grid-pro": "23.3.11", + "@vaadin/vaadin-icon": "23.3.11", + "@vaadin/vaadin-icons": "23.3.11", + "@vaadin/vaadin-item": "23.3.11", + "@vaadin/vaadin-list-box": "23.3.11", + "@vaadin/vaadin-list-mixin": "23.3.11", + "@vaadin/vaadin-login": "23.3.11", + "@vaadin/vaadin-lumo-styles": "23.3.11", + "@vaadin/vaadin-material-styles": "23.3.11", + "@vaadin/vaadin-menu-bar": "23.3.11", + "@vaadin/vaadin-messages": "23.3.11", + "@vaadin/vaadin-notification": "23.3.11", + "@vaadin/vaadin-ordered-layout": "23.3.11", + "@vaadin/vaadin-overlay": "23.3.11", + "@vaadin/vaadin-progress-bar": "23.3.11", + "@vaadin/vaadin-radio-button": "23.3.11", + "@vaadin/vaadin-rich-text-editor": "23.3.11", + "@vaadin/vaadin-select": "23.3.11", + "@vaadin/vaadin-split-layout": "23.3.11", + "@vaadin/vaadin-tabs": "23.3.11", + "@vaadin/vaadin-template-renderer": "23.3.11", + "@vaadin/vaadin-text-field": "23.3.11", + "@vaadin/vaadin-themable-mixin": "23.3.11", + "@vaadin/vaadin-time-picker": "23.3.11", + "@vaadin/vaadin-upload": "23.3.11", "@vaadin/vaadin-usage-statistics": "2.1.2", - "@vaadin/vaadin-virtual-list": "23.2.8", - "@vaadin/vertical-layout": "23.2.8", - "@vaadin/virtual-list": "23.2.8", + "@vaadin/vaadin-virtual-list": "23.3.11", + "@vaadin/vertical-layout": "23.3.11", + "@vaadin/virtual-list": "23.3.11", "construct-style-sheets-polyfill": "3.1.0", "date-fns": "2.29.3", - "lit": "2.3.0", - "proj4": "2.8.0" + "lit": "2.6.1", + "proj4": "2.8.1" }, "devDependencies": { "async": "3.2.2", @@ -400,17 +405,17 @@ "glob": "7.2.3", "html-webpack-plugin": "4.5.1", "lit-css-loader": "0.1.0", - "loader-utils": "2.0.0", + "loader-utils": "2.0.4", "strip-css-comments": "5.0.0", - "typescript": "4.7.4", + "typescript": "4.9.5", "webpack": "4.46.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.10.0", "webpack-merge": "4.2.2", - "workbox-core": "6.5.0", - "workbox-precaching": "6.5.0", + "workbox-core": "6.5.4", + "workbox-precaching": "6.5.4", "workbox-webpack-plugin": "6.5.0" }, - "hash": "508809d0a57a88f66296f00d5ed0be8365c3333f69fb2eb11190765446b753f8" + "hash": "fafa2c5b5155024eed70b8fa479a9cde40d99b43b8883760eafe98e0bbbaaf52" } } diff --git a/pom.xml b/pom.xml index 960a71b..6d148fc 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ Breeze is build on top of Lumo and heavily inspired by visual style of TailwindUI. It can be used in light or dark mode and contains a custom palette for Vaadin Charts. - 23.2.8 + 23.3.12 11 11 UTF-8 @@ -91,25 +91,25 @@ com.vaadin vaadin - optional + true org.slf4j slf4j-simple test - - io.github.bonigarcia - webdrivermanager - 3.8.1 - test - org.hibernate hibernate-validator 6.2.2.Final test + + org.glassfish + javax.el + 3.0.1-b11 + test + com.vaadin exampledata @@ -117,15 +117,15 @@ test - org.vaadin.artur - a-vaadin-helper - 1.9.0 + com.github.mvysny.vaadin-boot + vaadin-boot + 10.5 test - jetty:run + exec:java org.apache.maven.plugins @@ -149,17 +149,19 @@ - org.eclipse.jetty - jetty-maven-plugin - 9.4.28.v20200408 + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + + + java + + + - -1 - - true - - jar - + com.example.application.Main + test diff --git a/src/test/java/com/example/application/Main.java b/src/test/java/com/example/application/Main.java new file mode 100644 index 0000000..b62c9b1 --- /dev/null +++ b/src/test/java/com/example/application/Main.java @@ -0,0 +1,21 @@ +package com.example.application; + +import com.github.mvysny.vaadinboot.VaadinBoot; +import org.eclipse.jetty.webapp.WebAppContext; + +import java.io.IOException; + +public class Main { + public static void main(String[] args) throws Exception { + System.setProperty("vaadin.webpackForFrontendBuild", "true"); + new VaadinBoot() { + @Override + protected WebAppContext createWebAppContext() throws IOException { + final WebAppContext context = super.createWebAppContext(); + // see https://github.com/mvysny/vaadin-boot/issues/15 for more details + context.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", ".*\\.jar|.*/classes/.*|.*/test-classes/.*"); + return context; + } + }.withArgs(args).run(); + } +} diff --git a/src/test/resources/webapp/ROOT b/src/test/resources/webapp/ROOT new file mode 100644 index 0000000..e69de29 diff --git a/tsconfig.json b/tsconfig.json index 8c8046e..ef3a7c9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,30 +4,36 @@ // You might want to change the configurations to fit your preferences // For more information about the configurations, please refer to http://www.typescriptlang.org/docs/handbook/tsconfig-json.html { + "flow_version": "23.3.4", "compilerOptions": { "sourceMap": true, + "jsx": "react-jsx", "inlineSources": true, "module": "esNext", "target": "es2019", "moduleResolution": "node", "strict": true, + "skipLibCheck": true, "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, "noImplicitAny": true, "noImplicitThis": true, - "noUnusedLocals": true, - "noUnusedParameters": true, + "noUnusedLocals": false, + "noUnusedParameters": false, "experimentalDecorators": true, + "useDefineForClassFields": false, "baseUrl": "frontend", "paths": { - "Frontend/*": [ - "*" - ] + "@vaadin/flow-frontend": ["generated/jar-resources"], + "@vaadin/flow-frontend/*": ["generated/jar-resources/*"], + "Frontend/*": ["*"] } }, "include": [ - "frontend/**/*.ts", + "frontend/**/*", "types.d.ts" ], - "exclude": [] + "exclude": [ + "frontend/generated/jar-resources/**" + ] }