vaadin / flow

Vaadin Flow is a Java framework binding Vaadin web components to Java. This is part of Vaadin 10+.
Apache License 2.0
610 stars 167 forks source link

missing Interface HasLabel in vaadin 14.9.x #15378

Closed MHaase70 closed 1 year ago

MHaase70 commented 1 year ago

Description of the bug

Hello,

we use vaadin 14.8.20 and would like to update to vaadin 14.9.2. The maven build no shows an Error:

cannot access com.vaadin.flow.component.HasLabel

I cannot find this class in vaadin 14.9.2, I can find other Interfaces, like HasHelper.

best reegards Martin

Expected behavior

We cannot build with maven.

Minimal reproducible example

SImple Projelt with vaadin spring boot starter and a Java Class with a NumberField

Versions

mcollovati commented 1 year ago

HasLabel mix in has been introduced in Flow 2.8. According to Vaadin 14.9.2 release notes, shipped Flow version is 2.8.1. Can you please have a look at your project dependencies and make sure that you are not forcing the 2.7.14 Flow version?

MHaase70 commented 1 year ago

Thanks for the fast answer, I use the vaadin-spring-boot-starter (14.9.2) to get all vaadin depencies. This starter pulls some vaadlin dependency in the version 2.7.14.

MHaase70 commented 1 year ago

