akka / akka-http

The Streaming-first HTTP server/module of Akka
https://doc.akka.io/docs/akka-http
Other
1.34k stars 594 forks source link

Add OSGi manifest headers to bundle #574

Closed michael-smith closed 7 years ago

michael-smith commented 7 years ago

Both akka and spray support OSGi so it would be nice if the akka-http builds also included the bundle headers.

ktoso commented 7 years ago

Would you offer validating once we add the configurations back? We don't actively use OSGi so help in validating it's set up correctly would be welcome.

michael-smith commented 7 years ago

No problem, thank you.

michael-smith commented 7 years ago

Is there any update on when this might be available?

collymy commented 7 years ago

I would be happy to validate an OSGI version of HTTP as I can't upgrade to Akka Http 10 until I get an OSGI version which means my project is currently stuck at Akka 2.4.11.

ktoso commented 7 years ago

Would you be able to contribute some of the work needed? It's mostly copying what was already done in Akka previously to the new project structure over here.

It's currently not a priority for us (we need to focus on http/2 and play support).

collymy commented 7 years ago

Hi, I don't know a great deal about the build system for Akka but I do know quite a bit about the OSGI side of things. If somebody could add the basics to the Akka Http build system I would be happy to clone it and try to produce OSGI versions of the of the jars and submit back a pull request. I would need some hand holding as I have never contributed to a project before but I don't imagine it would take much as I am an experienced Scala and Java developer. Colly

  From: ktoso <notifications@github.com>

To: akka/akka-http akka-http@noreply.github.com Cc: Colly Myers collymy@yahoo.co.uk; Comment comment@noreply.github.com Sent: Wednesday, 1 March 2017, 17:16 Subject: Re: [akka/akka-http] Add OSGi manifest headers to bundle (#574)

Would you be able to contribute some of the work needed to do? It's currently not a priority for us (we need to focus on http/2 and play support).— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

jrudolph commented 7 years ago

The problem is that there currently is no working pipeline that would allow someone to maintain osgi metadata without much hassle. In the past, support for osgi has broken several releases because the sbt plugins deleted files from jar files etc. Unfortunately, so far, trying to support osgi was a net negative because it harmed us more than it helped for the small number of people who cared.

I guess as with every other packaging solution (deb, rpm, ...) there is also a way for osgi to create package for upstream modules without having to include packaging metadata into the upstream source code. This package could then be maintained outside of this module by people who actually care for osgi support and know what needs to be done to make it work. Could that be a solution?

collymy commented 7 years ago

I don't know. If it is a solution then why can't Akka Http provide that solution as a separate task under SBT to produce the OSGI bundle.

mpilquist commented 7 years ago

In my experience, the cost of maintaining OSGi versions of JARs separately from the main project is prohibitive and error prone. Additionally, it leads to classpath / dependency management problems, requiring exclusions and other nastiness.

Having contributed OSGi support to a large number of projects and maintaining OSGi support in all my open source Scala projects, I feel comfortable saying that the total cost of including OSGi support in the upstream repository is minimal. Errors certainly occur, especially if there's a lot of dynamic classloading or optional dependencies, but they are relatively rare.

I understand that OSGi isn't a priority for the Akka team. If the community puts a PR together, what are the chances it is merged?

ktoso commented 7 years ago

I understand that OSGi isn't a priority for the Akka team. If the community puts a PR together, what are the chances it is merged?

Yes, I think we should not hinder adoption. Help would be very welcome, thanks in advance.

jrudolph commented 7 years ago

Thanks for your input, @mpilquist. I hope I wasn't too harsh, my OSGi expierences have often been frustrating. I agree with Konrad that we shouldn't hinder adoption so we will accept help if the burden isn't on us to maintain OSGi metadata. And the bug in the sbt osgi plugin should be fixed before which deletes files from packages if OSGi metadata is wrong.

ktoso commented 7 years ago

Done, the next release should include the manifest metadata! We should make sure to not ship it dead on arrival so let's sanity check that at least non osgi users were not impacted, but I hope it'll be all good.

collymy commented 7 years ago

Hi,

I have just upgraded to 10.0.7 and I can report that the OSGI headers worked fine for me.

Thanks very much for your support.