Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PlugIn still active and plans for including Vaadin 8 support? #62

Closed
pesse opened this issue Feb 24, 2017 · 15 comments
Closed

PlugIn still active and plans for including Vaadin 8 support? #62

pesse opened this issue Feb 24, 2017 · 15 comments

Comments

@pesse
Copy link

pesse commented Feb 24, 2017

Hi there,

I just got attracted by this plugIn and wanted to know if it is still used/developed and if so, if support for Vaadin 8 is planned in some way.

Best regards,
Pesse

@ondrej-kvasnovsky
Copy link
Owner

Hi, yes, we should switch to Vaadin 8. I will update this issue with status later on.

@ondrej-kvasnovsky
Copy link
Owner

ondrej-kvasnovsky commented Apr 17, 2017

Here is the tutorial how to get the plugin working with Grails 3.2.8 and Vaadin 8.0.5:

Download and setup Grails:

GRAILS_HOME=/Users/ondrej/Documents/Libraries/grails-3.2.8
export GRAILS_HOME
export PATH=$PATH:$GRAILS_HOME/bin

Create new Grails application:

grails create-app sample-project
cd sample-project

Open build.gradle and add build plugin:

buildscript {
    repositories {
        // ... other repos...
        maven { url 'https://dl.bintray.com/ondrej-kvasnovsky/plugins/' } // ADD THIS
    }
    dependencies {
        // ... keep the other plugins for now... 
        classpath 'com.vaadinongrails:vaadin-gradle-plugin:2.0.0' // ADD THIS
    }
}

apply plugin: 'com.vaadinongrails.vaadin-gradle-plugin' // ADD THIS

You can get latest version of that plugin from: https://bintray.com/ondrej-kvasnovsky/plugins/vaadin-gradle-plugin

Then add compile dependency in build.gradle:

repositories {
    // ... other repos...
    maven { url 'https://dl.bintray.com/ondrej-kvasnovsky/plugins' } // ADD THIS
}
dependencies {
    // keep other dependencies as they are (for now)
        compile ('com.vaadinongrails:grails-vaadin-plugin:2.0.0') {
            exclude group: 'com.vaadin', module: 'vaadin-client-compiler'
        } // ADD THIS
}

Explore what tasks has been added by 'vaadin-gradle-plugin':

gradle tasks

You should see these in your tasks:

...
Vaadin tasks
------------
vaadin-compile-sass - Compiles SASS and into CSS.
vaadin-compile-widgetset - Compiles Vaadin Addons and components into Javascript.
vaadin-quickstart
vaadin-spring-quickstart
...

Now you can choose if you want to use Spring or not. If you want to use Spring in your app, run:

gradle vaadin-spring-quickstart

It adds all support files you need to develop and run your application with Spring.

If you choose to develop app without Spring, run this one:

gradle vaadin-quickstart

Now you are ready to run the app:

gradle bootRun

One issue I found is that it fails to configure jsr356 (async support). I will look at this one later.

Please let me know if this works for you guys.

@wehe64
Copy link

wehe64 commented Apr 18, 2017

wanted to give V8 a try, but couldn't get it to work.

  1. typo: grails create app sample-project should be: grails create-app sample-project
  2. and I'm unable to run the app, both seeds - quickstart and spring-quickstart - throw this:
:bootRun
2017-04-18 09:53:54.179 ERROR --- [           main] o.s.boot.SpringApplication               : Application startup failed

org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.lang.AbstractMethodError: org.apache.jasper.servlet.TldScanner$TldScannerCallback.scan(Lorg/apache/tomcat/Jar;Ljava/lang/String;Z)V
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:536)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:372)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:83)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:388)
	at grails.boot.GrailsApp.run(GrailsApp.groovy:375)
	at grails.boot.GrailsApp$run.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
	at sample.project.Application.main(Application.groovy:8)