[INFO] +- com.vaadin:vaadin-spring-boot-starter:jar:14.9.2:compile [INFO] | +- com.vaadin:vaadin-spring:jar:12.4.3:compile [INFO] | | +- com.vaadin:flow-server:jar:2.7.14:compile [INFO] | | | +- org.slf4j:slf4j-api:jar:1.7.36:compile [INFO] | | | +- com.vaadin.external.gwt:gwt-elemental:jar:2.8.2.vaadin2:compile [INFO] | | | +- commons-fileupload:commons-fileupload:jar:1.3.3:compile [INFO] | | | +- commons-io:commons-io:jar:2.11.0:compile [INFO] | | | +- org.jsoup:jsoup:jar:1.14.3:compile [INFO] | | | +- com.helger:ph-css:jar:6.1.1:compile [INFO] | | | +- com.helger:ph-commons:jar:9.1.2:compile [INFO] | | | +- net.bytebuddy:byte-buddy:jar:1.12.18:compile [INFO] | | | +- com.vaadin.external:gentyref:jar:1.2.0.vaadin1:compile [INFO] | | | +- org.apache.commons:commons-compress:jar:1.21:compile [INFO] | | | - org.apache.httpcomponents:httpclient:jar:4.5.13:compile [INFO] | | | +- org.apache.httpcomponents:httpcore:jar:4.4.15:compile [INFO] | | | - commons-codec:commons-codec:jar:1.15:compile [INFO] | | +- com.vaadin:flow-push:jar:2.7.14:compile [INFO] | | | - com.vaadin.external.atmosphere:atmosphere-runtime:jar:2.7.3.slf4jvaadin4:compile [INFO] | | +- com.vaadin:flow-client:jar:2.7.14:compile [INFO] | | +- org.springframework:spring-webmvc:jar:5.3.23:compile [INFO] | | - org.springframework:spring-websocket:jar:5.3.23:compile [INFO] | +- com.vaadin:vaadin-core:jar:14.9.2:compile [INFO] | | +- com.vaadin:flow-lit-template:jar:2.8.1:compile [INFO] | | +- com.vaadin:flow-html-components:jar:2.8.1:compile [INFO] | | +- com.vaadin:flow-data:jar:2.8.1:compile [INFO] | | | - javax.validation:validation-api:jar:2.0.1.Final:compile [INFO] | | +- com.vaadin:flow-dnd:jar:2.8.1:compile [INFO] | | | +- org.webjars.npm:vaadin__vaadin-mobile-drag-drop:jar:1.0.0:compile [INFO] | | | - org.webjars.npm:mobile-drag-drop:jar:2.3.0-rc.1:compile [INFO] | | +- com.vaadin:vaadin-lumo-theme:jar:2.8.1:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-lumo-styles:jar:1.6.0:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-icon:jar:2.1.0:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-meta:jar:2.1.1:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-iconset-svg:jar:2.2.1:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-flex-layout:jar:2.0.3:compile [INFO] | | | +- org.webjars.bowergithub.polymer:polymer:jar:2.6.1:compile [INFO] | | | - org.webjars.bowergithub.webcomponents:shadycss:jar:1.8.0:compile [INFO] | | +- com.vaadin:vaadin-material-theme:jar:2.8.1:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-material-styles:jar:1.3.2:compile [INFO] | | +- com.vaadin:vaadin-accordion-flow:jar:14.9.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-accordion:jar:1.2.0:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-themable-mixin:jar:1.6.2:compile [INFO] | | | +- org.webjars.bowergithub.webcomponents:webcomponentsjs:jar:1.2.6:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-element-mixin:jar:2.4.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-usage-statistics:jar:2.1.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-development-mode-detector:jar:2.0.5:compile [INFO] | | +- com.vaadin:vaadin-avatar-flow:jar:14.9.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-avatar:jar:1.0.4:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-a11y-announcer:jar:2.0.0:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-resizable-behavior:jar:2.1.1:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-list-mixin:jar:2.5.1:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-control-state-mixin:jar:2.2.6:compile [INFO] | | +- com.vaadin:vaadin-button-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-button:jar:2.4.0:compile [INFO] | | +- com.vaadin:vaadin-checkbox-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-checkbox:jar:2.5.1:compile [INFO] | | +- com.vaadin:vaadin-combo-box-flow:jar:14.9.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-combo-box:jar:5.4.12:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-text-field:jar:2.9.2:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-list:jar:2.0.19:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-scroll-target-behavior:jar:2.1.1:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-a11y-keys-behavior:jar:2.1.1:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-item:jar:2.3.0:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-overlay:jar:3.5.1:compile [INFO] | | | +- org.webjars.bowergithub.polymerelements:iron-overlay-behavior:jar:2.3.4:compile [INFO] | | | - org.webjars.bowergithub.polymerelements:iron-fit-behavior:jar:2.2.1:compile [INFO] | | +- com.vaadin:vaadin-custom-field-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-custom-field:jar:1.3.1:compile [INFO] | | +- com.vaadin:vaadin-date-picker-flow:jar:14.9.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-date-picker:jar:4.4.5:compile [INFO] | | | - org.webjars.bowergithub.polymerelements:iron-media-query:jar:2.1.0:compile [INFO] | | +- com.vaadin:vaadin-date-time-picker-flow:jar:14.9.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-date-time-picker:jar:1.4.0:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-time-picker:jar:2.4.0:compile [INFO] | | +- com.vaadin:vaadin-details-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-details:jar:1.2.1:compile [INFO] | | +- com.vaadin:vaadin-time-picker-flow:jar:14.9.2:compile [INFO] | | +- com.vaadin:vaadin-select-flow:jar:14.9.2:compile [INFO] | | | +- org.webjars.bowergithub.vaadin:vaadin-select:jar:2.4.4:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-list-box:jar:1.4.0:compile [INFO] | | +- com.vaadin:vaadin-dialog-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-dialog:jar:2.6.0:compile [INFO] | | +- com.vaadin:vaadin-form-layout-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-form-layout:jar:2.3.0:compile [INFO] | | +- com.vaadin:vaadin-grid-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-grid:jar:5.9.7:compile [INFO] | | +- com.vaadin:vaadin-icons-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-icons:jar:4.3.2:compile [INFO] | | +- com.vaadin:vaadin-iron-list-flow:jar:14.9.2:compile [INFO] | | +- com.vaadin:vaadin-list-box-flow:jar:14.9.2:compile [INFO] | | +- com.vaadin:vaadin-login-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-login:jar:1.2.0:compile [INFO] | | +- com.vaadin:vaadin-messages-flow:jar:14.9.2:compile [INFO] | | | - com.fasterxml.jackson.core:jackson-databind:jar:2.13.4.2:compile [INFO] | | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.13.4:compile [INFO] | | | - com.fasterxml.jackson.core:jackson-core:jar:2.13.4:compile [INFO] | | +- com.vaadin:vaadin-ordered-layout-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-ordered-layout:jar:1.4.0:compile [INFO] | | +- com.vaadin:vaadin-progress-bar-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-progress-bar:jar:1.3.0:compile [INFO] | | +- com.vaadin:vaadin-radio-button-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-radio-button:jar:1.5.4:compile [INFO] | | +- com.vaadin:vaadin-split-layout-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-split-layout:jar:4.3.1:compile [INFO] | | +- com.vaadin:vaadin-tabs-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-tabs:jar:3.2.0:compile [INFO] | | +- com.vaadin:vaadin-text-field-flow:jar:14.9.2:compile [INFO] | | +- com.vaadin:vaadin-upload-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-upload:jar:4.4.3:compile [INFO] | | +- com.vaadin:vaadin-notification-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-notification:jar:1.6.2:compile [INFO] | | +- com.vaadin:vaadin-app-layout-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-app-layout:jar:2.2.0:compile [INFO] | | +- com.vaadin:vaadin-context-menu-flow:jar:14.9.2:compile [INFO] | | | - org.webjars.bowergithub.vaadin:vaadin-context-menu:jar:4.6.0:compile [INFO] | | - com.vaadin:vaadin-menu-bar-flow:jar:14.9.2:compile [INFO] | | - org.webjars.bowergithub.vaadin:vaadin-menu-bar:jar:1.3.0:compile [INFO] | - org.springframework.boot:spring-boot-starter-web:jar:2.7.5:compile [INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.7.5:compile [INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.13.4:compile [INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.13.4:compile [INFO] | | - com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.13.4:compile [INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.7.5:compile [INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.68:compile [INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.68:compile [INFO] | | - org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.68:compile [INFO] | - org.springframework:spring-web:jar:5.3.23:compile

mcollovati commented 1 year ago

I just tried to create a new project based on vaadin-spring-boot-starter 14.9.2 and Flow comes in as 2.8.1. @MHaase70 can you please run the following command and post the output? Or share your POM file?

mvn dependency:tree -Dincludes=com.vaadin:flow-server
mcollovati commented 1 year ago

Seems like there is an issue with vaadin-spring pom. @MHaase70 As a workaround, if you add/move the dependency com.vaadin:vaadin or com.vaadin:vaadin-core before the definition of com.vaadin:vaadin-spring-boot-starter, you should get the correct Flow version

mcollovati commented 1 year ago

@MHaase70 Are you perhaps missing the vaadin-bom in dependency management? Can you please share your POM file?

MHaase70 commented 1 year ago

Just adding com.vaadin:vaadin or vaadin-bom did not help.

Please take a look at com.vaadin::vaadin-spring-boot-starter 14.9.2 It has the dependecy com.vaadin::vaadin-spring 12.4.3 And vaadin-spring 12.4.3 has the dpenedencies 2.7.14 and was release April 2022

vaadin-bom also uses the dependency vaadin-spring 12.4.3

see: https://mvnrepository.com/artifact/com.vaadin/vaadin-spring-boot-starter/14.9.2 https://mvnrepository.com/artifact/com.vaadin/vaadin-spring/12.4.3

https://mvnrepository.com/artifact/com.vaadin/vaadin-bom/14.9.2

mcollovati commented 1 year ago

I noticed that, and it should indeed be fixed with a new vaadin-spring release.

But I wonder why in a new project using BOM or forcing the order as I mentioned above, I get the expected Flow version, whereas you still have the issues. It would be helpful to share your POM file (or a minimal POM demonstrating the problem) to check why Flow version defined int the BOM does not take precedence over the vaadin-spring one.

MHaase70 commented 1 year ago

I tried to add the pom multipple times. It was not readable.

mcollovati commented 1 year ago

Even if you apply the code formatting (select text and press CTRL+e or the < > button on the toolbar)?

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
</project>
MHaase70 commented 1 year ago

pom.xml.txt

mcollovati commented 1 year ago

Thank you so much for sharing the POM file. I did a try adding the Vaadin BOM in dependency management and commenting the vaadin-spring-boot-starter dependency on the same section and with this configuration I get the correct Flow version

 <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>${spring-boot.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>

            <dependency>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-bom</artifactId>
                <version>${vaadin.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--
      <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-spring-boot-starter</artifactId>
        <version>${vaadin.version}</version>       
      </dependency>
            -->
[INFO] com.devk.vaadin:devk-vaadin-gui:jar:1.9.0-SNAPSHOT
[INFO] \- com.vaadin:vaadin-spring-boot-starter:jar:14.9.2:compile
[INFO]    +- com.vaadin:vaadin-spring:jar:12.4.3:compile
[INFO]    |  \- com.vaadin:flow-server:jar:2.8.1:compile (version managed from 2.7.14)
[INFO]    \- com.vaadin:vaadin-core:jar:14.9.2:compile
[INFO]       +- (com.vaadin:flow-server:jar:2.8.1:compile - version managed from 2.7.14; omitted for duplicate)
[INFO]       +- com.vaadin:flow-lit-template:jar:2.8.1:compile
[INFO]       |  \- (com.vaadin:flow-server:jar:2.8.1:compile - version managed from 2.7.14; omitted for duplicate)
[INFO]       +- com.vaadin:flow-html-components:jar:2.8.1:compile
[INFO]       |  \- (com.vaadin:flow-server:jar:2.8.1:compile - version managed from 2.7.14; omitted for duplicate)
[INFO]       +- com.vaadin:flow-data:jar:2.8.1:compile
[INFO]       |  \- (com.vaadin:flow-server:jar:2.8.1:compile - version managed from 2.7.14; omitted for duplicate)
[INFO]       \- com.vaadin:flow-dnd:jar:2.8.1:compile
[INFO]          \- (com.vaadin:flow-server:jar:2.8.1:compile - version managed from 2.7.14; omitted for duplicate)
MHaase70 commented 1 year ago

Thanks. I still need dependencies from springboot for my application, so I will wait for the next release

mcollovati commented 1 year ago

Adding the Vaadin BOM you will not lose spring boot dependencies. The vaadin-spring-boot-starter dependency can still be used in <dependencies> section, without specify the version.

mcollovati commented 1 year ago

vaadin-spring 12.4.4 with Flow 2.8 version has been released. It will be part of the upcoming 14.9.3 platform release.