GithubHelp home page GithubHelp logo

mcollovati / vertx-vaadin Goto Github PK

View Code? Open in Web Editor NEW
43.0 10.0 17.0 3.42 MB

Run Vaadin UI on Vert.x

License: MIT License

Java 94.14% JavaScript 4.01% Shell 0.21% CSS 0.14% HTML 0.73% Scala 0.12% TypeScript 0.65%
vaadin vertx vertx-web

vertx-vaadin's Introduction

Vertx Vaadin

Status

License Maven Central Repsy Snapshots

Description

Vertx Vaadin is an adapter library that lets you run Vaadin applications on top of Vert.x. This means you can mix the simplicity and robustness of Vaadin applications with the powerful tools provided by Vert.x, such as event bus, clustering, High Availability and Fail-Over.

Important

Vaadin 8 is not supported anymore.

Installation and Getting Started

Vertx-vaadin binaries are available on Maven Central and Bintray.

Maven

Stable artifacts are published on Maven Central.

<dependency>
  <groupId>com.github.mcollovati.vertx</groupId>
  <artifactId>vertx-vaadin-flow</artifactId>
  <version>${vertx-vaadin-flow.version}</version>
</dependency>

For better compatibility with Flow client, specific vaadin-flow-sockjs artifacts targeting exact Vaadin versions in use are published using the vaadin-${vaadin.version} classifier.

<dependency>
    <groupId>com.github.mcollovati.vertx</groupId>
    <artifactId>vaadin-flow-sockjs</artifactId>
    <version>${vertx-vaadin-flow.version}</version>
    <classifier>vaadin-${vaadin.version}</classifier>
</dependency>

Snapshots and vaadin-flow-sockjs classifiers are currently published on Repsy.

<repositories>
    <repository>
        <id>vertx-vaadin</id>
        <url>https://repo.repsy.io/mvn/mcollovati/vertx-vaadin</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
    <id>vertx-vaadin-snapshots</id>
        <url>https://repo.repsy.io/mvn/mcollovati/vertx-vaadin-snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Compatibility matrix

Vaadin version Vert.x version vertx-vaadin version Status
24.3 4.3.1+ vertx-vaadin-flow:24.3.x Development
23.3 4.3.1+ vertx-vaadin-flow:23.4.x Vaadin 23.3

Documentation

See vertx-vaadin-flow module for more information.

Demo and samples

Source code for sample application can be found on vaadin-vertx-samples repository.

Issue tracking

The issues for this project are tracked on its github.com page. All bug reports and feature requests are appreciated.

Contributions

Contributions are welcome, but there are no guarantees that they are accepted as such. Process for contributing is the following:

  • Fork this project
  • Create an issue to this project about the contribution (bug or feature) if there is no such issue about it already. Try to keep the scope minimal.
  • Develop and test the fix or functionality carefully. Only include minimum amount of code needed to fix the issue.
  • Refer to the fixed issue in commit
  • Send a pull request for the original project
  • Comment on the original issue that you have implemented a fix for it

License

Vertx Vaadin is distributed under MIT License. For license terms, see LICENSE.

Acknowledgements

Thanks to:

vertx-vaadin's People

Contributors

dependabot[bot] avatar jhult avatar mcollovati avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vertx-vaadin's Issues

Consider use of uber-pom plugin to simplify maven publishing

Using uber-pom maven plugin may be useful to simplify publishing of maven artifacts.

Currently the root pom contains informative and build time configuration but it should be published to avoid errors on dependency resolution at runtime.
Also I've introduced wrong configuration publishing a root release with snapshot dependencies on master.

Using an uber-pom for important submodules should resolve this kind of issues

Setup Github Actions workflow to deploy vaadin-flow-sockjs classifiers

Setup a workflow that builld vaadin-flow-sockjs jar for specific Vaadin versions and deploy them to a public remote repository.
To build and deploy we can use the existing script build_flow_widgetsets.sh in tools directory.
Remote repository may be JFrog, since JCenter and Bintray will no more work after May 2021.
The workflow may be scheduled once per week, but it should also be possible to launch it manually.

Too short documentation.

I just can not run an independent project. Tried several times. Very little information on how to do this.

Examples run fine, but a separate project ....