Caused by: java.lang.AbstractMethodError: org.apache.jasper.servlet.TldScanner$TldScannerCallback.scan(Lorg/apache/tomcat/Jar;Ljava/lang/String;Z)V
	at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:342)
	at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:288)
	at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)
	at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:106)
	at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:103)
	at org.springframework.boot.context.embedded.jetty.JasperInitializer.doStart(JasperInitializer.java:83)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.handler.ScopedHandler.doStart(ScopedHandler.java:120)
	at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:809)
	at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:345)
	at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1404)
	at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1366)
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:778)
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262)
	at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:520)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
	at org.eclipse.jetty.server.Server.start(Server.java:422)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
	at org.eclipse.jetty.server.Server.doStart(Server.java:389)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.initialize(JettyEmbeddedServletContainer.java:93)
	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer.<init>(JettyEmbeddedServletContainer.java:81)
	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory.getJettyEmbeddedServletContainer(JettyEmbeddedServletContainerFactory.java:548)
	at org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory.getEmbeddedServletContainer(JettyEmbeddedServletContainerFactory.java:186)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134)
	... 13 common frames omitted

I just followed your tutorial and changed nothing, tried both seeds.
HTH! cheers / weHe

@ondrej-kvasnovsky
Copy link
Owner

There are two versions of the same library on classpath.

The first one I found in spring-boot-starter-tomcat:

+--- org.springframework.boot:spring-boot-starter-tomcat: -> 1.4.5.RELEASE
|    +--- org.apache.tomcat.embed:tomcat-embed-core:8.5.11
|    +--- org.apache.tomcat.embed:tomcat-embed-el:8.5.11
|    \--- org.apache.tomcat.embed:tomcat-embed-websocket:8.5.11
|         \--- org.apache.tomcat.embed:tomcat-embed-core:8.5.11

But there is also different version of that library in vaadin-compiler:

