Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Http Whiteboard implementation over Tomcat 8

Thanks for the detailed reply.

Looking at HttpServiceServlet I can't help, but notice that the entire whiteboard seems to be anchored in a single ServletContext. Therefore it must multiplex access to this context to simulate multiple whiteboard web applications. This does not seem like a very easy/stable design to implement.

Would it be possible to introduce a service oriented solution along the lines of the Gemini Web web container adapter:
http://git.eclipse.org/c/gemini.web/org.eclipse.gemini.web.gemini-web-container.git/tree/org.eclipse.gemini.web.core/src/main/java/org/eclipse/gemini/web/core/spi/ServletContainer.java

Implementations of this adapter have to be able to programatically talk to a concrete web container instance to make it create ServletContexts. From my experience with Tomcat it is not very hard to make a ServletContext (i.e. a web app internal structure) entirely programatically without any web.xml etc. metadata. It is also pretty easy to boot Tomcat from a bundle. I imagine it will be even easier on Jetty. Combine this with the programmatic servlet/filter/listener creation in Servlet 3.0 and it seems like a compelling design. Basically the whiteboard will only have to bridge Servlet 3.0 with the OSGi service registry.

Does such a (radical) redesign seem feasible?

Regards

On Fri, Oct 28, 2016 at 3:12 AM, Raymond Auge <raymond.auge@xxxxxxxxxxx> wrote:
I you are using PDE projects then you can just use this repository as normal.

IF you are using bndtools >=3.3 you can use this repository configuration:

-plugin.Eclipse.Neon: \
    aQute.bnd.repository.p2.provider.P2Repository; \
        name                =   "Eclipse 4.6 (Neon)"; \
        url                 =   "http://download.eclipse.org/eclipse/updates/4.6/R-4.6-201606061100/"

In order to use this bundle with your own servlet container you must create a bundle which will create an instance of

org.eclipse.equinox.http.servlet.HttpServiceServlet

That instance must provide access to a ServletContext of the real servlet container, and from there the implementation will take over handling sub servlet context's for you.

Furthermore, I really dislike how this is implemented, It's a pretty terrible API design. It would be great to make this service oriented. I'll certainly appreciate any contributions to make it better.

- Ray


On Wed, Oct 26, 2016 at 2:46 PM, Todor Boev <rinsvind@xxxxxxxxx> wrote:
Hello,

I am looking for an implementation of the Http Whiteboard OSGi standard (Chapter 140 EEG spec). 
I also need to run it over Tomcat 8.
Finally it is preferable that the whiteboard runs in "native mode" rather than via a bridge servlet. I.e. have Tomcat instantiate an actual ServletContext for every web app root as it does with WAR/WABs.

Equinox supposedly has an Http whiteboard R6 implementation, but I am somewhat confused as to which bundles do I need to run to get it.

Regards
Todor

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev



--
Raymond Augé (@rotty3000)
Senior Software Architect Liferay, Inc. (@Liferay)
Board Member & EEG Co-Chair, OSGi Alliance (@OSGiAlliance)

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Back to the top