Wednesday, August 24, 2022

Re: Migrating to ltgt gwt-maven-plugin causes compile problem with HibernateValidation

Thanks @eliasbalasis - that helped me. 
I was referencing the wrong versions of hibernate-validator and javax.validation. These need to be 4.1.0.Final and 1.0.0.GA respectively. 
I have no clue however how that was working with the old/mojo gwt-maven-plugin.

On Wednesday, August 24, 2022 at 3:24:53 PM UTC+8 eliasbalasis@gmail.com wrote:
This looks like a classpath issue, from which I have suffered in the past but eventually managed to control.

I suggest using Maven dependency control to force the correct implementation of the offending classes, particularly if you are running with "GWT Eclipse Plugin" which doesn't respect inherited Maven dependency exclusions/overrides etc.

If you are using "GWT Eclipse Plugin", even though it is becoming outdated, there is still a way to control the classpath.
study https://github.com/eliasbalasis/eclipse-gwt-recipe for single-classpath for "Single CLASSPATH stream" traces.

I hope this helps you.

On Wednesday, 24 August 2022 at 03:42:59 UTC+1 Thomas wrote:
Hi all,

I'm in the progress of modularising a GWT app and migrating it to use the newer ltgt gwt-maven-plugin. I have a GWT module which compiles correctly using the old gwt-maven-plugin, but fails with the following errors using the new gwt-maven-plugin:

[INFO] --- gwt-maven-plugin:1.0.1:compile (default-compile) @ gwt-portal ---
[INFO] Compiling module com.inspectivity.portal.Portal
[INFO]    Tracing compile failure path for type 'com.inspectivity.portal.client.validation.CustomValidatorFactory'
[INFO]       [ERROR] Errors in 'file:/Users/thomas/dev-private/inspectivity-modules/gwt-portal/src/main/java/com/inspectivity/portal/client/validation/CustomValidatorFactory.java'
[INFO]          [ERROR] Line 31: The method getParameterNameProvider() of type CustomValidatorFactory must override or implement a supertype method
[INFO]          [ERROR] Line 36: The method close() of type CustomValidatorFactory must override or implement a supertype method
[INFO]    Tracing compile failure path for type 'org.hibernate.validator.engine.PathImpl'
[INFO]       [ERROR] Errors in 'jar:file:/Users/thomas/.m2/repository/com/google/gwt/gwt-user/2.8.2/gwt-user-2.8.2.jar!/org/hibernate/validator/super/org/hibernate/validator/engine/PathImpl.java'
[INFO]          [ERROR] Line 72: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 84: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 131: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 202: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 95: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 127: NodeImpl cannot be resolved to a type
[INFO]    Tracing compile failure path for type 'org.hibernate.validator.engine.ConstraintViolationImpl_CustomFieldSerializer'
[INFO]       [ERROR] Errors in 'jar:file:/Users/thomas/.m2/repository/com/google/gwt/gwt-user/2.8.2/gwt-user-2.8.2.jar!/org/hibernate/validator/engine/ConstraintViolationImpl_CustomFieldSerializer.java'
[INFO]          [ERROR] Line 100: The method instantiate(SerializationStreamReader) from the type ConstraintViolationImpl_CustomFieldSerializer refers to the missing type ConstraintViolationImpl
[INFO]          [ERROR] Line 37: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 73: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 32: The type ConstraintViolationImpl_CustomFieldSerializer must implement the inherited abstract method CustomFieldSerializer<ConstraintViolationImpl>.deserializeInstance(SerializationStreamReader, ConstraintViolationImpl)
[INFO]          [ERROR] Line 33: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 32: The type ConstraintViolationImpl_CustomFieldSerializer must implement the inherited abstract method CustomFieldSerializer<ConstraintViolationImpl>.serializeInstance(SerializationStreamWriter, ConstraintViolationImpl)
[INFO]          [ERROR] Line 41: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 105: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 88: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 53: ConstraintViolationImpl cannot be resolved to a type
[INFO]          [ERROR] Line 98: ConstraintViolationImpl cannot be resolved to a type
[INFO]    Tracing compile failure path for type 'org.hibernate.validator.engine.ValidationSupport'
[INFO]       [ERROR] Errors in 'jar:file:/Users/thomas/.m2/repository/com/google/gwt/gwt-user/2.8.2/gwt-user-2.8.2.jar!/org/hibernate/validator/engine/ValidationSupport.java'
[INFO]          [ERROR] Line 43: ConstraintViolationImpl cannot be resolved to a type
[INFO]       [ERROR] Errors in 'jar:file:/Users/thomas/.m2/repository/com/google/gwt/gwt-user/2.8.2/gwt-user-2.8.2.jar!/org/hibernate/validator/super/org/hibernate/validator/engine/PathImpl.java'
[INFO]          [ERROR] Line 72: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 84: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 131: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 202: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 95: NodeImpl cannot be resolved to a type
[INFO]          [ERROR] Line 127: NodeImpl cannot be resolved to a type
[INFO]    [ERROR] Aborting compile due to errors in some input files

I'm using GWT 2.8.2 and here's a fragment of my POM for the module:

<?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/maven-v4_0_0.xsd">

    <parent>
        <groupId>com.inspectivity</groupId>
        <artifactId>inspectivity</artifactId>
        <version>...</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>gwt-portal</artifactId>
    <packaging>gwt-app</packaging>

    <name>gwt-portal</name>

    <properties>
        <app.version>${project.parent.version}</app.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <webappDirectory>${project.build.directory}/web-exploded</webappDirectory>
    </properties>

    <dependencies>
        ....
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-servlet</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-dev</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.5.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.5.Final</version>
            <classifier>sources</classifier>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        ...
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>net.ltgt.gwt.maven</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <configuration>
                    <moduleName>com.inspectivity.portal.Portal</moduleName>
                </configuration>
            </plugin>


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>



Thanks a lot for any hint!

Cheers,
Thomas

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/983cae01-18c9-4cdc-971d-13f8c974b713n%40googlegroups.com.

No comments:

Post a Comment