|    +--- com.vaadin:vaadin-client-compiler:8.0.5
|    |    +--- com.vaadin:vaadin-client:8.0.5 (*)
|    |    +--- com.google.gwt:gwt-dev:2.8.0
|    |    |    +--- com.google.code.gson:gson:2.6.2 -> 2.7
|    |    |    +--- org.ow2.asm:asm:5.0.3
|    |    |    +--- org.ow2.asm:asm-util:5.0.3
|    |    |    |    \--- org.ow2.asm:asm-tree:5.0.3
|    |    |    |         \--- org.ow2.asm:asm:5.0.3
|    |    |    +--- org.ow2.asm:asm-commons:5.0.3
|    |    |    |    \--- org.ow2.asm:asm-tree:5.0.3 (*)
|    |    |    +--- colt:colt:1.2.0
|    |    |    +--- ant:ant:1.6.5
|    |    |    +--- commons-collections:commons-collections:3.2.2
|    |    |    +--- commons-io:commons-io:2.4
|    |    |    +--- com.ibm.icu:icu4j:50.1.1
|    |    |    +--- tapestry:tapestry:4.0.2
|    |    |    +--- net.sourceforge.htmlunit:htmlunit:2.19 -> 2.21
|    |    |    |    +--- xalan:xalan:2.7.2
|    |    |    |    |    \--- xalan:serializer:2.7.2
|    |    |    |    +--- org.apache.commons:commons-lang3:3.4
|    |    |    |    +--- org.apache.httpcomponents:httpclient:4.5.2 -> 4.5.3
|    |    |    |    |    +--- org.apache.httpcomponents:httpcore:4.4.6
|    |    |    |    |    +--- commons-logging:commons-logging:1.2
|    |    |    |    |    \--- commons-codec:commons-codec:1.9 -> 1.10
|    |    |    |    +--- org.apache.httpcomponents:httpmime:4.5.2 -> 4.5.3
|    |    |    |    |    \--- org.apache.httpcomponents:httpclient:4.5.3 (*)
|    |    |    |    +--- commons-codec:commons-codec:1.10
|    |    |    |    +--- net.sourceforge.htmlunit:htmlunit-core-js:2.17
|    |    |    |    +--- net.sourceforge.htmlunit:neko-htmlunit:2.21
|    |    |    |    |    \--- xerces:xercesImpl:2.11.0
|    |    |    |    |         \--- xml-apis:xml-apis:1.4.01
|    |    |    |    +--- net.sourceforge.cssparser:cssparser:0.9.18
|    |    |    |    |    \--- org.w3c.css:sac:1.3
|    |    |    |    +--- commons-io:commons-io:2.4
|    |    |    |    +--- commons-logging:commons-logging:1.2
|    |    |    |    \--- org.eclipse.jetty.websocket:websocket-client:9.2.15.v20160210 -> 9.3.16.v20170120
|    |    |    |         +--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |         +--- org.eclipse.jetty:jetty-io:9.3.16.v20170120
|    |    |    |         |    \--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |         \--- org.eclipse.jetty.websocket:websocket-common:9.3.16.v20170120
|    |    |    |              +--- org.eclipse.jetty.websocket:websocket-api:9.3.16.v20170120
|    |    |    |              +--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |              \--- org.eclipse.jetty:jetty-io:9.3.16.v20170120 (*)
|    |    |    +--- org.eclipse.jetty:jetty-webapp:9.2.14.v20151106 -> 9.3.16.v20170120
|    |    |    |    +--- org.eclipse.jetty:jetty-xml:9.3.16.v20170120
|    |    |    |    |    \--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |    \--- org.eclipse.jetty:jetty-servlet:9.3.16.v20170120
|    |    |    |         \--- org.eclipse.jetty:jetty-security:9.3.16.v20170120
|    |    |    |              \--- org.eclipse.jetty:jetty-server:9.3.16.v20170120
|    |    |    |                   +--- javax.servlet:javax.servlet-api:3.1.0
|    |    |    |                   +--- org.eclipse.jetty:jetty-http:9.3.16.v20170120
|    |    |    |                   |    \--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |                   \--- org.eclipse.jetty:jetty-io:9.3.16.v20170120 (*)
|    |    |    +--- org.eclipse.jetty:jetty-servlets:9.2.14.v20151106 -> 9.3.16.v20170120
|    |    |    |    +--- org.eclipse.jetty:jetty-continuation:9.3.16.v20170120
|    |    |    |    +--- org.eclipse.jetty:jetty-http:9.3.16.v20170120 (*)
|    |    |    |    +--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |    \--- org.eclipse.jetty:jetty-io:9.3.16.v20170120 (*)
|    |    |    +--- org.eclipse.jetty:jetty-annotations:9.2.14.v20151106 -> 9.3.16.v20170120
|    |    |    |    +--- org.eclipse.jetty:jetty-plus:9.3.16.v20170120
|    |    |    |    |    +--- org.eclipse.jetty:jetty-webapp:9.3.16.v20170120 (*)
|    |    |    |    |    \--- org.eclipse.jetty:jetty-jndi:9.3.16.v20170120
|    |    |    |    |         \--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |    |    +--- org.eclipse.jetty:jetty-webapp:9.3.16.v20170120 (*)
|    |    |    |    +--- javax.annotation:javax.annotation-api:1.2
|    |    |    |    +--- org.ow2.asm:asm:5.0.1 -> 5.0.3
|    |    |    |    \--- org.ow2.asm:asm-commons:5.0.1 -> 5.0.3 (*)
|    |    |    \--- org.eclipse.jetty:apache-jsp:9.2.14.v20151106 -> 9.3.16.v20170120
|    |    |         +--- org.eclipse.jetty:jetty-util:9.3.16.v20170120
|    |    |         +--- org.eclipse.jetty.toolchain:jetty-schemas:3.1
|    |    |         +--- javax.servlet:javax.servlet-api:3.1.0
|    |    |         +--- org.mortbay.jasper:apache-jsp:8.0.33
|    |    |         |    +--- org.eclipse.jetty.toolchain:jetty-schemas:3.1.M0 -> 3.1
|    |    |         |    \--- org.mortbay.jasper:apache-el:8.0.33

Solution for this one is to exclude that library from classpath:

    compile ('com.vaadinongrails:grails-vaadin-plugin:2.0.0') {
        exclude group: 'com.vaadin', module: 'vaadin-client-compiler'
    }

I have updated the tutorial too.

@wehe64
Copy link

wehe64 commented Apr 19, 2017

@ondrej-kvasnovsky Thanx a lot for that update Ondrej!
With that classpath exclusion the server finally comes up.
cheers / weHe

@wehe64
Copy link

wehe64 commented Apr 20, 2017

