Hi Peter,

I've tried to run your test case on my forked version.
First of all, I got a Framework exception when running the test case out of the 
box : 
[Framework Event Dispatcher] DEBUG wrap_mvn_org.apache.lucene_lucene-core_3.1.0 
- BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.neo4j.lucene-index - FrameworkEvent ERROR
org.osgi.framework.BundleException: The bundle 
"org.neo4j.lucene-index_1.4.0.SNAPSHOT [9]" could not be resolved. Reason: 
Missing Constraint: Import-Package: org.apache.lucene.analysis; version="3.0.0"

This shows the lucene-index bundle has a unresolved imported package. That 
strange because lucene-core is deployed wrapped into a bundle just before. 
There may be a problem with the wrapping process... So, i changed the test case 
to use org.apache.servicemix.bundles.lucene:3.0.3_1, which is a bundled version 
of lucene 3.0.3 that i've been using during my forking tests. Using this bundle 
version and my forked bundles, I get the execution trace shown below. The test 
case still fails, but somewhere else. Let me explain: 
To manage services loaded using JDK service feature from other bundles, my 
forked version automatically registers declared JDK services as OSGi services. 
This is done is the OSGiExtensionLoader.registerBundleServices method 
(https://github.com/njouanin/community/blob/master/kernel/src/main/java/org/neo4j/kernel/impl/osgi/OSGiExtensionLoader.java).
So, using my forked version, the LuceneIndexProvider is being exposed as OSGi 
service, so it is visible to OSGi loader and 
org.neo4j.kernel.IndexManagerImpl.getIndexProvider shouldn't throw 
IllegalArgumentException anymore.
BUT, as shown below, i know have a exception during datasource initialisation. 
The LuceneDataSource class is not visible to the kernel bundle, where service 
registration occurs. So I see two possible solution for this : 
 - change lucene-index bundle to export-package org.neo4j.index.impl.lucene 
(bad solution)
 - add a bundle activator in lucene-index bundle to register 
LuceneIndexProvider service on bundle startup, but I don't know its 
dependencies.

Let me know if my analysis is not clear for you ...
PS : changes made to the test case have been comited to 
git://github.com/njouanin/neo4j-osgi-examples.git


[Framework Event Dispatcher] DEBUG org.ops4j.pax.logging.pax-logging-service - 
BundleEvent STARTED
activating null null
[Framework Event Dispatcher] DEBUG com.springsource.javax.transaction - 
BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.neo4j.kernel - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.neo4j.kernel - ServiceEvent REGISTERED
[Framework Event Dispatcher] INFO 
org.neo4j.kernel.impl.osgi.OSGiExtensionLoader - Bundle org.neo4j.kernel: 
Service org.neo4j.kernel.impl.transaction.TransactionManagerProvider registered 
with implementation 
org.neo4j.kernel.impl.transaction.TransactionManagerProvider[native]
[Framework Event Dispatcher] WARN 
org.neo4j.kernel.impl.osgi.OSGiExtensionLoader - Implementation class 
org.neo4j.kernel.impl.management.JmxExtension not found by classloader
Kernel: attempting to load extensions of type org.neo4j.kernel.Version
[Framework Event Dispatcher] DEBUG org.neo4j.kernel - ServiceEvent REGISTERED
[Framework Event Dispatcher] INFO 
org.neo4j.kernel.impl.osgi.OSGiExtensionLoader - Bundle org.neo4j.kernel: 
Service org.neo4j.kernel.Version registered with implementation Neo4j - Graph 
Database Kernel 1.4-SNAPSHOT (revision: 1.4.M01-32-g51e2494-dirty)
[Framework Event Dispatcher] DEBUG org.apache.servicemix.bundles.lucene - 
BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.neo4j.lucene-index - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.neo4j.lucene-index - ServiceEvent 
REGISTERED
[Framework Event Dispatcher] INFO 
org.neo4j.kernel.impl.osgi.OSGiExtensionLoader - Bundle org.neo4j.lucene-index: 
Service org.neo4j.graphdb.index.IndexProvider registered with implementation 
org.neo4j.graphdb.index.IndexProvider[lucene]
Kernel: attempting to load extensions of type org.neo4j.kernel.KernelExtension
Kernel: attempting to load extensions of type 
org.neo4j.graphdb.index.IndexProvider
org.neo4j.graphdb.TransactionFailureException: Could not create data source 
lucene-index[lucene-index]
        at 
org.neo4j.kernel.impl.transaction.TxModule.registerDataSource(TxModule.java:181)
        at 
org.neo4j.index.impl.lucene.LuceneIndexImplementation.<init>(LuceneIndexImplementation.java:72)
        at 
org.neo4j.index.impl.lucene.LuceneIndexProvider.load(LuceneIndexProvider.java:38)
        at 
org.neo4j.kernel.KernelData.loadIndexImplementations(KernelData.java:146)
        at 
org.neo4j.kernel.EmbeddedGraphDbImpl$2.initializeIndexProviders(EmbeddedGraphDbImpl.java:179)
        at org.neo4j.kernel.GraphDbInstance.start(GraphDbInstance.java:159)
        at 
org.neo4j.kernel.EmbeddedGraphDbImpl.<init>(EmbeddedGraphDbImpl.java:189)
        at 
org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:79)
        at 
