jetty / jetty.project

Eclipse Jetty® - Web Container & Clients - supports HTTP/2, HTTP/1.1, HTTP/1.0, websocket, servlets, and more
https://eclipse.dev/jetty
Other
3.85k stars 1.91k forks source link

Include jetty-osgi artifacts in jetty-distribution #1111

Closed laeubi closed 7 years ago

laeubi commented 7 years ago

Currently the distribution of jetty do not include the jetty-osgi artefacts and thus must be downloaded manually. I also can't find an offical link for this so currently its a little bit of searching each time a new version is released.

joakime commented 7 years ago

That is correct.

The distribution does not have, and will not have, the osgi artifacts.

Those artifacts are available on maven central, and in the case of stable releases (we don't do this for Milestone / RC releases) is also available on the Eclipse P2 repository.

laeubi commented 7 years ago

Can you explain why they are not included? e.g. the latest release (9.3.14) seem not avaiable. This makes it hard to use the jetty-osgi modules and since they are not that large it might be good to include them (e.g. in a seperate folder?).

jmcc0nn3ll commented 7 years ago

The jetty-distribution is something users download, drop in one or more webapps and configure to run an instance of Jetty. It is not a clearinghouse of artifacts related to Jetty to pull bits and pieces out of.

OSGI has its own ways of knitting things together and we provide an integration to the P2 provisioning system as a post release process. That P2 repository is in the following location.

http://download.eclipse.org/jetty/updates/jetty-bundles-9.x/

These artifacts are pulled from maven central, swizzled according to Eclipse processes (leveraging pack200) and then provided to folks that deal in such things. Being a post release process it can lag some time before it is available after a release, if it has been a few days, feel free to reach out.

If you want them immediately after release, they are always available in Maven Central upon release.

laeubi commented 7 years ago

Okay, I can understand this, but it is still confusing IMO, I normally start at this page to get the latest files: https://www.eclipse.org/jetty/download.html I must confess I have never noticed the P2-Repro URL and it seems you can't browse it with an ordinary browser. So the only thing that can be done is download all as a big zip-file. Then I have all bundles. Since the OSGi-Integration requires a jetty-home (or a bundle build similar to this) I now have to download the distribution also with lots of stuff I already downloaded before to get e.g. the xml and config stuff... Or I have to go to maven-central and download all files step by step.

Maybe it would be possible to just pack a jetty-osgi-distribution package that contains all osgi-related ones (boot, jsp, warurl) and place it next to the release downloads on the page?

joakime commented 7 years ago

@laeubi we do not make specialized distributions, just because there are far too many combinations out there for what people expect/want. (you want osgi, someone else will want java 8 compact 3, compact 2, compact 1. the next group will want one customized for debian, fedora, mint. the next one will want one unique for docker. then someone else has a real-time embedded os that wants it stripped down for some kind of industry common jvm. etc.)

The list it literally endless. (we've had every one of those requests btw.)

It was decided long long ago that the artifacts will exist on the global central repository system. The adoption of which is over 97% by java developers world wide. We will not ship a jetty-distribution with everything and the kitchen sink, only what makes sense from a jetty-distribution point of view (jetty-osgi does not make sense from a jetty-distribution usage point of view). Its also hard to justify it when the download statistics for org.eclipse.jetty.osgi shows that less then 0.004% of users even download it (either through the global central repository, or the p2 repositories).

Note: Jetty 9.4.x will even introduce a more stripped version of the jetty-distribution based on feedback from our users who want less content in the jetty-distribution, and the proliferation of build tools (even non-java build tools!) that use the jetty-distribution. See jetty-home-<version>.jar

Also, just about every java based build tool supports the global central repository currently.

If you use any of the following to build your java application, you have support now:

Use the facilities built into those tools to get the tree of artifacts you need.

If you are using a non-java build tool, then script the downloads.

curl http://central.maven.org/maven2/org/eclipse/jetty/osgi/jetty-osgi-boot/${version}/jetty-osgi-boot-${version}.jar
curl http://central.maven.org/maven2/org/eclipse/jetty/osgi/jetty-osgi-boot-jsp/${version}/jetty-osgi-boot-jsp-${version}.jar
...

You can also use search.maven.org to get the specific list of artifacts you are interested in.

eg: g:"org.eclipse.jetty.osgi" AND v:"9.3.14.v20161028"

laeubi commented 7 years ago

Okay, I get the point. Just one note about

download statistics for org.eclipse.jetty.osgi shows that less then 0.004% of users even download it

Might be because currently not many people know about Jetty-OSGi support because you have to explicitly download it :-)