Nicolas,
yes, after looking into the details involved, I think an "official"
superbundle with the core Neo4j components bundled and exported woudl
be the best way forward. Also, it would expose less granular bundles
into an OSGi environment.

Other IndexProviders etc could be then inserted as fragments into that bundle.

It would be absolutely fantastic if you could work on that, maybe
using the neo4j-osgi-examples as the demo project? We could then have
a packaging project there or in a "neo4j-osgi" component that does the
actual production of the superbundle.

WDYT?

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 Mon, Jun 13, 2011 at 11:10 AM, Nicolas Jouanin
<nicolas.joua...@gmail.com> wrote:
> Hi Peter,
>
> As shown below, exporting the implementation package is enough to make the 
> IndexProvider registered as OSGi service (see first line of dump). Now an 
> exception comes later when registering the index. I guess this come from the 
> fact that you register a service of class IndexProvider whereas 
> db.index().forNodes() returns an instance of Index.
>
> [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
> Kernel: attempting to load extensions of type org.neo4j.kernel.Version
> [Start Level Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles9049558959697757777UID - ServiceEvent REGISTERED
> [Start Level Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles9049558959697757777UID - ServiceEvent 
> UNREGISTERING
> [Framework Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles9049558959697757777UID - BundleEvent STOPPED
> [Framework Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles9049558959697757777UID - FrameworkEvent ERROR
> org.osgi.framework.BundleException: Exception in 
> org.neo4j.examples.osgi.Neo4jActivator.start() of bundle 
> BuildByTinyBundlestinybundles9049558959697757777UID.
>        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: The service object is not an 
> instance of the service class org.neo4j.graphdb.index.IndexProvider
>        at 
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:201)
>        at 
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:507)
>        at 
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:525)
>        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
>
> Just by modifying the test case to register an Index the test now succed :
>        serviceRegistration = context.registerService( Index.class.getName(), 
> db.index().forNodes( "nodes" ), new Properties() );
>
> (see result below.
>
> So, after all, that make a lot of modifications for OSGi support ... I guess 
> the easiest solution would be to create a "super-bundle" which would 
> encapsulates all the actual bundles in only one. This would fix export/import 
> package problem, and there could be a specific activator for this bundle to 
> register services and OSGi stuff. Let me know if this solution would be 
> acceptable, so may be I could work on this.
>
>
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running org.neo4j.examples.osgi.OSGiTest
> 263 [main] INFO org.ops4j.pax.exam.spi.DefaultExamSystem - Pax Exam System 
> (Version: 2.1.0) created.
> 13 juin 2011 11:04:37 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.ops4j.pax.exam:pax-exam-container-rbc:jar:2.1.0) as 
> /Users/nico/.m2/repository/org/ops4j/pax/exam/pax-exam-container-rbc/2.1.0/pax-exam-container-rbc-2.1.0.jar
> 13 juin 2011 11:04:37 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.ops4j.pax.exam:pax-exam-extender-service:jar:2.1.0) as 
> /Users/nico/.m2/repository/org/ops4j/pax/exam/pax-exam-extender-service/2.1.0/pax-exam-extender-service-2.1.0.jar
> 13 juin 2011 11:04:37 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.osgi:org.osgi.compendium:jar:4.2.0) as 
> /Users/nico/.m2/repository/org/osgi/org.osgi.compendium/4.2.0/org.osgi.compendium-4.2.0.jar
> 13 juin 2011 11:04:37 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.ops4j.pax.logging:pax-logging-api:jar:1.6.2) as 
> /Users/nico/.m2/repository/org/ops4j/pax/logging/pax-logging-api/1.6.2/pax-logging-api-1.6.2.jar
> 13 juin 2011 11:04:38 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.ops4j.pax.logging:pax-logging-service:jar:1.6.2) as 
> /Users/nico/.m2/repository/org/ops4j/pax/logging/pax-logging-service/1.6.2/pax-logging-service-1.6.2.jar
> 13 juin 2011 11:04:38 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved 
> (javax.transaction:com.springsource.javax.transaction:jar:1.1.0) as 
> /Users/nico/.m2/repository/javax/transaction/com.springsource.javax.transaction/1.1.0/com.springsource.javax.transaction-1.1.0.jar
> 13 juin 2011 11:04:38 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.neo4j:neo4j-kernel:jar:1.4-SNAPSHOT) as 
> /Users/nico/.m2/repository/org/neo4j/neo4j-kernel/1.4-SNAPSHOT/neo4j-kernel-1.4-SNAPSHOT.jar
> 13 juin 2011 11:04:38 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved 
> (org.apache.servicemix.bundles:org.apache.servicemix.bundles.lucene:jar:3.0.3_1)
>  as 
> /Users/nico/.m2/repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.lucene/3.0.3_1/org.apache.servicemix.bundles.lucene-3.0.3_1.jar
> 13 juin 2011 11:04:38 org.ops4j.pax.url.mvn.internal.AetherBasedResolver 
> resolve
> INFO: Resolved (org.neo4j:neo4j-lucene-index:jar:1.4-SNAPSHOT) as 
> /Users/nico/.m2/repository/org/neo4j/neo4j-lucene-index/1.4-SNAPSHOT/neo4j-lucene-index-1.4-SNAPSHOT.jar
> [org.ops4j.pax.exam.rbc.internal.Activator] : Name, port or host is null. So 
> this RBC remains inactive.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
>  : Enabling SLF4J API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
>  : Enabling Jakarta Commons Logging API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
>  : Enabling Log4J API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
>  : Enabling Avalon Logger API support.
> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator]
>  : Enabling JULI Logger API support.
> [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
> Kernel: attempting to load extensions of type org.neo4j.kernel.Version
> [Start Level Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles39457690329512746UID - ServiceEvent REGISTERED
> [Start Level Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles39457690329512746UID - ServiceEvent REGISTERED
> registered {org.neo4j.graphdb.index.Index}={service.id=32}
> [Framework Event Dispatcher] DEBUG 
> BuildByTinyBundlestinybundles39457690329512746UID - BundleEvent STARTED
> [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-16a6d302-ed86-4426-88e2-a32c254bf042 to be in 
> PaxExam-16a6d302-ed86-4426-88e2-a32c254bf042,PaxExam-423a4bba-af37-47ba-a71b-53386361356a,PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba,PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029,
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
> Service: org.ops4j.pax.exam.ProbeInvoker with 
> Probe-Signature="PaxExam-16a6d302-ed86-4426-88e2-a32c254bf042" and 
> expression="org.ops4j.pax.exam.testforge.CountBundles;probe"
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
> PaxExam-423a4bba-af37-47ba-a71b-53386361356a to be in 
> PaxExam-16a6d302-ed86-4426-88e2-a32c254bf042,PaxExam-423a4bba-af37-47ba-a71b-53386361356a,PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba,PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029,
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
> Service: org.ops4j.pax.exam.ProbeInvoker with 
> Probe-Signature="PaxExam-423a4bba-af37-47ba-a71b-53386361356a" and 
> expression="org.ops4j.pax.exam.testforge.WaitForService;probe"
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
> PaxExam-Executable to be in 
> PaxExam-16a6d302-ed86-4426-88e2-a32c254bf042,PaxExam-423a4bba-af37-47ba-a71b-53386361356a,PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba,PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029,
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
> PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba to be in 
> PaxExam-16a6d302-ed86-4426-88e2-a32c254bf042,PaxExam-423a4bba-af37-47ba-a71b-53386361356a,PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba,PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029,
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
> Service: org.ops4j.pax.exam.ProbeInvoker with 
> Probe-Signature="PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba" and 
> expression="org.ops4j.pax.exam.testforge.BundlesInState;probe"
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Test 
> PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029 to be in 
> PaxExam-16a6d302-ed86-4426-88e2-a32c254bf042,PaxExam-423a4bba-af37-47ba-a71b-53386361356a,PaxExam-8b013e88-b54b-45f8-ac3d-d3a1b470aeba,PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029,
> [main] DEBUG org.ops4j.pax.exam.raw.extender.intern.Probe - Registering 
> Service: org.ops4j.pax.exam.ProbeInvoker with 
> Probe-Signature="PaxExam-517dfd43-8cf6-4212-b4d0-c5809eef1029" 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: 0, Errors: 0, Skipped: 0, Time elapsed: 1.357 sec
>
> Results :
>
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
>
>
>
>
> Le 13 juin 2011 à 10:18, Peter Neubauer a écrit :
>
>> Nicolas,
>> thanks for looking into this! If you only move the LuceneDataSource
>> into an exported package, for instance org.neo4j.index.lucene, and
>> export it, would that be sufficient to get the registration done?
>>
>> I don't want to force OSGi upon all Index provider bundles (yet) and
>> keep the impact of making this work at a minimum.
>>
>> 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 Sat, Jun 11, 2011 at 10:21 PM, Nicolas Jouanin
>> <nicolas.joua...@gmail.com> wrote:
>>> 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
>>>
>> _______________________________________________
>> 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