Hi,
Am Freitag, den 30.05.2008, 05:22 -0400 schrieb Joseph Ottinger:
> I'm considering using Sling as an OSGi bundle, as opposed to using the
> launcher to start a webserver with the Sling WAR in it.
The sling war is just a wrapper exactly like the standalone app
launcher. These two just bundle all default bundles into the jar for
deployment. The wrapper only starts the OSGi framework and then installs
all bundles packed into the jar (or war).
Sling itself is completely built of OSGi bundles - except the maven
plugins (of course) and the launchers in the launchpad folder. So, you
could easily forget about the launchers and just deploy the Sling
bundles into your favourite OSGi framework.
> However, there are some concerns I have:
>
> 1) What bundles are *required?*
Here is a list of bundles:
* OSGi stuff:
Apache Felix Configuration Admin
(Equinox impl does seem to be alright, too)
Apache Felix Declarative Services
(Sling does not work with Equinox impl currently)
Apache Felix Metatype Service
(Equinox impl does seem to be alright, too)
Apache Sling Log Service
(suggest to use this one as it comes with SLF4J and
Apache Commons Logging)
* Apache Felix Web Console
* Apache Commons Libraries:
Commons IO
Commons Collections
* Sling Bundles
API
Engine
AdapterManager
Bundle Resource Provider
Commons OSGi support
Default GET Servlets
Default POST Servlet
Initial Content Loader
Repository API
Jackrabbit API
Jackrabbit Embedded Repository
JCR Base
MIME type mapping
Repository Classloader
Resource Resolver
Scripting - Javascript
Scripting JSP
Scripting JSP Taglib
Scripting Core
Scripting API
Servlet Resolver
JSON
* Misc
Jackrabbit JCR Commons
PAX Web Service or Equinox Servlet Bridge
More libraries from the Sling project (and other projects) may be added
as required. But for a basic functionality, I think this list is about
it.
I agree, that it is kind of complicated to gather all these bundles to
get the running system. We are currently figuring out how to create an
OSGi Bundle Repository with the Sling Bundles for easier deployment.
> 2) The Jackrabbit-server bundle starts up an internal repository, which can
> be accessed via a ServiceTracker *and* RMI. The RMI part worries me, from a
> security standpoint. How do I manage this, outside of just firewalling RMI
> away?
The RMI registration of Jackrabbit is done by an RMI component. This
component can be disabled easily: On the Components page of the OSGi
Manager (at /system/console/components) look for the
RmiRegistrationSupport component and click "Disable". Yet this is a
manual task and the component is enabled again after restart.
We might add a configuration option to switch RMI support off by
configuration.
Hope this helps.
Regards
Felix