For a test, I've ported the code of vaadin.com/tutorial and the plugin seems to works well - yeah!
And IMHO you should really put this documentation up at plugins.grails.org where people will actually find it.
Great work Ondrej! Thanks and stay well / cheers, weHe

@ondrej-kvasnovsky
Copy link
Owner

Cool it works.

But I have no idea how to edit the plugin page. Even I login.. there is no option to edit the plugin page. I will contact grails guys to check for the solution... Thank guys!

@mnukka
Copy link

mnukka commented May 16, 2017

I followed everything from Vaadin 8 with grails 3 e-book and didn't get it to work with grails-3.3.0.M1

When I ran "gradle tasks" or "gradle vaadin-spring-quickstart" I got the following error:

What went wrong:
A problem occurred evaluating root project 'xxx'.
Failed to apply plugin [id 'asset-pipeline']
No such property: COMPILE_ONLY_CONFIGURATION_NAME for class: org.gradle.api.plugins.JavaPlugin

When using "gradlew" instead of "gradle" I got it to run the task but it does not output any vaadin related configuration and UI files, when using "vaadin-spring-quickstart" task.

I also tried downgrading grails to version 3.1.7. In that case "gradle" works without asset-pipeline errors, but still no quickstart files are being generated.

I am using windows and otherwise grails is generating new projects just fine from command line.

Here is my grails 3.1.7 build.gradle

@ondrej-kvasnovsky
Copy link
Owner

@mnukka Can you try to update to (if you use SNAPSHOT or MILESTONE, it might be difficult to get help):

grails --version
| Grails Version: 3.2.9
| Groovy Version: 2.4.10
| JVM Version: 1.8.0_131

And latest Gradle:

gradle --version

------------------------------------------------------------
Gradle 3.5
------------------------------------------------------------

Build time:   2017-04-10 13:37:25 UTC
Revision:     b762622a185d59ce0cfc9cbc6ab5dd22469e18a6

Groovy:       2.4.10
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_131 (Oracle Corporation 25.131-b11)
OS:           Mac OS X 10.12.4 x86_64

@mnukka
Copy link

mnukka commented May 17, 2017

grails --version
| Grails Version: 3.2.9
| Groovy Version: 2.4.10
| JVM Version: 1.8.0_131
gradle --version

------------------------------------------------------------
Gradle 3.5
------------------------------------------------------------

Build time:   2017-04-10 13:37:25 UTC
Revision:     b762622a185d59ce0cfc9cbc6ab5dd22469e18a6

Groovy:       2.4.10
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_131 (Oracle Corporation 25.131-b11)
OS:           Windows 10 10.0 amd64

gradle vaadin-quickstart
:vaadin-quickstart
Vaadin QuickStart task
Project path: C:\Projects\groovy\test

BUILD SUCCESSFUL

Total time: 1.552 secs
gradlew vaadin-quickstart
:vaadin-quickstart
Vaadin QuickStart task
Project path: C:\Projects\groovy\test

BUILD SUCCESSFUL

Still no vaadin quickstart files generated under grails-app/conf/ or src/main/groovy/

