jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Guo Du <mrdu...@gmail.com>
Subject Re: Sling's use of Jackrabbit
Date Sat, 28 Nov 2009 19:45:24 GMT
On Sat, Nov 28, 2009 at 6:22 PM, Felix Meschberger <fmeschbe@gmail.com> wrote:
> That's what we currently do in the Sling embedded repository bundle [1]
Hi Felix,

Thanks for the reply during weekend:)

I saw all dependencies jars are embedded to jackrabbit-server bunlde.

Bundle-ClassPath: .,jackrabbit-jcr-rmi-1.4.1.jar,jackrabbit-core-1.6.0
 .jar,jackrabbit-jcr-commons-1.6.0.jar,jackrabbit-spi-commons-1.6.0.ja
 r,jackrabbit-spi-1.6.0.jar,lucene-core-2.4.1.jar,derby-10.2.1.6.jar,c
 oncurrent-1.3.4.jar,jackrabbit-text-extractors-1.6.0.jar,pdfbox-0.7.3
 .jar,jempbox-0.2.0.jar,fontbox-0.1.0.jar,poi-3.2-FINAL.jar,poi-scratc
 hpad-3.2-FINAL.jar,nekohtml-1.9.7.jar,xercesImpl-2.8.1.jar

This is a good workaround for libs which isn't OSGified, I did the
similar way by generate jar file contain all none OSGfied classes.

          <instructions>
            <DynamicImport-Package>*</DynamicImport-Package>
            <Export-Package>foo.bar.jcr*</Export-Package>
            <Private-Package>
                org.apache.jackrabbit*,
                org.apache.derby*,
                org.apache.tika*,
                org.apache.lucene*,
                org.apache.commons.io*,
                org.apache.commons.pool*,
                org.apache.commons.collections*,
                org.apache.xerces*,
                org.pdfbox*,
                org.textmining*,
                EDU*,
                META-INF.services*
            </Private-Package>
            <Import-Package>
              javax.jcr*;version="[2.0,3.0)",
              org.apache.derby.jdbc;resolution:=optional,
              com.mysql.jdbc;resolution:=optional,
              *;resolution:=optional
            </Import-Package>
          </instructions>

But I have to say that it's not a beautiful way to work in OSGi
environment. We should use proper OSGi header for all jackrabbit jars
for long run. Eventually, all dependencies could be provided by OSGi.
In short term, there could be a bundle to provide all none OSGified
packages, in sling case, it could be at jackrabbit-server bundle.

The repository management is key part of jcr based solutions, so I
expect most of users will do something configuration/coding to meet
their special operation requirement. So embedded private jackrabbit
packages leave little space to do that.

What problem can you see to just add OSGi headers in jackrabbit
project? By this way, I didn't see any reason for users to repackage
jackrabbit for OSGi deployment.

-Guo

Mime
View raw message