That makes sense to have a standalone module I think.  Is it possible
to have this bridge independant from the used OSGi HTTP service ?

The example in Karaf should be enhanced to use this module when it's
done, as there is a JIRA issue to include the equinox bridge in this
example atm.

On Wed, Oct 7, 2009 at 18:24, Edelson, Justin
<[email protected]> wrote:
> I don't think I've fully groked Karaf, but it seems to do a lot of
> stuff, not all of which is strictly necessary. So yes, I'd rather see
> something simple, yet useable and useful, provided as a standalone
> module and let Karaf, Sling, and anyone else build upon this. Again, my
> desire is not to say that this is the one true way to embed an OSGi
> framework into a J2EE container, but I do think there should be a
> sensible default path to do so. Still, it'd be interested to hear
> feedback from the people more intimately involved with Karaf.
>
> Justin
>
> -----Original Message-----
> From: Richard S. Hall [mailto:[email protected]]
> Sent: Wednesday, October 07, 2009 11:47 AM
> To: [email protected]
> Subject: Re: Default web app integration behavior
>
> I guess the question to ask, is if there is value for being able to do
> this without Karaf? If not, then Karaf is the way to go, but if the same
> webapp launcher could be used in Karaf and independently, then perhaps
> that'd even be more flexible.
>
> Granted, I don't really know what I am talking about when it comes to
> this stuff. ;-)
>
> -> richard
>
> On 10/7/09 16:44, Edelson, Justin wrote:
>> This seems reasonable enough. It appears to me that Karaf currently
>> doesn't really have a webapp launcher. As with the new HttpService
>> release, Karaf provides an example to bootstrap Karaf inside a web
>> container, but it's just an example, not part of the codebase. I'm
>> also not sure if the example will actually work consistently across
>> containers - it assumes that ServletContext.getRealPath() will always
>> return a non-null value, which isn't the case.
>>
>> In any case, as I said originally, I'm open to other suggestions on
>> how to implement this. I just happen to like the start-level-based
>> directory thing that Sling does.
>>
>> Justin
>>
>> -----Original Message-----
>> From: Sten Roger Sandvik [mailto:[email protected]]
>> Sent: Wednesday, October 07, 2009 3:26 AM
>> To: [email protected]
>> Subject: Re: Default web app integration behavior
>>
>> I have actually wanted this for a long time. But I always tought this
>> was the Karaf idea. Karaf has a webapp launcher, but it's not very
>> feature rich.
>> Maybe Karaf should have a launcher framework like sling. Possibly
>> porting slings launchpad framework to Karaf and make it a little more
>> generic. What does the Karaf folks think?
>>
>> /srs
>>
>>
>> On Wed, Oct 7, 2009 at 2:17 AM, Edelson, Justin
>> <[email protected]
>>
>>> wrote:
>>>
>>
>>> In a sense... One way to look at this is that I'm proposing that the
>>> code in
>>> http://svn.apache.org/repos/asf/felix/trunk/http/samples/bridge/<
>>> http://svn.apache.org/repos/asf/felix/trunk/http/samples/bridge/>
> be
>>> enhanced, formalized and included as part of the HttpService
>>> distribution (in the org.apache.felix.http.proxy jar) rather than
>>> having anyone wanting to embed Felix in a webapp write boilerplate
>>>
>> code based on the sample (or, as I did originally, the Sling
> codebase).
>>
>>> This isn't to say that anyone will be forced to use this; if you want
>
>>> to write your own ServletContextListener, go at it. I just think
>>> Felix
>>>
>>
>>> can establish some default behavior and provide the glue code which
>>> implements this behavior. I believe the below defines a reasonable
>>> default behavior, but I'm open to other ideas.
>>>
>>> I am proposing a new launcher in the sense that I'd like to see a
>>> standard/default way of embedding Felix in a web container without
>>> needing to write any code. Although the 2.0.2 release of HttpService
>>> has reduced the amount of code/config necessary to do so (and
>>> eliminated a dependency on Equinox's bridge servlet), I think a
>>> reasonable default "launcher" is a worthwhile effort, mostly because
>>> I
>>>
>>
>>> don't have an overwhelming desire to write the code I describe below
>>> more than once and can't imagine I'm the only one who needs/wants to
>>>
>> do this.
>>
>>> Does that help to clarify my intent?
>>>
>>> Justin
>>>
>>> ________________________________
>>>
>>> From: Richard S. Hall [mailto:[email protected]]
>>> Sent: Tue 10/6/2009 7:31 PM
>>> To: [email protected]
>>> Subject: Re: Default web app integration behavior
>>>
>>>
>>>
>>> Just to be clear, you are proposing a new launcher for the Felix
>>> framework to support web applications?
>>>
>>> ->  richard
>>>
>>> On 10/7/09 0:27, Edelson, Justin wrote:
>>>
>>>> As mentioned in the HttpService release thread, I'd like to see a
>>>> default
>>>>
>>> ServletContextListener provided by Felix. I'm happy to provide a
>>> patch
>>>
>>
>>> to do this, based on code I've already written (which is, in turn,
>>> based on Sling code). Before doing this, I'd like to get some
>>> feedback
>>>
>>
>>> on what I believe the default behavior to be.
>>>
>>>> Here's what I'd like to propose as a starting point for the default
>>>> Felix
>>>>
>>> webapp configuration:
>>>
>>>> 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
>>>> -- the contents of /WEB-INF/framework.properties
>>>> -- servlet context init params
>>>>
>>>> If this configuration map does not contain either
>>>>
>>> org.osgi.framework.system.packages
>>> org.osgi.framework.system.packages.extra
>>> keys, the value of the org.osgi.framework.system.packages.extra
>>> property will be created by combining the following:
>>>
>>>> * the list of compendium packages
>>>> * the value of felix.webapp.system.packages.extra (if defined in the
>>>>
>>> configuration map)
>>>
>>>> * javax.servlet and javax.servlet.http with a version corresponding
>>>> to
>>>>
>>> the result of
>>> ServletContext.getMajorVersion()+"."+ServletContext.getMinorVersion()
>>>
>>>> The configuration map will also contain an instance of a class
>>>> called
>>>>
>>> BootstrapInstaller (see below), wrapped inside a list, under the
>>> felix.systembundles.activators key. Potentially, this this should be
>>> extensible using a protected hook method which subclasses can
>>>
>> implement).
>>
>>>> (in the example code, #1 and #2 are handled by a separate class, but
>>>>
>>
>>>> I'm
>>>>
>>> not sure this is a good idea as it makes it harder for downstream
>>> users to override the default behavior)
>>>
>>>> The BootstrapInstaller class, which implements BundleActivator, does
>>>>
>>
>>>> the
>>>>
>>> following:
>>>
>>>> * Save the BundleContext in a servlet context attribute named
>>>>
>>> org.osgi.framework.BundleContext.
>>>
>>>> * Create a list of subdirectories under /WEB-INF/resources/bundles.
>>>> Each
>>>>
>>> subdirectory name must be parseable as a number. This number will be
>>> taken as the start level for the bundles contained within that
>>>
>> directory.
>>
>>>> * For each bundle (defined as files ending in .jar or .war) within
>>>> each
>>>>
>>> subdirectory of /WEB-INF/resources/bundles, read the manifest and
>>> ensure it has a symbolic name.
>>>
>>>> * Install or update each bundle:
>>>> -- if no bundle with the symbolic name is already installed
>>>> -- if a bundle with the same symbolic name is installed, but has an
>>>>
>>> earlier version
>>>
>>>> -- if a bundle with the same symbolic name and version is installed,
>>>>
>>
>>>> but
>>>>
>>> the version ends in "-SNAPSHOT".
>>>
>>>> * Start all the installed bundles
>>>>
>>>> This behavior is basically a subset of what Sling currently does
>>>> (except
>>>>
>>> that Sling doesn't deal with war files or have the SNAPSHOT behavior,
>
>>> both of which I happen to need). Sling also does the "saving the
>>> bundle context as a servlet context attribute in a separate
>>> BundleActivator, which is reasonable enough).
>>>
>>>> Thoughts?
>>>>
>>>>
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> 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]
>>
>>
>
> ---------------------------------------------------------------------
> 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]
>
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to