org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:63)
        at org.neo4j.examples.osgi.Neo4jActivator.start(Neo4jActivator.java:41)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
        at 
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
        at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
        at 
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.ClassNotFoundException: 
org.neo4j.index.impl.lucene.LuceneDataSource
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
        at 
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
        at 
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at 
org.neo4j.kernel.impl.transaction.XaDataSourceManager.create(XaDataSourceManager.java:67)
        at 
org.neo4j.kernel.impl.transaction.TxModule.registerDataSource(TxModule.java:175)
        ... 23 more
Kernel: attempting to load extensions of type org.neo4j.kernel.Version
[Start Level Event Dispatcher] DEBUG 
BuildByTinyBundlestinybundles3494323386071429083UID - ServiceEvent REGISTERED
[Start Level Event Dispatcher] DEBUG 
BuildByTinyBundlestinybundles3494323386071429083UID - ServiceEvent UNREGISTERING
[Framework Event Dispatcher] DEBUG 
BuildByTinyBundlestinybundles3494323386071429083UID - BundleEvent STOPPED
[Framework Event Dispatcher] DEBUG 
BuildByTinyBundlestinybundles3494323386071429083UID - FrameworkEvent ERROR
org.osgi.framework.BundleException: Exception in 
org.neo4j.examples.osgi.Neo4jActivator.start() of bundle 
BuildByTinyBundlestinybundles3494323386071429083UID.
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
        at 
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
        at 
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
        at 
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
        at 
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
        at 
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.IllegalArgumentException: No index provider 'lucene' found
        at 
org.neo4j.kernel.IndexManagerImpl.getIndexProvider(IndexManagerImpl.java:71)
        at 
org.neo4j.kernel.IndexManagerImpl.findIndexConfig(IndexManagerImpl.java:104)
        at 
org.neo4j.kernel.IndexManagerImpl.getOrCreateIndexConfig(IndexManagerImpl.java:173)
        at org.neo4j.kernel.IndexManagerImpl.forNodes(IndexManagerImpl.java:244)
        at org.neo4j.examples.osgi.Neo4jActivator.start(Neo4jActivator.java:43)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
        ... 11 more