This is hell.

ClassCastException with Push

Attempting to run Krail on vertx-vaadn:

New push connection for resource 289d7b40-2c21-4db6-b5b9-6950d3022f48 with transport resource.transport()
Unhandled exception
java.lang.ClassCastException: com.vaadin.server.communication.AtmospherePushConnection cannot be cast to com.github.mcollovati.vertx.vaadin.communication.SockJSPushConnection
at com.github.mcollovati.vertx.vaadin.communication.SockJSPushHandler.getOpenedPushConnection(SockJSPushHandler.java:316)
at com.github.mcollovati.vertx.vaadin.communication.SockJSPushHandler.callWithUi(SockJSPushHandler.java:281)
at com.github.mcollovati.vertx.vaadin.communication.SockJSPushHandler.lambda$onConnect$2(SockJSPushHandler.java:189)
at com.github.mcollovati.vertx.vaadin.communication.SockJSRoutingContext.lambda$next$1(SockJSPushHandler.java:624)
at io.vertx.core.impl.ContextImpl.lambda$wrapTask$2(ContextImpl.java:339)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)

Vaadin 14 and gradle

Is there an example of using vertx-vaadin with vaadin 14 and gradle? There is a sample project in your repo but not sure if it is fully functional.

Serialisation tracer

Serialisation errors can be a pain to track down so I wrote this utility

If we could trap any [SerializationException]'s and run the tracer on it, it would give much better feedback on where the issue is.

Very rough code:

try{
//serialise the session
}catch(SerializationException se){
        val tracer = SerializationTracer()
        tracer.trace(session)
	throw new SerializationException(tracer.results(FAIL),se)	
}

Allow disabling cluster session store from configuration

When running in a clustered environmente vertx-vaadin sets up a clustered session store by default. This can be problematic if not all UI components implements Serializable.
Furthermore, is HA is not needed, the application can work with the local session store.

Provide a configuration setting to explicitly disable clustered session store.

Add tests for component extending Vaadin classes

Tests can be borrowed from vaadin server project to ensure that Vert.x base implementations conform with servlet based ones.

Example of test classes that can be adapted could be VaadinServletServiceTest and VaadinServletConfigurationTest

Refactor ServletContainerInitializers loading

At the moment only known vaadin ServletContainerInitializer are activated by VaadinVerticle and input class set are loaded duplicating the rules already existing on initializer @HandlesTypes annotation. This leads to potential errors when @HandlesTypes change on vaadin classes.

A better way may loading all ServletContainerInitializer instances using ServiceLoader and load input classes by inspecting @HandlesTypes annotation.

Missing vertx-vaadin-root from repository

It looks like you updated the reference to vertx-vaadin-root from 1.0.0 to 1.0.0v8v13. Unfortunately, the 1.0.0v8v13 version wasn't pushed to BinTray or Central. Could you push those? I know I can build it locally to get the files into my repository, but not as reproducible. Cheers

StackOverflowError when invoking route with parameters directly

[INFO] SEVERE: Unexpected exception in route
[INFO] java.lang.StackOverflowError
[INFO]  at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
[INFO]  at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
[INFO]  at java.io.File.exists(File.java:819)
[INFO]  at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1334)
[INFO]  at sun.misc.URLClassPath.getResource(URLClassPath.java:249)
[INFO]  at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
[INFO]  at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
[INFO]  at java.security.AccessController.doPrivileged(Native Method)
[INFO]  at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
[INFO]  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[INFO]  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
[INFO]  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[INFO]  at org.slf4j.impl.SimpleLogger.formatAndLog(SimpleLogger.java:354)
[INFO]  at org.slf4j.impl.SimpleLogger.error(SimpleLogger.java:580)
[INFO]  at com.vaadin.flow.router.InternalServerError.reportException(InternalServerError.java:96)
[INFO]  at com.vaadin.flow.router.InternalServerError.setErrorParameter(InternalServerError.java:61)
[INFO]  at com.vaadin.flow.router.internal.ErrorStateRenderer.notifyNavigationTarget(ErrorStateRenderer.java:60)
[INFO]  at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:181)
[INFO]  at com.vaadin.flow.router.internal.ErrorStateRenderer.handle(ErrorStateRenderer.java:49)
[INFO]  at com.vaadin.flow.router.Router.handleExceptionNavigation(Router.java:240)
[INFO]  at com.vaadin.flow.router.Router.navigate(Router.java:175)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:790)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:753)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:736)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.setFragmentParameter(SampleCrudLogic.java:53)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.newProduct(SampleCrudLogic.java:106)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.enter(SampleCrudLogic.java:59)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:130)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:24)
[INFO]  at com.vaadin.flow.router.internal.NavigationStateRenderer.notifyNavigationTarget(NavigationStateRenderer.java:87)
[INFO]  at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:181)
[INFO]  at com.vaadin.flow.router.Router.handleNavigation(Router.java:202)
[INFO]  at com.vaadin.flow.router.Router.navigate(Router.java:173)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:790)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:753)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:736)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.setFragmentParameter(SampleCrudLogic.java:53)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.newProduct(SampleCrudLogic.java:106)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.enter(SampleCrudLogic.java:59)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:130)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:24)
[INFO]  at com.vaadin.flow.router.internal.NavigationStateRenderer.notifyNavigationTarget(NavigationStateRenderer.java:87)
[INFO]  at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:181)
[INFO]  at com.vaadin.flow.router.Router.handleNavigation(Router.java:202)
[INFO]  at com.vaadin.flow.router.Router.navigate(Router.java:173)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:790)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:753)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:736)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.setFragmentParameter(SampleCrudLogic.java:53)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.newProduct(SampleCrudLogic.java:106)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.enter(SampleCrudLogic.java:59)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:130)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:24)
[INFO]  at com.vaadin.flow.router.internal.NavigationStateRenderer.notifyNavigationTarget(NavigationStateRenderer.java:87)
[INFO]  at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:181)
[INFO]  at com.vaadin.flow.router.Router.handleNavigation(Router.java:202)
[INFO]  at com.vaadin.flow.router.Router.navigate(Router.java:173)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:790)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:753)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:736)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.setFragmentParameter(SampleCrudLogic.java:53)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.newProduct(SampleCrudLogic.java:106)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.enter(SampleCrudLogic.java:59)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:130)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:24)
[INFO]  at com.vaadin.flow.router.internal.NavigationStateRenderer.notifyNavigationTarget(NavigationStateRenderer.java:87)
[INFO]  at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:181)
[INFO]  at com.vaadin.flow.router.Router.handleNavigation(Router.java:202)
[INFO]  at com.vaadin.flow.router.Router.navigate(Router.java:173)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:790)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:753)
[INFO]  at com.vaadin.flow.component.UI.navigate(UI.java:736)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.setFragmentParameter(SampleCrudLogic.java:53)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.newProduct(SampleCrudLogic.java:106)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudLogic.enter(SampleCrudLogic.java:59)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:130)
[INFO]  at com.github.mcollovati.vertxvaadin.flowdemo.crud.SampleCrudView.setParameter(SampleCrudView.java:24)
[INFO]  at com.vaadin.flow.router.internal.NavigationStateRenderer.notifyNavigationTarget(NavigationStateRenderer.java:87)
[INFO]  at com.vaadin.flow.router.internal.AbstractNavigationStateRenderer.handle(AbstractNavigationStateRenderer.java:181)

Vaadin 14.2.0.beta1 is not starting

Hi,
I have tried to use the new Vaadin version but getting the following error on startup:

------------------ Starting Frontend compilation. ------------------
2020-04-29 00:09:46 [vert.x-worker-thread-1] INFO  dev-webpack - Running webpack to compile frontend resources. This may take a moment, please stand by...
2020-04-29 00:09:50 [vert.x-worker-thread-1] INFO  dev-webpack - Started webpack-dev-server. Time: 41531957ms
Apr. 29, 2020 12:09:50 VORM. io.vertx.core.impl.DeploymentManager
SCHWERWIEGEND: NULL
java.lang.NullPointerException
	at com.vaadin.flow.server.startup.ClassLoaderAwareServletContainerInitializer.onStartup(ClassLoaderAwareServletContainerInitializer.java:82)
	at com.github.mcollovati.vertx.vaadin.VaadinVerticle.lambda$null$9(VaadinVerticle.java:288)
	at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316)
	at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)

Vertx-Vaadin-Flow: 14.1.1

Provide minimized version of vaadinPushSockJS

As Vaadin does provide two versions of the sockJS push adapter:

  • vaadinPushSockJS.js: minimized version
  • vaadinPushSockJS.debug.js: plain version

As an improvement sockJS source code should be unpacked from a webjar and automatically inserted in vaadinPushSockJS.js

Migrate from Bintray

Currently artifacts are deployed on Bitray and then synced to Maven central.
Since Bintray will be sunsetted as of May 2021, consider migrate to JFrog (free plan) or directly publish on Maven central.

For vertx-vaadin-sockjs classifiers perhaps we can use Github packages.

Call super.start(promise) or super.start() in VaadinVerticle

The AbstractVerticle calls in its default implementation a simple start() function. The VaadinVerticle implementation should call the start function or propagate to the super implementation.
I am currently not using this function actively but I discovered this behavior while some testing.

@Override
public void start(Promise<Void> startFuture) throws Exception {
log.info("Starting vaadin verticle " + getClass().getName());
prepareConfig()
.compose(vaadinOptions -> StartupContext.of(vertx, vaadinOptions))
.compose(this::initVertxVaadin)
.compose(this::startupHttpServer)
.<Void>map(router -> {
serviceInitialized(vaadinService, router);
return null;
}).setHandler(startFuture);
}

Add support for vaadin 12.x

vertx-vaadin-flow does not currently work with Vaadin 12.x due to missing of PWA related stuff implementation

Improve Readme files

Fill missing parts (documentation, getting started, ...) for all Readme files

Exceptions in VaadinVerticle startup can disappear

If in the following code an exception is thrown, it can disappear because it is not bubbled up.

try {
new LookupServletContainerInitializer()
.process(map.get(LookupServletContainerInitializer.class), startupContext.servletContext());
finalizeVaadinConfig(vaadinConfig);
runInitializers(startupContext, initializerFuture, map);
initializerFuture.future().map(unused -> {
VertxVaadin vertxVaadin = createVertxVaadin(startupContext);
vaadinService = vertxVaadin.vaadinService();
return vertxVaadin;
}).onComplete(event);
} catch (ServletException ex) {
initializerFuture.fail(new VaadinConfigurationException(ex.getMessage(), ex));
} catch (VaadinConfigurationException ex) {
initializerFuture.fail(ex);
}

The code to bubble up the exception in the future chain is in line 238. So if an exception is thrown before (in my case in line 230), then the catch block is called with failing the future. But the onComplete for the "parent" future isn't registered yet and is never called. So in my case, the complete initialization of the VaadinVerticle never finishes and the exception is never logged or thrown.

This is the only place where I discovered this behavior, maybe something similar can happen somewhere else. Should be checked.

Push support should be optional

At the moment PUSH support is always activated, even if application does not require it.
Push handler should be activated only if the sockjs based PUSH implentation is present on classpath.

Setup workflow to deploy artifact on maven central

Setup a workflow to directly deploy release artifacts on Maven central, since at the moment artifact are synchronized with central through bintray.

The workflow will be triggered when a release is published on github; rember to configure and activate maven-gpg-plugin to sign artifacts to deploy.

Add support for Quarkus

Consider adding support for running vertx-vaadin on Quarkus
Some investigation has already been done in spikes/quarkus branch and it seems to work.

The vaadin-quarkus project by @mvysny is a great starting point for testing the integration; it uses vaadin-quarkus-extension.

Must be verified with latest Vaadin versions and there's also need to a better investigate on how to package code (eg extension/deployment separation)

Move Fusion support into a separate module

vertx-vaadin has its own implementation of Fusion endpoints, to avoid Spring dependencies; some components has been completely rewritten to abstract over servlet and spring stuff, reusing original classes (with some workaround) when possibile.

Since Fusion is packaged separately from Vaadin server, it may be better introduce the same separation also on vertx-vaadin, to avoid adding useless dependency when not needed.

New module may be named vertx-fusion-endpoint, to be consistent with Vaaadin fusion-endpoint module

Missing grid footers and headers

