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

[8.0.x] Add a few more Jetty bundles to the Karaf features #1842

Closed
wborn opened this issue Mar 12, 2023 · 7 comments
Closed

[8.0.x] Add a few more Jetty bundles to the Karaf features #1842

wborn opened this issue Mar 12, 2023 · 7 comments
Assignees
Labels
Milestone

Comments

@wborn
Copy link

wborn commented Mar 12, 2023

In openHAB we depend on many Jetty bundles. It would make version management for us easier if we could fully manage these bundles by depending on Pax Web 8.0.x Karaf Jetty features.

After comparing the openHAB feature files (core, target platform) and the Pax Web 8.0.x features.xml file, I found that Pax Web does not have features including these bundles:

  • mvn:org.eclipse.jetty/jetty-alpn-client
    (only available in Pax Web 9.0.x after Pax Web 9 release with JDK 11 compatibility #1743)
  • mvn:org.eclipse.jetty/jetty-alpn-java-client
  • mvn:org.eclipse.jetty/jetty-proxy
  • mvn:org.eclipse.jetty.http2/http2-client

Perhaps it is possible to also include these bundles in existing or new Pax Web features?

@grgrzybek
Copy link
Member

There's pax-web-jetty-extras feature which (as of now) contains:

<feature name="pax-web-jetty-extras" description="Jetty 9 additional bundles" version="${dependency.org.eclipse.jetty}">
	<feature>pax-web-jetty</feature>

	<bundle start-level="30">mvn:org.eclipse.jetty/jetty-rewrite/${dependency.org.eclipse.jetty}</bundle>
	<bundle start-level="30">mvn:org.eclipse.jetty/jetty-servlets/${dependency.org.eclipse.jetty}</bundle>
</feature>

I can add what you need there - or even create pax-web-jetty-http2-extras feature to distinguish between "normal" and http/2 features. WDYT?

@grgrzybek grgrzybek self-assigned this Mar 13, 2023
@grgrzybek grgrzybek added the type: improvement Improvement label Mar 13, 2023
@grgrzybek grgrzybek added this to the 8.0.18 milestone Mar 13, 2023
@wborn
Copy link
Author

wborn commented Mar 13, 2023

Sounds like a good plan! 👍 Perhaps the proxy bundle can go into pax-web-jetty-extras and a new pax-web-jetty-http2-extras can be created for people who are also using a lot of HTTP/2 functionalities. 🙂

@paulsp
Copy link

paulsp commented Mar 13, 2023

Could you add "extra" features to support JSF/Myface and the Aries based CDI? I can create a new issue for this if desired.

@grgrzybek grgrzybek changed the title Add a few more Jetty bundles to the Karaf features [8.0.x] Add a few more Jetty bundles to the Karaf features Mar 23, 2023
@grgrzybek
Copy link
Member

Could you add "extra" features to support JSF/Myface and the Aries based CDI? I can create a new issue for this if desired.

For now, JSF/MyFaces/PrimeFaces/Aries-CDI/Aries-JaxRS are test dependencies of Pax Web and there are example usages among integration tests.
I'd like to avoid tying Pax Web to any version of these libraries and IMO it should be up to the user to create their own features with needed dependencies.

However do not hesitate suggesting such features - there may even be two features files, like:

  • mvn:org.ops4j.pax.web/pax-web-features/VERSION/xml/features
  • mvn:org.ops4j.pax.web/pax-web-features/VERSION/xml/features-extra

@grgrzybek
Copy link
Member

grgrzybek commented Mar 23, 2023

Here's a full list of Jetty artifacts taken from jetty-bom:

org.eclipse.jetty/apache-jsp
org.eclipse.jetty/apache-jstl
org.eclipse.jetty.fcgi/fcgi-client
org.eclipse.jetty.fcgi/fcgi-server
org.eclipse.jetty.gcloud/jetty-gcloud-session-manager
org.eclipse.jetty.http2/http2-client
org.eclipse.jetty.http2/http2-common
org.eclipse.jetty.http2/http2-hpack
org.eclipse.jetty.http2/http2-http-client-transport
org.eclipse.jetty.http2/http2-server
org.eclipse.jetty/infinispan-common
org.eclipse.jetty/infinispan-embedded-query
org.eclipse.jetty/infinispan-remote-query
org.eclipse.jetty/jetty-alpn-client
org.eclipse.jetty/jetty-alpn-conscrypt-client
org.eclipse.jetty/jetty-alpn-conscrypt-server
org.eclipse.jetty/jetty-alpn-java-client
org.eclipse.jetty/jetty-alpn-java-server
org.eclipse.jetty/jetty-alpn-openjdk8-client
org.eclipse.jetty/jetty-alpn-openjdk8-server
org.eclipse.jetty/jetty-alpn-server
org.eclipse.jetty/jetty-annotations
org.eclipse.jetty/jetty-ant
org.eclipse.jetty/jetty-client
org.eclipse.jetty/jetty-continuation
org.eclipse.jetty/jetty-deploy
org.eclipse.jetty/jetty-distribution
org.eclipse.jetty/jetty-hazelcast
org.eclipse.jetty/jetty-home
org.eclipse.jetty/jetty-http
org.eclipse.jetty/jetty-http-spi
org.eclipse.jetty/jetty-io
org.eclipse.jetty/jetty-jaas
org.eclipse.jetty/jetty-jaspi
org.eclipse.jetty/jetty-jmx
org.eclipse.jetty/jetty-jndi
org.eclipse.jetty/jetty-nosql
org.eclipse.jetty/jetty-openid
org.eclipse.jetty/jetty-plus
org.eclipse.jetty/jetty-proxy
org.eclipse.jetty/jetty-quickstart
org.eclipse.jetty/jetty-rewrite
org.eclipse.jetty/jetty-security
org.eclipse.jetty/jetty-server
org.eclipse.jetty/jetty-servlet
org.eclipse.jetty/jetty-servlets
org.eclipse.jetty/jetty-spring
org.eclipse.jetty/jetty-unixsocket
org.eclipse.jetty/jetty-util
org.eclipse.jetty/jetty-util-ajax
org.eclipse.jetty/jetty-webapp
org.eclipse.jetty/jetty-xml
org.eclipse.jetty.memcached/jetty-memcached-sessions
org.eclipse.jetty.osgi/jetty-httpservice
org.eclipse.jetty.osgi/jetty-osgi-boot
org.eclipse.jetty.osgi/jetty-osgi-boot-jsp
org.eclipse.jetty.osgi/jetty-osgi-boot-warurl
org.eclipse.jetty.websocket/javax-websocket-client-impl
org.eclipse.jetty.websocket/javax-websocket-server-impl
org.eclipse.jetty.websocket/websocket-api
org.eclipse.jetty.websocket/websocket-client
org.eclipse.jetty.websocket/websocket-common
org.eclipse.jetty.websocket/websocket-server
org.eclipse.jetty.websocket/websocket-servlet

@grgrzybek
Copy link
Member

Grouping into what we already have:

== pax-web-jetty
org.eclipse.jetty/jetty-client
org.eclipse.jetty/jetty-util
org.eclipse.jetty/jetty-util-ajax
org.eclipse.jetty/jetty-io
org.eclipse.jetty/jetty-http
org.eclipse.jetty/jetty-xml
org.eclipse.jetty/jetty-server
org.eclipse.jetty/jetty-security
org.eclipse.jetty/jetty-servlet
org.eclipse.jetty/jetty-servlets
org.eclipse.jetty/jetty-continuation
org.eclipse.jetty/jetty-jmx
org.eclipse.jetty/jetty-jaas

== pax-web-jetty-extras
org.eclipse.jetty/jetty-rewrite

== pax-web-jetty-websockets
org.eclipse.jetty/jetty-client
org.eclipse.jetty.websocket/javax-websocket-client-impl
org.eclipse.jetty.websocket/javax-websocket-server-impl
org.eclipse.jetty.websocket/websocket-api
org.eclipse.jetty.websocket/websocket-client
org.eclipse.jetty.websocket/websocket-common
org.eclipse.jetty.websocket/websocket-server
org.eclipse.jetty.websocket/websocket-servlet

== pax-web-jetty-http2
org.eclipse.jetty.http2/http2-common
org.eclipse.jetty.http2/http2-hpack
org.eclipse.jetty.http2/http2-server

== pax-web-jetty-http2-jdk8
org.eclipse.jetty/jetty-alpn-server
org.eclipse.jetty/jetty-alpn-openjdk8-server

== pax-web-jetty-http2-jdk9
org.eclipse.jetty/jetty-alpn-server
org.eclipse.jetty/jetty-alpn-java-server

And the remaining are:

org.eclipse.jetty/apache-jsp
org.eclipse.jetty/apache-jstl
org.eclipse.jetty.fcgi/fcgi-client
org.eclipse.jetty.fcgi/fcgi-server
org.eclipse.jetty.gcloud/jetty-gcloud-session-manager
org.eclipse.jetty.http2/http2-client
org.eclipse.jetty.http2/http2-http-client-transport
org.eclipse.jetty/infinispan-common
org.eclipse.jetty/infinispan-embedded-query
org.eclipse.jetty/infinispan-remote-query
org.eclipse.jetty/jetty-alpn-client
org.eclipse.jetty/jetty-alpn-conscrypt-client
org.eclipse.jetty/jetty-alpn-conscrypt-server
org.eclipse.jetty/jetty-alpn-java-client
org.eclipse.jetty/jetty-alpn-openjdk8-client
org.eclipse.jetty/jetty-annotations
org.eclipse.jetty/jetty-ant
org.eclipse.jetty/jetty-deploy
org.eclipse.jetty/jetty-distribution
org.eclipse.jetty/jetty-hazelcast
org.eclipse.jetty/jetty-home
org.eclipse.jetty/jetty-http-spi
org.eclipse.jetty/jetty-jaspi
org.eclipse.jetty/jetty-jndi
org.eclipse.jetty/jetty-nosql
org.eclipse.jetty/jetty-openid
org.eclipse.jetty/jetty-plus
org.eclipse.jetty/jetty-proxy
org.eclipse.jetty/jetty-quickstart
org.eclipse.jetty/jetty-spring
org.eclipse.jetty/jetty-unixsocket
org.eclipse.jetty/jetty-webapp
org.eclipse.jetty.memcached/jetty-memcached-sessions
org.eclipse.jetty.osgi/jetty-httpservice
org.eclipse.jetty.osgi/jetty-osgi-boot
org.eclipse.jetty.osgi/jetty-osgi-boot-jsp
org.eclipse.jetty.osgi/jetty-osgi-boot-warurl

@grgrzybek
Copy link
Member

grgrzybek commented Mar 23, 2023

Bundles added to pax-web-jetty-extras:

  • org.eclipse.jetty/jetty-openid
  • org.eclipse.jetty/jetty-proxy

Bundles added to pax-web-jetty-http2-jdk8 and pax-web-jetty-http2-jdk9:

  • org.eclipse.jetty/jetty-alpn-client
  • org.eclipse.jetty/jetty-alpn-openjdk8-client
  • org.eclipse.jetty/jetty-alpn-java-client

Bundles added to pax-web-jetty-http2-extras:

  • org.eclipse.jetty.http2/http2-client
  • org.eclipse.jetty.http2/http2-http-client-transport

Not added, because we've decided not to support it (#1640):

  • org.eclipse.jetty/jetty-jaspi

Not added, because we're doing the OSGi stuff on our own:

  • org.eclipse.jetty.osgi/jetty-httpservice
  • org.eclipse.jetty.osgi/jetty-osgi-boot
  • org.eclipse.jetty.osgi/jetty-osgi-boot-jsp
  • org.eclipse.jetty.osgi/jetty-osgi-boot-warurl

Not added, because we have pax-web-jsp:

  • org.eclipse.jetty/apache-jsp
  • org.eclipse.jetty/apache-jstl

Not added, because we implement "web applications" differently:

  • org.eclipse.jetty/jetty-annotations
  • org.eclipse.jetty/jetty-webapp
  • org.eclipse.jetty/jetty-quickstart
  • org.eclipse.jetty/jetty-plus

Not added, because it gives you jndi.properties with java.naming.factory.initial and java.naming.factory.url.pkgs properties on the classpahth:

  • org.eclipse.jetty/jetty-jndi

Not added, unless there's demand for FCGI:

  • org.eclipse.jetty.fcgi/fcgi-client
  • org.eclipse.jetty.fcgi/fcgi-server

Not added, unless there's demand for Infinispan:

  • org.eclipse.jetty/infinispan-common
  • org.eclipse.jetty/infinispan-embedded-query
  • org.eclipse.jetty/infinispan-remote-query

Not added, unless there's demand for Memcached:

  • org.eclipse.jetty.memcached/jetty-memcached-sessions

Not added, unless there's demand for Conscrypt:

  • org.eclipse.jetty/jetty-alpn-conscrypt-client
  • org.eclipse.jetty/jetty-alpn-conscrypt-server

Not added, unless there's demand for GCloud:

  • org.eclipse.jetty.gcloud/jetty-gcloud-session-manager

Not added, unless there's demand for MongoDB:

  • org.eclipse.jetty/jetty-nosql

Not added, unless there's demand for Hazelcast:

  • org.eclipse.jetty/jetty-hazelcast

Not added, because it's deprecated:

  • org.eclipse.jetty/jetty-spring

Not added, because it's related to Jetty distribution itself:

  • org.eclipse.jetty/jetty-start
  • org.eclipse.jetty/jetty-distribution
  • org.eclipse.jetty/jetty-deploy
  • org.eclipse.jetty/jetty-home

Not added, because it's an implementation of Java HTTP Server SPI

  • org.eclipse.jetty/jetty-http-spi

Not added, because ANT is no longer THAT popular:

  • org.eclipse.jetty/jetty-ant

Not added, because we don't want to be tied to com.github.jnr:jnr-unixsocket:

  • org.eclipse.jetty/jetty-unixsocket

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

No branches or pull requests

3 participants