[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[equinox-dev] Using org.eclipse.equinox.http inside of an RCP application

All,

I'd like to host a servlet inside of an RCP application. I started looking into the Equinox implementations rather then wrapping the embedded Tomcat or Jetty jars myself. (I wouldn't mind just using the ones used by the help, but it seems odd that the org.eclipse.tomcat plug-in requires the help plugins, and I'm not sure how to add Servlets to it).

I see that:

org.eclipse.equinox.http
org.eclipse.equinox.servlet.api

Ship inside of the Equinox releases 3.2.0 and 3.2.1. The QuickStart guide says to add: "org.eclipse.equinox.http.registry" and then use the extension points. The releases state that the http.registry plug-in is still in the incubator, which means that "while it could be quite complete, it should be considered experimental".

I was curious how "experimental" the registry is, and if there was a way to use the org.eclipse.equinox.http bundle without doing something nearly identical to the registry bundle. It sure looks like I have to sub-class HTTP and HTTPListener and allocate those. Then I can call "HTTPListener.getService()". At that point I can get an "HttpService" object with which I can register and unregister servlets. Short of loading a fragment into the org.eclipse.equinox.http bundle and exposing the constructor thru a static method, I don't see any alternatives for directly allocating an HttpService.

It appears I should be able to use the services API to get an HttpService object, but at that point, I'd pretty much just be writing "org.eclipse.equinox.http.registry" myself. So I think I'd like to use the "org.eclipse.equinox.http.registry", as my other alternatives aren't very nice.

Another issue is that I can't find the tag for the 3.2.0 or 3.2.1 releases, and the source isn't included in the SDK download. For the 3.2.1 release, the qualifier is "v20060510", but the only tags in the CVS Server :pserver:anonymouse@xxxxxxxxxxxxxxx:/cvsroot/eclipse are:
v20061031
v20061012
v20061002


Am I looking in the wrong place? (My guess is that I'm looking for the "serverside" CVS report, the initial commit message of the files say that they are adding the projects to the "main depot")

I've gotten everything to work just fine using the HEAD of "org.eclipse.equinox.http.registry", but I generally like to use a tagged and released version.

Also the documentation here:
http://www.eclipse.org/equinox/server/http_in_equinox.php

Says to use "javax.servlet" from Orbit, but I instead used "org.eclipse.equinox.servlet.api" that was released with the 3.2.1 Equinox. I'm not sure why I'd want to use the one from the Orbit project. Curious if I would create issues for myself.

Is there anyway to add a bundle to a generated config file so it is auto started? I exported my RCP application grabbed the config.ini file and added two entries to startup http and http.registry. Otherwise the Servlets aren't started up. It'd be nice if there were some way to include that in the product by directly editing the product file or, using a mechanism similar to the the UI for launching Run... -> OSGi Framework Applications -> Plug-ins Tab.

Finally, Eclipse RCP and Equinox have been great to use in my applications, thanks for all of the great infrastructure you've provided.

   Thanks in advance for any help on my questions,
         Kirby

_________________________________________________________________
View Athlete?s Collections with Live Search http://sportmaps.live.com/index.html?source=hmemailtaglinenov06&FORM=MGAC01