build.gradle gist (The plugin is on top of other plugins because tried reordering but didn't get any different results.)

-- edit
I've now tried this on two different windows machines, both running the same OS and grails/gradle/JDK versions. No changes.

@ondrej-kvasnovsky
Copy link
Owner

What do you get when you run "gradle tasks"? Can you copy paste it here?

@mnukka
Copy link

mnukka commented May 17, 2017

Sure thing

mnukk@DESKTOP-918JICR C:\Projects\groovy\test                                                                                       
> gradle task                                                                                                                       
:tasks                                                                                                                              
                                                                                                                                    
------------------------------------------------------------                                                                        
All tasks runnable from root project                                                                                                
------------------------------------------------------------                                                                        
                                                                                                                                    
Application tasks                                                                                                                   
-----------------                                                                                                                   
bootRun - Run the project with support for auto-detecting main class and reloading static resources                                 
                                                                                                                                    
Build tasks                                                                                                                         
-----------                                                                                                                         
assemble - Assembles the outputs of this project.                                                                                   
bootRepackage - Repackage existing JAR and WAR archives so that they can be executed from the command line using 'java -jar'        
build - Assembles and tests this project.                                                                                           
buildDependents - Assembles and tests this project and all projects that depend on it.                                              
buildNeeded - Assembles and tests this project and all projects it depends on.                                                      
classes - Assembles main classes.                                                                                                   
clean - Deletes the build directory.                                                                                                
integrationTestClasses - Assembles integration test classes.                                                                        
jar - Assembles a jar archive containing the main classes.                                                                          
testClasses - Assembles test classes.                                                                                               
war - Generates a war archive with all the compiled classes, the web-app content and the libraries.                                 
                                                                                                                                    
Build Setup tasks                                                                                                                   
-----------------                                                                                                                   
init - Initializes a new Gradle build.                                                                                              
wrapper - Generates Gradle wrapper files.                                                                                           
                                                                                                                                    
Documentation tasks                                                                                                                 
-------------------                                                                                                                 
groovydoc - Generates Groovydoc API documentation for the main source code.                                                         
javadoc - Generates Javadoc API documentation for the main source code.                                                             
                                                                                                                                    
Help tasks                                                                                                                          
----------                                                                                                                          
buildEnvironment - Displays all buildscript dependencies declared in root project 'test'.                                           
components - Displays the components produced by root project 'test'. [incubating]                                                  
dependencies - Displays all dependencies declared in root project 'test'.                                                           
dependencyInsight - Displays the insight into a specific dependency in root project 'test'.                                         
dependentComponents - Displays the dependent components of components in root project 'test'. [incubating]                          
help - Displays a help message.                                                                                                     
model - Displays the configuration model of root project 'test'. [incubating]                                                       
projects - Displays the sub-projects of root project 'test'.                                                                        
properties - Displays the properties of root project 'test'.                                                                        
tasks - Displays the tasks runnable from root project 'test'.                                                                       
                                                                                                                                    
IDE tasks                                                                                                                           
---------                                                                                                                           
cleanEclipse - Cleans all Eclipse files.                                                                                            
cleanEclipseWtp - Cleans Eclipse wtp configuration files.                                                                           
cleanIdea - Cleans IDEA project files (IML, IPR)                                                                                    
eclipse - Generates all Eclipse files.                                                                                              
eclipseWtp - Generates Eclipse wtp configuration files.                                                                             
idea - Generates IDEA project files (IML, IPR, IWS)                                                                                 
                                                                                                                                    
Vaadin tasks                                                                                                                        
------------                                                                                                                        
vaadin-compile-sass - Compiles SASS and into CSS.                                                                                   
vaadin-compile-widgetset - Compiles Vaadin Addons and components into Javascript.                                                   
vaadin-quickstart                                                                                                                   
vaadin-spring-quickstart                                                                                                            
                                                                                                                                    
Verification tasks                                                                                                                  
------------------                                                                                                                  
check - Runs all checks.                                                                                                            
test - Runs the unit tests.                                                                                                         
                                                                                                                                    
Rules                                                                                                                               
-----                                                                                                                               
Pattern: clean<TaskName>: Cleans the output files of a task.                                                                        
Pattern: build<ConfigurationName>: Assembles the artifacts of a configuration.                                                      
Pattern: upload<ConfigurationName>: Assembles and uploads the artifacts belonging to a configuration.                               
                                                                                                                                    
To see all tasks and more detail, run gradle tasks --all                                                                            
                                                                                                                                    
To see more detail about a task, run gradle help --task <task>                                                                      
                                                                                                                                    
BUILD SUCCESSFUL                                                                                                                    
                                                                                                                                    
Total time: 1.632 secs                                                                                                              

@mnukka
Copy link

mnukka commented May 17, 2017

Heres also gist for
gradle vaadin-spring-quickstart -debug

@ondrej-kvasnovsky
Copy link
Owner

@mnukka Thanks, I will need some time to debug this on Windows. Can you get this already configured project from: https://github.com/vaadin-on-grails-3/book-examples/tree/master/hello-world to start with?

@wehe64
Copy link

wehe64 commented Jul 3, 2017

I checked out WidgetSet compliation on Grails 3 with Vaadin 8 -
it is a little different than with Grails 2 - so I made a little project as a reference.
HTH! cheers. weHe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants