You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Paul Fraser <pa...@qnenet.com> on 2020/07/14 11:25:37 UTC

Re: Vaadin Flow and Apache Karaf

Hi Julian,

After experimenting with your code for a while I decided to jump in the deep end and start from the 
V14 OSGi Starter.

I have ended up with a working Karaf project using the original Vaadin MainView based on Component 
and setting the required setup to run in comptability mode.

My requirement is to use Designer to create the html templates but my effort fails to load the 
static templates.

The repo is at https://github.com/QNENet/karafvaadin

and I have raised a forum request

https://vaadin.com/forum/thread/18356178/osgi-resource-loading-in-compatabilty-mode

Regards

Paul Fraser

P.S. The current Designer 4.5.7 is a brilliant tool for developing V14 views, I just hope we can 
sort out the problem using compatabiltiy mode.


On 19/09/2019 1:27 am, Julian Feinauer wrote:
> Hey,
>
> I decided to post again an update just to learn something... : )
> The Demo I posted sets up a felix instance with the bundles listed below.
>
> I am able to start that in karaf If I copy all over to deploy BUT its not working due to NPEs or 
> stuff and I guess there are some conflicts as things like the servlet container are already in a 
> karaf bundle...
>
> Could it be possible to just take out some jars (and add some bundles / features to karaf) and 
> then make the whole thing run?
>
> Julian
>
> Appendix: List of jars:
>
> animal-sniffer-annotations-1.9.jar
> asm-debug-all-5.0.3.jar
> atmosphere-runtime-2.4.30.vaadin1.jar
> byte-buddy-1.9.3.jar
> commons-fileupload-1.3.3.jar
> commons-io-2.6.jar
> commons-lang3-3.0.jar
> flow-client-1.4.3.jar
> flow-data-1.4.3.jar
> flow-html-components-1.4.3.jar
> flow-osgi-1.4.3.jar
> flow-push-1.4.3.jar
> flow-server-1.4.3.jar
> gentyref-1.2.0.vaadin1.jar
> gwt-elemental-2.8.2.vaadin2.jar
> iron-a11y-announcer-2.1.0.jar
> iron-a11y-keys-behavior-2.1.1.jar
> iron-fit-behavior-2.2.1.jar
> iron-flex-layout-2.0.3.jar
> iron-icon-2.1.0.jar
> iron-iconset-svg-2.2.1.jar
> iron-list-2.0.19.jar
> iron-media-query-2.1.0.jar
> iron-meta-2.1.1.jar
> iron-overlay-behavior-2.3.4.jar
> iron-resizable-behavior-2.1.1.jar
> iron-scroll-target-behavior-2.1.1.jar
> jansi-1.17.1.jar
> jetty-client-9.4.12.v20180830.jar
> jetty-http-9.4.12.v20180830.jar
> jetty-io-9.4.12.v20180830.jar
> jetty-jmx-9.4.12.v20180830.jar
> jetty-security-9.4.12.v20180830.jar
> jetty-server-9.4.12.v20180830.jar
> jetty-servlet-9.4.12.v20180830.jar
> jetty-util-9.4.12.v20180830.jar
> jetty-webapp-9.4.12.v20180830.jar
> jetty-xml-9.4.12.v20180830.jar
> jline-3.7.0.jar
> jsoup-1.11.2.jar
> org.apache.aries.spifly.core-internal-1.0.12.jar
> org.apache.aries.spifly.dynamic.bundle-1.0.12.jar
> org.apache.aries.spifly.static.bundle-1.0.12.jar
> org.apache.aries.spifly.static.tool-1.0.12.jar
> org.apache.aries.spifly.weaver-internal-1.0.12.jar
> org.apache.aries.util-1.1.3.jar
> org.apache.felix.bundlerepository-2.0.10.jar
> org.apache.felix.gogo.command-1.0.2.jar
> org.apache.felix.gogo.jline-1.1.0.jar
> org.apache.felix.gogo.runtime-1.1.0.jar
> org.apache.felix.http.base-4.0.4.jar
> org.apache.felix.http.jetty-4.0.6.jar
> org.apache.felix.http.servlet-api-1.1.2.jar
> org.apache.felix.scr.annotations-1.12.0.jar
> org.apache.felix.scr.compat-1.0.4.jar
> org.apache.felix.scr.ds-annotations-1.2.10.jar
> org.apache.felix.scr-2.1.10.jar
> org.osgi.core-6.0.0.jar
> org.osgi.service.serviceloader-1.0.0.jar
> ph-commons-9.1.2.jar
> ph-css-6.1.1.jar
> polymer-2.7.0.jar
> project-base-osgi-1.0-SNAPSHOT.jar
> shadycss-1.8.0.jar
> slf4j-api-1.7.25.jar
> slf4j-simple-1.7.25.jar
> tomcat-servlet-api-8.0.9.jar
> vaadin-accordion-1.0.0.jar
> vaadin-accordion-flow-1.0.3.jar
> vaadin-app-layout-1.0.2.jar
> vaadin-app-layout-flow-1.1.1.jar
> vaadin-button-2.1.5.jar
> vaadin-button-flow-1.3.2.jar
> vaadin-checkbox-2.2.7.jar
> vaadin-checkbox-flow-1.3.1.jar
> vaadin-combo-box-4.2.8.jar
> vaadin-combo-box-flow-2.1.3.jar
> vaadin-context-menu-4.3.4.jar
> vaadin-context-menu-flow-2.0.1.jar
> vaadin-control-state-mixin-2.1.3.jar
> vaadin-core-13.0.4.jar
> vaadin-custom-field-1.0.1.jar
> vaadin-custom-field-flow-2.0.2.jar
> vaadin-date-picker-3.3.4.jar
> vaadin-date-picker-flow-1.3.0.jar
> vaadin-details-1.0.1.jar
> vaadin-details-flow-1.0.1.jar
> vaadin-development-mode-detector-2.0.0.jar
> vaadin-dialog-2.2.1.jar
> vaadin-dialog-flow-1.3.0.jar
> vaadin-element-mixin-2.1.3.jar
> vaadin-form-layout-2.1.2.jar
> vaadin-form-layout-flow-1.3.1.jar
> vaadin-grid-5.3.3.jar
> vaadin-grid-flow-3.0.3.jar
> vaadin-icons-4.2.2.jar
> vaadin-icons-flow-1.3.1.jar
> vaadin-iron-list-flow-1.3.0.jar
> vaadin-item-2.1.0.jar
> vaadin-list-box-1.1.0.jar
> vaadin-list-box-flow-1.3.0.jar
> vaadin-list-mixin-2.1.2.jar
> vaadin-login-1.0.0.jar
> vaadin-login-flow-1.0.0.jar
> vaadin-lumo-styles-1.4.2.jar
> vaadin-lumo-theme-1.4.3.jar
> vaadin-material-styles-1.2.2.jar
> vaadin-material-theme-1.4.3.jar
> vaadin-notification-1.2.1.jar
> vaadin-notification-flow-1.3.0.jar
> vaadin-ordered-layout-1.1.0.jar
> vaadin-ordered-layout-flow-1.3.0.jar
> vaadin-overlay-3.2.11.jar
> vaadin-progress-bar-1.1.0.jar
> vaadin-progress-bar-flow-1.3.0.jar
> vaadin-radio-button-1.1.5.jar
> vaadin-radio-button-flow-1.3.1.jar
> vaadin-select-2.0.4.jar
> vaadin-select-flow-1.0.0.jar
> vaadin-slf4j-jdk14-1.6.1.jar
> vaadin-split-layout-4.1.0.jar
> vaadin-split-layout-flow-1.3.1.jar
> vaadin-tabs-2.1.2.jar
> vaadin-tabs-flow-1.3.0.jar
> vaadin-text-field-2.3.6.jar
> vaadin-text-field-flow-1.3.0.jar
> vaadin-themable-mixin-1.4.4.jar
> vaadin-time-picker-1.2.2.jar
> vaadin-time-picker-flow-1.1.2.jar
> vaadin-upload-4.2.1.jar
> vaadin-upload-flow-1.3.0.jar
> vaadin-usage-statistics-2.0.2.jar
> validation-api-2.0.0.Final.jar
> webcomponentsjs-1.2.6.jar
> websocket-api-9.4.12.v20180830.jar
> websocket-client-9.4.12.v20180830.jar
> websocket-common-9.4.12.v20180830.jar
> websocket-server-9.4.12.v20180830.jar
> websocket-servlet-9.4.12.v20180830.jar
>
> Am 18.09.19, 02:17 schrieb "Jean-Baptiste Onofré" <jb...@nanthrax.net>:
>
>      Thanks for the update Julian.
>           I will take a look on vaadin example, and eventually update it if needed.
>           I keep you posted.
>           Regards
>      JB
>           On 18/09/2019 06:56, Julian Feinauer wrote:
>      > Hey, short update on that one…
>      >
>      >
>      >
>      > In fact, I quickly went through it and I didn’t get much out of it (in
>      > fact, I didn’t even get it to run).
>      >
>      > But what there is now, is this vaadin example for OSGi which is not that
>      > great… I think.
>      >
>      > Its located here:
>      >
>      >
>      >
>      > 
> https://github.com/vaadin/base-starter-flow-osgi/commit/47aac30104092a15c2744e39e6ed10a79d11ea12
>      >
>      >
>      >
>      > (this is the last version for the vaadin 13.x.x release).
>      >
>      >
>      >
>      > I get it to start its own felix distro and show the site.
>      >
>      > Is there an ‘easy’ trick to get all necessary parts out of it for a
>      > karaf feature?
>      >
>      > I didn’t get it straightforward as it brings its own jetty and stuff
>      > which leads then to some NPEs in my karaf setup.
>      >
>      >
>      >
>      > Any help is appreciated!
>      >
>      > Julian
>      >
>      >
>      >
>      > On 2019/09/16 16:33:15, Jean-Baptiste Onofré <j...@nanthrax.net
>      > <ma...@nanthrax.net>> wrote:
>      >
>      >> Hi Julian,>
>      >
>      >>
>      >
>      >> I don't have personal experience but I helped some guys on Vaadin.>
>      >
>      >>
>      >
>      >> IMHO, Vaadin should provide a clean features XML.>
>      >
>      >>
>      >
>      >> This is one that I created for Vaadin 7:>
>      >
>      >>
>      >
>      >> <?xml version="1.0" encoding="UTF-8"?>>
>      >
>      >> <features xmlns="http://karaf.apache.org/xmlns/features/v1.0.0"
>      > <http://karaf.apache.org/xmlns/features/v1.0.0%22>>
>      >
>      >>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>      > <http://www.w3.org/2001/XMLSchema-instance%22>>
>      >
>      >>     xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.0.0>
>      >
>      >> http://karaf.apache.org/xmlns/features/v1.0.0"
>      > <http://karaf.apache.org/xmlns/features/v1.0.0%22>>
>      >
>      >>     name="vaadin7-feature">>
>      >
>      >>
>      >
>      >>     <feature install="true" name="vaadin7-feature" version="1.0.0-SNAPSHOT">>
>      >
>      >> <feature>vaadin7-common</feature>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-themes/7.3.0</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-shared/7.3.0</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-server/7.3.0</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-client/7.3.0</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-client-compiled/7.3.0</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-push/7.3.0</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin/vaadin-sass-compiler/0.9.2</bundle>>
>      >
>      >>     </feature>>
>      >
>      >>
>      >
>      >>     <feature name="vaadin7-common" version="1.0.0-SNAPSHOT">>
>      >
>      >>
>      >
>      >> <bundle>mvn:com.vaadin.external.google/android-json/0.0.20131108.vaadin1</bundle>>
>      >
>      >>
>      >
>      >> <bundle>mvn:org.jbundle.util.osgi.wrapped/org.jbundle.util.osgi.wrapped.c3p0/0.9.1.2</bundle>>
>      >
>      >> <bundle>mvn:org.quartz-scheduler/quartz/2.2.1</bundle>>
>      >
>      >> <bundle>mvn:joda-time/joda-time/2.4</bundle>>
>      >
>      >>
>      >
>      >> 
> <bundle>wrap:mvn:org.springframework/spring-core/3.2.6.RELEASE$Bundle-SymbolicName=Spring-Framework&amp;Bundle-Version=3.2.6.RELEASE</bundle>>
>      >
>      >>
>      >
>      >> 
> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/1.1.4c_7</bundle>>
>      >
>      >> <bundle>mvn:com.google.guava/guava/16.0.1</bundle>>
>      >
>      >> <bundle>mvn:io.netty/netty/3.9.0.Final</bundle>>
>      >
>      >> <bundle>mvn:org.apache.commons/commons-lang3/3.3.2</bundle>>
>      >
>      >>
>      >
>      >> <bundle>mvn:com.vaadin.external.flute/flute/1.3.0.gg2</bundle>>
>      >
>      >>
>      >
>      >>
>      > 
> <bundle>mvn:com.vaadin.external.streamhtmlparser/streamhtmlparser-jsilver/0.0.10.vaadin1</bundle>>
>      >
>      >
>      >>
>      > <bundle>mvn:com.vaadin.external.google/guava/16.0.1.vaadin1</bundle>>
>      >
>      >>
>      >
>      >>
>      >
>      >>
>      > <bundle>mvn:org.eclipse.jetty.orbit/javax.servlet/3.0.0.v201112011016</bundle>>
>      >
>      >
>      >>
>      >
>      >>
>      > 
> <bundle>wrap:mvn:org.w3c.css/sac/1.3$Bundle-SymbolicName=org-w3c-css-sac&amp;Bundle-Version=1.3</bundle>>
>      >
>      >
>      >> <bundle>mvn:org.jsoup/jsoup/1.6.3</bundle>>
>      >
>      >>
>      >
>      >> <bundle>mvn:com.vaadin.external.slf4j/vaadin-slf4j-jdk14/1.6.1</bundle>>
>      >
>      >>
>      >
>      >>
>      > <bundle>mvn:com.vaadin.external.atmosphere/atmosphere-runtime/2.1.2.vaadin3</bundle>>
>      >
>      >
>      >>
>      >
>      >>
>      > 
> <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.gwt-dev/2.4.0_1</bundle>>
>      >
>      >
>      >> <bundle>mvn:org.apache.commons/commons-jexl/2.1.1</bundle>>
>      >
>      >> <bundle>mvn:com.vaadin.external.json/json/0.0.20080701</bundle>>
>      >
>      >>
>      >
>      >>
>      > 
> <bundle>wrap:mvn:javax.validation/validation-api/1.0.0.GA$Bundle-SymbolicName=validation-api&amp;Bundle-Version=1.0.0.GA</bundle>>
>      >
>      >
>      >>
>      >
>      >>
>      > 
> <bundle>wrap:mvn:net.sourceforge.cssparser/cssparser/0.9.11$Bundle-SymbolicName=cssparser&amp;Bundle-Version=0.9.11</bundle>>
>      >
>      >
>      >>     </feature>>
>      >
>      >> </features>>
>      >
>      >>
>      >
>      >> It's not up to date, but could be a good starting point to update >
>      >
>      >>
>      >
>      >> I would propose a updated features XML as Vaadin PR.>
>      >
>      >>
>      >
>      >> Regards>
>      >
>      >> JB>
>      >
>      >>
>      >
>      >> On 16/09/2019 18:27, Julian Feinauer wrote:>
>      >
>      >> > Hi all,>
>      >
>      >> > >
>      >
>      >> >  >
>      >
>      >> > >
>      >
>      >> > we use the Vaadin Framework [1] in multiple projects as Frontend technology.>
>      >
>      >> > >
>      >
>      >> > As I just recently started with Karaf I wanted to build a small example>
>      >
>      >> > app based on Vaadin and OSGI.>
>      >
>      >> > >
>      >
>      >> > Although Vaadin claims to have OSGi support [2], it really doesn’t feel>
>      >
>      >> > well documented, properly tested and up to date. And it is lacking a>
>      >
>      >> > good Karaf integration like a feature or so.>
>      >
>      >> > >
>      >
>      >> > An Example project is shown here [3] but its very implicit (uses>
>      >
>      >> > embedded Felix and tons of maven shenanigans as it looks).>
>      >
>      >> > >
>      >
>      >> >  >
>      >
>      >> > >
>      >
>      >> > Does anyone here have experience with Vaadin or an idea on how one would>
>      >
>      >> > approach a Vaadin-OSGi Application?>
>      >
>      >> > >
>      >
>      >> >  >
>      >
>      >> > >
>      >
>      >> > Thanks!>
>      >
>      >> > >
>      >
>      >> > Julian>
>      >
>      >> > >
>      >
>      >> >  >
>      >
>      >> > >
>      >
>      >> > [1] https://vaadin.com/>
>      >
>      >> > >
>      >
>      >> > [2] https://vaadin.com/docs/v14/flow/osgi/tutorial-osgi-basic.html>
>      >
>      >> > >
>      >
>      >> > [3] https://github.com/vaadin/base-starter-flow-osgi>
>      >
>      >> > >
>      >
>      >>
>      >
>      >> -- >
>      >
>      >> Jean-Baptiste Onofré>
>      >
>      >> jbonofre@apache.org <ma...@apache.org>>
>      >
>      >> http://blog.nanthrax.net>
>      >
>      >> Talend - http://www.talend.com>
>      >
>      >>
>      >
>           --
>      Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
>      Talend - http://www.talend.com
>