>
> Hi Fabrizio
>

Hi Felix!
What's a pleaure to talk with you.. i'm surfing the sling mail archive and
i'm convinced that you are the real Apache Felix! ;-)
I'm totally new to OSGI, but i'm enjoying a lot while discovering it...
The solution you suggested is very nice (the fragment bundle itself is a
very nice concept.. :-)), but perhpas i wasn't able to do all the right
things...
I have a directory postgres_fragment with:
- the postgresql.jar jdbc drivers
- the META-INF directory, containing a blank DEPENDENCIES file, NOTICE and
LICENSE files and the MANIFEST.MF file as follow:

Manifest-Version: 1.0
Bundle-Name: PostgreSQL Fragment
Bundle-Description: Attach PostgreSQL connectors to the embedded Jackrabbit
server bundle
Private-Package: org.postgresql
Fragment-Host: org.apache.sling.jcr.jackrabbit.server
Built-By: fabris
Bundle-Category: db_driver
Created-By: Fabris
Bundle-Vendor: HicTech s.r.l.
Build-Jdk: 1.6.0_16
Bundle-Version: 0.1
Bnd-LastModified: 1258108309167
Bundle-ManifestVersion: 2
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Bundle-SymbolicName: com.hictech.bundle.postgresql


I make the jar of the directory content and install it using the
system/console webapp, but the bundle is only installed and not started (if
i understood, it can just depend from the different fragment bundles
lifecycle...) and the repository periodically tries to start but fails with
the following message:
13.11.2009 16:31:34.058 *ERROR* [Repository Pinger]
org.apache.jackrabbit.core.RepositoryImpl failed to start Repository: Cannot
instantiate persistence manager
org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager:
Could not load class org.postgresql.Driver....

I'm not understanding where is the error... can you help me or give the
right link to read? ;-)
Thanks in advance,
greetings,
Fabris.




> Fabrizio Scarcello schrieb:
> > Hi to all,
> > a quick question: where i have to put jdbc drivers, if i use an external
> db
> > (not just the embedded derby)?
> > I downloaded the Sling war distribution, extracted and configured it with
> > PostegreSQL and then deployed it in a Tomcat instance under the context
> > /sling. It works fine, as i can see the system/console page...
> > But, trying to execute my scripts, i found that Sling searchs the
> > PostegreSQL drivers, but can't find them (even if i put the jar in the
> /lib
> > tomcat directory, where other webapps find and use it)...
> > I have the following exception:
> > 13.11.2009 12:11:04.858 *ERROR* [SCR Component Actor]
> > org.apache.jackrabbit.core.RepositoryImpl failed to start Repository:
> Cannot
> > instantiate persistence manager
> >
> org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager:
> > Could not load class org.postgresql.Driver: org.postgresql.Driver
> >
> > I think Sling has a different class loading engine and then different
> > settings...
>
> Yes, Sling is running inside an OSGi framework which is all about
> encapsulation (amongst other things of course). So there is no global
> class loader to which all class laoder delegate automagically as is
> custom in a regular java application.
>
> Otherwise all these nices things of dynamic bundle upgrades would not be
> possible.
>
> > Where i have to put the PostgreSQL driver jar to make it visible to
> Sling?
>
> Point is, how do you make them available to the Jackrabbit-Server
> bundle. I would suggest you create a Fragment bundle of the PostgreSQL
> driver jar which you attach to the Jackrabbit-Server bundle.
>
> The postgresql bundle contains the required drivers as private packages
> (no need to Export-Package them) and the framework will take care to add
> them to the class loader of the jackrabbit server bundle for the
> Jackrabbit Core to see the classes.
>
> Hope this helps.
>
> Regards
> Felix
>

Reply via email to