Hi,
I've created recently an issue in the vaadin-grid-flow project.
I thought it is generally vaadin related and was already wondering why nobody else has reported this breaking issue before. So I tried it today with a clean vaadin-jetty project and it worked as expected.
Can you check if this is maybe vertx-vaadin related?

Http port on startup not displayed correctly

Hi,
I again :D

There is a little bug in the startup routine. The http port is not displayed correctly:
[vert.x-eventloop-thread-0] INFO com.github.mcollovati.vertx.vaadin.VaadinVerticle - Started vaadin verticle vertx.UIVerticle on port io.vertx.core.http.impl.HttpServerImpl@33e0a022

Drop Vaadin 8 modules

Vaadin 8 modules are not actively maintained.
Dropping them may open the doors to simplifications on project structure and deployment stuff.

Push integration

Ran into a problem with the integration of Push with Krail. The background is described here

In brief, in order to change the PushConfiguration, which I need to do to create the correct PushConnection I end up having to instantiate SockJSPushConnection in the UI constructor.

SockJSPushConnection uses a reference to the UI.id, not the UI itself, and the id is null at this stage (it is not set until init() is called. But I can't set the id in SockJSPushConnection later, because there is no setter. (I have a workaround from Krail 0.16.8.0 using reflection to set it).

Could SockJSPushConnection either use a reference to the UI itself, or provide a setter for the id? (I'm happy to create a PR if you could tell me which you prefer)

Upload: file name is always "file"

Hi. I am not sure if this is vertx-vaadin related, but the bug seems to obviously.
If I upload any file with the Upload component, the file name is always 'file'.

Windows Support

The VertxVaadin initSockJS method uses the java.nio.Paths class to attempt to assemble a path. Unfortunately, it assembles a "/" with a "*". Under Windows, * is not a valid character, and as such, the Paths.get() call fails with an illegal character exception.

I think that it'd be better to just assemble the path using Strings to make it work on both Windows and Linux-based environments.

Extra addons

Is there a way to introduce add-ons from the vaadin directory. I would like to add support for maps but not sure how to do that in vertx-vaadin. I know there is a separate widgetset. Is there a way to extend it?

Thank you in advance for your reply.

Support Vertx 3.8.x and 4.x.x, Issue with SockJSHandler

A dependency upgrade to vertx 3.8.x and 4.x.x is not possible due to the change of the method signature of (SockJSHandler -> Router) SockJSHandler.socketHandler(Handler<SockJSSocket> handler).

https://github.com/vert-x3/vertx-web/blob/4711942d7801d4dab54a46b256cb72edc908cd58/vertx-web/src/main/java/io/vertx/ext/web/handler/sockjs/SockJSHandler.java#L68

First occurred on:


It looks like the library only needs to be recompiled, but I am not sure if there are any side effects. The router which is returned is meant to be registered at a parent router.

I think the upgrade should be applied to the Vaadin 14 version too because it's an LTS release.

Exception with push on rebuild

Hi,
I recently enabled push. Now I discovered the behavior, that an exception is thrown if I rebuild the app while I have the browser window opened:

SCHWERWIEGEND: Unhandled exception
java.lang.NoSuchMethodError: 'java.lang.String com.vaadin.flow.server.VaadinService.createSessionExpiredJSON()'
	at com.github.mcollovati.vertx.vaadin.sockjs.communication.SockJSPushHandler.callWithUi(SockJSPushHandler.java:237)
	at com.github.mcollovati.vertx.vaadin.sockjs.communication.SockJSPushHandler.lambda$onConnect$3(SockJSPushHandler.java:183)
	at com.github.mcollovati.vertx.vaadin.sockjs.communication.SockJSRoutingContext.lambda$next$1(SockJSPushHandler.java:587)
	at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
	at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:518)
	at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:834)

vertx: 3.8.5
vaadin: 14.2.0.beta1
vertx-vaadin: 14.1.2-SNAPSHOT

IDE is marking following:
image

@Widgetset annotation

I think the @WidgetSet annotation should be on the Verticle, rather than the UI - there will only be one of them, but there could be multiple UI classes

Vaadin 14.1.x has missing theme

Vaadin-Vertx-Flow is not working with Vaadin 14.1.x. The theming is missing completely. If I change the version back to 14.0.x everything works. I've tested it with different projects, also with the vertx-flow-example project.

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.