[Framework Event Dispatcher] DEBUG org.eclipse.osgi - FrameworkEvent STARTLEVEL 
CHANGED
[Framework Event Dispatcher] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
BundleEvent INSTALLED
[Framework Event Dispatcher] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
BundleEvent RESOLVED
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6 to be in 
PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6,PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f,PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd,PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6,
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
Service: org.ops4j.pax.exam.ProbeInvoker with 
Probe-Signature="PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6" and 
expression="org.ops4j.pax.exam.testforge.BundlesInState;probe"
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
PaxExam-Executable to be in 
PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6,PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f,PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd,PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6,
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f to be in 
PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6,PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f,PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd,PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6,
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
Service: org.ops4j.pax.exam.ProbeInvoker with 
Probe-Signature="PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f" and 
expression="org.ops4j.pax.exam.testforge.CountBundles;probe"
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd to be in 
PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6,PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f,PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd,PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6,
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
Service: org.ops4j.pax.exam.ProbeInvoker with 
Probe-Signature="PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd" and 
expression="org.ops4j.pax.exam.testforge.WaitForService;probe"
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6 to be in 
PaxExam-ba231db7-7981-48bb-9b52-94ec505fc5e6,PaxExam-e4039d86-ad59-4cc1-a568-f54ab0b5867f,PaxExam-02ae9fca-aaa3-4028-9297-568a1a4b8dfd,PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6,
[main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
Service: org.ops4j.pax.exam.ProbeInvoker with 
Probe-Signature="PaxExam-5b5978e7-93ad-4676-aa3b-6565370ad4d6" and 
expression="org.ops4j.pax.exam.testforge.WaitForService;probe"
[main] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
ServiceEvent REGISTERED
[main] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
ServiceEvent REGISTERED
[main] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
ServiceEvent REGISTERED
[main] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
ServiceEvent REGISTERED
[Framework Event Dispatcher] DEBUG 
org.ops4j.pax.exam.spi.probesupport.intern.DefaultResourceWriter_4102799c - 
BundleEvent STARTED
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 6.141 sec <<< 
FAILURE!

Results :

Failed tests: 
  neo4jStartupTest(org.neo4j.examples.osgi.OSGiTest)

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0



Le 10 juin 2011 à 10:00, Peter Neubauer a écrit :

> Yeah,
> that would be great Nicolas! The only thing is that you will need to
> build Pax Tinybundles,
> 
> g...@github.com:ops4j/org.ops4j.pax.tinybundles.git since I am using
> SNAPSHOT dep there.
> 
> Lemme know if you need help!
> 
> Cheers,
> 
> /peter neubauer
> 
> GTalk:      neubauer.peter
> Skype       peter.neubauer
> Phone       +46 704 106975
> LinkedIn   http://www.linkedin.com/in/neubauer
> Twitter      http://twitter.com/peterneubauer
> 
> http://www.neo4j.org               - Your high performance graph database.
> http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
> 
> 
> 
> On Fri, Jun 10, 2011 at 9:43 AM, Nicolas Jouanin
> <nicolas.joua...@gmail.com> wrote:
>> Hi,
>> I'll try this during the weekend if you agree and I'll let you know.
>> 
>> 
>> 2011/6/9 Peter Neubauer <peter.neuba...@neotechnology.com>
>> 
>>> Nicolas,
>>> I have now a failing testcase (albeit using snapshot versions of PAX
>>> stuff, trying to relax that ASAP) at
>>> https://github.com/neo4j/neo4j-osgi-examples that exposes the
>>> IndexProvider not being found in OSGi environments.
>>> 
>>> Is your fork of Neo4j Community fixing this issue? In that case, it
>>> would be great to verify it against the testcase and merge it in!
>>> 
>>> Cheers,
>>> 
>>> /peter neubauer
>>> 
>>> GTalk:      neubauer.peter
>>> Skype       peter.neubauer
>>> Phone       +46 704 106975
>>> LinkedIn   http://www.linkedin.com/in/neubauer
>>> Twitter      http://twitter.com/peterneubauer
>>> 
>>> http://www.neo4j.org               - Your high performance graph database.
>>> http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
>>> http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
>>> 
>>> 
>>> 
>>> On Thu, Jun 2, 2011 at 10:33 AM, Nicolas Jouanin
>>> <nicolas.joua...@gmail.com> wrote:
>>>> Hi,
>>>> 
>>>> This page may help you :
>>> http://wiki.escapek.org/display/DEV/Neo4j+community+edition+installation
>>>> 
>>>> 
>>>> Le 2 juin 2011 à 09:30, Super Wang a écrit :
>>>> 
>>>>> I've tried to expose org.neo4j.graphdb.GraphDatabaseService as a service
>>>>> component directly and use a delegate class as implementation, but
>>> failed...
>>>>> 
>>>>> 
>>>>> On Thu, Jun 2, 2011 at 12:34, Andreas Kollegger <
>>>>> andreas.kolleg...@neotechnology.com> wrote:
>>>>> 
>>>>>> Hey,
>>>>>> 
>>>>>> The Neo4j libraries should be usable within OSGi, though we're a bit
>>> lax in
>>>>>> keeping on top of that. The best approach would be to use one bundle to
>>>>>> instantiate the database and advertise the reference as a service for
>>> use by
>>>>>> other bundles.
>>>>>> 
>>>>>> Cheers,
>>>>>> Andreas
>>>>>> 
>>>>>> On Jun 1, 2011, at 8:25 PM, Super Wang wrote:
>>>>>> 
>>>>>>> Hi folks,
>>>>>>> 
>>>>>>> I'm new to neo4j and I'm going to embed neo4j to my OSGI
>>>>>> environment(without
>>>>>>> Spring) as a component, so I can keep a single instance of graph
>>> database
>>>>>>> and can make it available for all other bundles.
>>>>>>> 
>>>>>>> Any ideas about how to implement this?
>>>>>>> 
>>>>>>> Thank you very much.
>>>>>>> _______________________________________________
>>>>>>> Neo4j mailing list
>>>>>>> User@lists.neo4j.org
>>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Neo4j mailing list
>>>>>> User@lists.neo4j.org
>>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>>>> 
>>>>> _______________________________________________
>>>>> Neo4j mailing list
>>>>> User@lists.neo4j.org
>>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>> 
>>>> _______________________________________________
>>>> Neo4j mailing list
>>>> User@lists.neo4j.org
>>>> https://lists.neo4j.org/mailman/listinfo/user
>>>> 
>>> _______________________________________________
>>> Neo4j mailing list
>>> User@lists.neo4j.org
>>> https://lists.neo4j.org/mailman/listinfo/user
>>> 
>> _______________________________________________
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>> 
> _______________________________________________
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

_______________________________________________
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to