On 10/9/09 14:01, Edelson, Justin wrote:
Finally, I do think it's a worthwhile discussion to see if the Sling launcher should be
better housed in the Felix or Karaf projects, merely because, as you point out, it
"has nothing really to do with Sling."
Well, if it makes sense, I think having another launcher subproject
isn't a bad idea, especially since we tell people that we don't expect
our default launcher to be sufficient for everyone, it is just a basic
launcher.
Does anyone know if the web app launcher is completely different than
Main? Just wondering if there is some synergy...
-> richard
Justin
________________________________
From: Felix Meschberger [mailto:[email protected]]
Sent: Fri 10/9/2009 6:51 AM
To: [email protected]
Subject: Re: Default web app integration behavior
Edelson, Justin schrieb:
Felix Meschberger wrote:
I wonder, why you did not propose your extensions to Sling ? It would be
interesting to hear, what you need and whether we could embrace them.
Not because I don't like Sling :)
I am far from assuming that, of course ;-)
Mostly because what I did was to take things away from Sling's launcher (I think I said somewhere
in this thread that I'd like Felix to do a subset of what Sling does). Specifically, as you noted,
Sling shares launcher code between the standalone and webapp versions and there's some added
complexity as a result. IIRC, there's also a fair bit of code in there which appears to allow for
the launcher to be replaced at runtime and I haven't had the time to research why this was done
(and didn't want to post a question to the dev list without doing the necessary research). Also,
the initial project where this came up is distinct from our Sling projects, i.e. it doesn't use JCR
and is more "service-orientated" than "resource-orientated."
Please keep in mind, that the Sling launcher has nothing really to do
with Sling, though currently in the sling.properties file there are a
few Sling specific properties ...
The point about "launcher to be replaced at runtime" is not exactly
correct. The functionality is to allow to update the framework at
runtime by updating the system bundle (as it is stipulated by the core
spec). This is something which must be done outside of the framework and
proves very useful.
Also, in Sling, Filter support is limited to wrapping Sling resources. For example (and
correct me if I'm wrong), there's no way with Sling currently to put a filter in front of
the web console (and part of this project is to put LDAP auth in front of the console).
As a result, I implemented my own "Filter Bridge" based on the Equinox Servlet
Bridge which I'm now in a position to throw away because Felix HttpService bridge
supports Filters. I'd certainly be interested in seeing how/if Sling is going to move
away from the Equinox bridge now that Felix provides a suitable replacement and whether
or not one this will result in the ability to use Filters across all HttpService-based
requests.
Yes, that's true, the Sling launcher does not currently support the full
scope of what is possible in a general web application.
With the advent of Sten's new HTTP Service implementation, it would
finally be possible to allow for servlet container level filters to be
supported in an environment agnostic way.
This is also something on a virtual todo list of mine with respect to
the Sling launcher.
Felix will provide a ServletContextListener in the proxy module named
DefaultFelixListener. This class will create a configuration map and then
instantiate Felix using this map.
The map is populated with:
-- System properties
These are problematic in a servlet and application container
environment. For example for the WebSphere App Server which is based on
Equinox it contains properties which interfere with the Apache Felix
container. As a result in the Sling Web launcher we do *not* include
sytsem properties by default.
Good to know. What do you think about looking for a system property which
controls whether or not system properties are added to the configuration map?
It could (should?) default to false.
There is such a property. It is named "sling.ignoreSystemProperties" and
defaults to true in the Servlet container case and to false in the
standalone application case.
This SNAPSHOT support might be an interesting add-on to the Sling
launcher. Could you provide a patch ?
Sure. What about .war support? This is probably unnecessary for the vast
majority of Sling users, but I don't see the harm (if you don't want to have
WAR files in the bundles directory tree, don't put them there).
In fact we at Day might also have such a requirement. With Sten's
implementation this might finally come true (right we could have done
this with PAX already ... but again, if we can do it in a container
agnostic way, it is much better.
So nothing, we would not be eager to add in Sling's implementation.
Regards
Felix
Justin
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]