Re: [Neo4j] OSGi and Neo4j - superbundle approach
Glad to hear that ! 2011/7/25 Jörg Richter j...@deepamehta.de Hi Peter, SUCCESS!!! No index provider 'lucene' found in OSGi is solved for the moment! Its exactly as you suggest: When using pax exam's native container no error shows up. When using pax exam's pax runner container the error shows up (which is correct OSGi behavoir). When using bundle-friendly-classloader branch of neo 1.5-SNAPSHOT kernel the error disappears! My neo4j-osgi-test project runs successful now! I'm looking forward to have a patch like yours in the next neo4j stable. Thank you and Toni very much for investigation. Cheers, Jörg On Jul 24, 2011, at 22:08, Peter Neubauer wrote: Jörg, there where several issues Toni and me found when looking at your example. Thanks a lot! First of all, Pax Exam Player using the built-in native OSGi Runner is not emulating the real platform classloading correctly. Toni is at this one, the tests are switched to the PaxRunner instead, running in its own process. Secondly, the Neo4j Service.java that is loading the classes and resources is not providing a classloader, which in an OSGi bundle defaults to a classloader that does not find the interesting classes and services. With private static T IterableT java6Loader( ClassT type ) { try { @SuppressWarnings( unchecked ) IterableT result = (IterableT) Class.forName( java.util.ServiceLoader ) .getMethod( load, Class.class, ClassLoader.class ) .invoke( null, type, Service.class.getClassLoader() ); return filterExceptions( result ); } catch ( Exception e ) { return null; } catch ( LinkageError e ) { return null; } } Everything works, but we need to discuss more what classloader to chose in what contexts, as this might not be great in all circumstances. Anyway, you can build the fixed kernel project from https://github.com/neo4j/community/tree/bundle-friendly-classloader, then build the https://github.com/neo4j/neo4j-osgi and you should be able to start up your test project (see my pull request). Let me know if that works! /peter ___ 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
Re: [Neo4j] OSGi and Neo4j - superbundle approach
Hi Peter, I've comited a new test case which work with a pre-built bundle. It currently fails because in OSGiTest class the first test case doesn't close the database, but if you remove the @Test before the first test case the second one will run and succeed. So the neo4j superbundle seems to work correctly, event if I don't know what's wrong when doing it by hand on the felix framework. This need more time to investigate. Don't hesitate to pull code if needed. Nicolas Le 17 juil. 2011 à 22:06, Peter Neubauer a écrit : Nicolas, the best would be to be able to emulate this in a test, too. Maybe classloading issues? Maybe forking the PaxExam test will reproduce the issue, or running you Felix setup as a testcase to trigger this? 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 Sun, Jul 17, 2011 at 9:21 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: I've sent the CLA signup. The OSGiTest is working fine for me too. Problems come when taking the felix framework out of the box and deploying manually neo4j-osgi bundle with another bundle containing the same activator class. I made sure to deploy same bundles but I get java.lang.IllegalArgumentException: No index provider 'lucene' found when registring the IndexService. I think i miss a bundle which is created automatically by pax during the test case. May be lucene is missing. What do you think Le 17 juil. 2011 à 17:33, Peter Neubauer a écrit : Hi Nicolas, Have you been able to run https://github.com/njouanin/neo4j-osgi/blob/master/examples/src/test/java/org/neo4j/examples/osgi/OSGiTest.java properly? It actually is running on Equinox, so let me try it with Felix ... back in a moment. Also, in order to pull your changes, could you sign up as a committer, and send a mail according to http://wiki.neo4j.org/content/About_Contributor_License_Agreement ? 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 Sun, Jul 17, 2011 at 3:02 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi Peter, Thanks for initiating this work on OSGi bundle. I've forked you repository and tried to make is work using this sample activator [1]. My goal is to make my activator work when deployed on Felix with the neo4j superbundle. First of all, I had troubles to mvn clean install the bundle module. maven-bundle-plugin is complaining about bundle.namespace property not set. I've fixed it. Then when deploying it on Felix I had an error saying that javax.transaction couldn't be imported. Because this package is already included in superbundle, I've removed it explicitally from the Import-Package directive. You can see the changes here [2]. Then I tried to make my bundle activated using felix and the following bundles installed : g! lb START LEVEL 1 ID|State |Level|Name 0|Active |0|System Bundle (3.2.2) 1|Active |1|Neo4j OSGi default bundle (0.1.0.SNAPSHOT) 2|Active |1|Apache Felix Bundle Repository (1.6.2) 3|Active |1|Apache Felix Gogo Command (0.8.0) 4|Active |1|Apache Felix Gogo Runtime (0.8.0) 5|Active |1|Apache Felix Gogo Shell (0.8.0) 6|Resolved |1|EscapeK - Neo4j OSGi how-to - Embedded client (0.0.1.SNAPSHOT) There are only felix core, neo4j superbundle and my test bundle. So when starting felix I get the following trace : Welcome to Apache Felix Gogo g! Opening database in embedded mode: 17 juil. 2011 14:57:08 org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog doInternalRecovery INFO: Non clean shutdown detected on log [graphdb/nioneo_logical.log.1]. Recovery started ... OK Populating it ... OK Hello, brave Neo4j world! ERROR: Bundle org.escapek.neo4j-osgi-howto.embedded-client [6] Error starting file:/Users/nico/Dev/felix-framework-3.2.2/bundle/org.escapek.neo4j-osgi-howto.embedded-client_0.0.1-SNAPSHOT.jar (org.osgi.framework.BundleException: Activator start error in bundle org.escapek.neo4j-osgi-howto.embedded-client [6].) java.lang.IllegalArgumentException: No index provider 'lucene' found at org.neo4j.kernel.IndexManagerImpl.getIndexProvider(IndexManagerImpl.java:76
Re: [Neo4j] OSGi and Neo4j - superbundle approach
Hi Peter, Thanks for initiating this work on OSGi bundle. I've forked you repository and tried to make is work using this sample activator [1]. My goal is to make my activator work when deployed on Felix with the neo4j superbundle. First of all, I had troubles to mvn clean install the bundle module. maven-bundle-plugin is complaining about bundle.namespace property not set. I've fixed it. Then when deploying it on Felix I had an error saying that javax.transaction couldn't be imported. Because this package is already included in superbundle, I've removed it explicitally from the Import-Package directive. You can see the changes here [2]. Then I tried to make my bundle activated using felix and the following bundles installed : g! lb START LEVEL 1 ID|State |Level|Name 0|Active |0|System Bundle (3.2.2) 1|Active |1|Neo4j OSGi default bundle (0.1.0.SNAPSHOT) 2|Active |1|Apache Felix Bundle Repository (1.6.2) 3|Active |1|Apache Felix Gogo Command (0.8.0) 4|Active |1|Apache Felix Gogo Runtime (0.8.0) 5|Active |1|Apache Felix Gogo Shell (0.8.0) 6|Resolved |1|EscapeK - Neo4j OSGi how-to - Embedded client (0.0.1.SNAPSHOT) There are only felix core, neo4j superbundle and my test bundle. So when starting felix I get the following trace : Welcome to Apache Felix Gogo g! Opening database in embedded mode: 17 juil. 2011 14:57:08 org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog doInternalRecovery INFO: Non clean shutdown detected on log [graphdb/nioneo_logical.log.1]. Recovery started ... OK Populating it ... OK Hello, brave Neo4j world! ERROR: Bundle org.escapek.neo4j-osgi-howto.embedded-client [6] Error starting file:/Users/nico/Dev/felix-framework-3.2.2/bundle/org.escapek.neo4j-osgi-howto.embedded-client_0.0.1-SNAPSHOT.jar (org.osgi.framework.BundleException: Activator start error in bundle org.escapek.neo4j-osgi-howto.embedded-client [6].) java.lang.IllegalArgumentException: No index provider 'lucene' found at org.neo4j.kernel.IndexManagerImpl.getIndexProvider(IndexManagerImpl.java:76) at org.neo4j.kernel.IndexManagerImpl.findIndexConfig(IndexManagerImpl.java:116) at org.neo4j.kernel.IndexManagerImpl.getOrCreateIndexConfig(IndexManagerImpl.java:178) at org.neo4j.kernel.IndexManagerImpl.getOrCreateNodeIndex(IndexManagerImpl.java:267) at org.neo4j.kernel.IndexManagerImpl.forNodes(IndexManagerImpl.java:255) at org.neo4j.kernel.IndexManagerImpl.forNodes(IndexManagerImpl.java:249) at org.escapek.neo4jOsgiHowto.embeddedClient.EmbeddedClientActivator.start(EmbeddedClientActivator.java:65) at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629) at org.apache.felix.framework.Felix.activateBundle(Felix.java:1904) at org.apache.felix.framework.Felix.startBundle(Felix.java:1822) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192) at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266) at java.lang.Thread.run(Thread.java:680) So everything works fine (open database, populate it and register service) until the activator tries to register IndexProvider service. I then get the previous exception which reminds me of something ... May be you can have a look at the stack trace to look for the error cause. NJ [1] - https://github.com/njouanin/neo4j-osgi-howto/blob/master/embedded-client/src/main/java/org/escapek/neo4jOsgiHowto/embeddedClient/EmbeddedClientActivator.java [2] - https://github.com/njouanin/neo4j-osgi/commit/4ec3eaf58b514d806fde3e48dd942c00fdfddf70 Le 5 juil. 2011 à 22:41, Peter Neubauer a écrit : Hi all, I just pushed an initial working bundle-build to https://github.com/neo4j/neo4j-osgi. You can see the working test in https://github.com/neo4j/neo4j-osgi/blob/master/examples/src/test/java/org/neo4j/examples/osgi/OSGiTest.java that waits for the Activator to instantiate and register a GraphDatabaseService and a LuceneIndex. This should be tweaked, but maybe you can use the bundle project https://github.com/neo4j/neo4j-osgi/blob/master/bundle/pom.xml , which is just one pom.xml, as a blueprint for your OSGi environment Neo4j bundle. Right now JTA and others are drawn into the bundle, which might be too much, but I think you get the picture. This works even with the Java Service Loader architecture. Feel free to fork and tune the bundles exports, and add more tests to it. 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 -
Re: [Neo4j] OSGi and Neo4j - superbundle approach
I've sent the CLA signup. The OSGiTest is working fine for me too. Problems come when taking the felix framework out of the box and deploying manually neo4j-osgi bundle with another bundle containing the same activator class. I made sure to deploy same bundles but I get java.lang.IllegalArgumentException: No index provider 'lucene' found when registring the IndexService. I think i miss a bundle which is created automatically by pax during the test case. May be lucene is missing. What do you think Le 17 juil. 2011 à 17:33, Peter Neubauer a écrit : Hi Nicolas, Have you been able to run https://github.com/njouanin/neo4j-osgi/blob/master/examples/src/test/java/org/neo4j/examples/osgi/OSGiTest.java properly? It actually is running on Equinox, so let me try it with Felix ... back in a moment. Also, in order to pull your changes, could you sign up as a committer, and send a mail according to http://wiki.neo4j.org/content/About_Contributor_License_Agreement ? 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 Sun, Jul 17, 2011 at 3:02 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi Peter, Thanks for initiating this work on OSGi bundle. I've forked you repository and tried to make is work using this sample activator [1]. My goal is to make my activator work when deployed on Felix with the neo4j superbundle. First of all, I had troubles to mvn clean install the bundle module. maven-bundle-plugin is complaining about bundle.namespace property not set. I've fixed it. Then when deploying it on Felix I had an error saying that javax.transaction couldn't be imported. Because this package is already included in superbundle, I've removed it explicitally from the Import-Package directive. You can see the changes here [2]. Then I tried to make my bundle activated using felix and the following bundles installed : g! lb START LEVEL 1 ID|State |Level|Name 0|Active |0|System Bundle (3.2.2) 1|Active |1|Neo4j OSGi default bundle (0.1.0.SNAPSHOT) 2|Active |1|Apache Felix Bundle Repository (1.6.2) 3|Active |1|Apache Felix Gogo Command (0.8.0) 4|Active |1|Apache Felix Gogo Runtime (0.8.0) 5|Active |1|Apache Felix Gogo Shell (0.8.0) 6|Resolved |1|EscapeK - Neo4j OSGi how-to - Embedded client (0.0.1.SNAPSHOT) There are only felix core, neo4j superbundle and my test bundle. So when starting felix I get the following trace : Welcome to Apache Felix Gogo g! Opening database in embedded mode: 17 juil. 2011 14:57:08 org.neo4j.kernel.impl.transaction.xaframework.XaLogicalLog doInternalRecovery INFO: Non clean shutdown detected on log [graphdb/nioneo_logical.log.1]. Recovery started ... OK Populating it ... OK Hello, brave Neo4j world! ERROR: Bundle org.escapek.neo4j-osgi-howto.embedded-client [6] Error starting file:/Users/nico/Dev/felix-framework-3.2.2/bundle/org.escapek.neo4j-osgi-howto.embedded-client_0.0.1-SNAPSHOT.jar (org.osgi.framework.BundleException: Activator start error in bundle org.escapek.neo4j-osgi-howto.embedded-client [6].) java.lang.IllegalArgumentException: No index provider 'lucene' found at org.neo4j.kernel.IndexManagerImpl.getIndexProvider(IndexManagerImpl.java:76) at org.neo4j.kernel.IndexManagerImpl.findIndexConfig(IndexManagerImpl.java:116) at org.neo4j.kernel.IndexManagerImpl.getOrCreateIndexConfig(IndexManagerImpl.java:178) at org.neo4j.kernel.IndexManagerImpl.getOrCreateNodeIndex(IndexManagerImpl.java:267) at org.neo4j.kernel.IndexManagerImpl.forNodes(IndexManagerImpl.java:255) at org.neo4j.kernel.IndexManagerImpl.forNodes(IndexManagerImpl.java:249) at org.escapek.neo4jOsgiHowto.embeddedClient.EmbeddedClientActivator.start(EmbeddedClientActivator.java:65) at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629) at org.apache.felix.framework.Felix.activateBundle(Felix.java:1904) at org.apache.felix.framework.Felix.startBundle(Felix.java:1822) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1192) at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:266) at java.lang.Thread.run(Thread.java:680) So everything works fine (open database, populate it and register service) until the activator tries to register IndexProvider service. I then get the previous exception which reminds me of something ... May be you can have a look at the stack trace
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
Yes, that's what I managed to do : remaned master to a new branch then checkout upstream/master in local master. Thanks. 2011/6/15 Peter Neubauer peter.neuba...@neotechnology.com Nicolas, I think you could just make another branch, or rename the master branch to something else. Then, you could set up a new master and let it track the original master? 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 Tue, Jun 14, 2011 at 10:12 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi Peter (and others), May be you can help me with github... I'dl like to work on this superbundle using the last version of neo4j-community. The problem is that i've already forked this repo for my previous work and now I can't fork it anymore. Also, i've made my modifications on the master branch. Do you know a way of getting the last version of the source code without loosing my previous work ? I was thinking of checking out back to the time I've forked, then create a branch, then pull changes from the original repo. Thx. Le 14 juin 2011 à 09:03, Peter Neubauer a écrit : 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 BuildByTinyBundlestinybundles904955895969775UID - ServiceEvent REGISTERED [Start Level Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - ServiceEvent UNREGISTERING [Framework Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - BundleEvent STOPPED [Framework Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - FrameworkEvent ERROR org.osgi.framework.BundleException: Exception in org.neo4j.examples.osgi.Neo4jActivator.start() of bundle BuildByTinyBundlestinybundles904955895969775UID. 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
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
I'll work on this then and i'll let you know in the coming days. 2011/6/14 Peter Neubauer peter.neuba...@neotechnology.com 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 BuildByTinyBundlestinybundles904955895969775UID - ServiceEvent REGISTERED [Start Level Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - ServiceEvent UNREGISTERING [Framework Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - BundleEvent STOPPED [Framework Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - FrameworkEvent ERROR org.osgi.framework.BundleException: Exception in org.neo4j.examples.osgi.Neo4jActivator.start() of bundle BuildByTinyBundlestinybundles904955895969775UID. 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
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
Hi Peter (and others), May be you can help me with github... I'dl like to work on this superbundle using the last version of neo4j-community. The problem is that i've already forked this repo for my previous work and now I can't fork it anymore. Also, i've made my modifications on the master branch. Do you know a way of getting the last version of the source code without loosing my previous work ? I was thinking of checking out back to the time I've forked, then create a branch, then pull changes from the original repo. Thx. Le 14 juin 2011 à 09:03, Peter Neubauer a écrit : 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 BuildByTinyBundlestinybundles904955895969775UID - ServiceEvent REGISTERED [Start Level Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - ServiceEvent UNREGISTERING [Framework Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - BundleEvent STOPPED [Framework Event Dispatcher] DEBUG BuildByTinyBundlestinybundles904955895969775UID - FrameworkEvent ERROR org.osgi.framework.BundleException: Exception in org.neo4j.examples.osgi.Neo4jActivator.start() of bundle BuildByTinyBundlestinybundles904955895969775UID. 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
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
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
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
) 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
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
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
Re: [Neo4j] How to embed neo4j to OSGI env without spring?
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
Re: [Neo4j] Spring Data Graph in an OSGi environment
Hi, I've written an article [1] showing how to run neo4j embedded database inside an OSGi container. Starting from that I think you can create a bundle which uses this database to create the appropriate Spring data configuration. I suppose that spring-data-graph is packaged as a OSGi compatible jar, so using spring-dm too should do it. [1] http://wiki.escapek.org/display/DEV/Neo4j+community+edition+installation 2011/5/13 Michael Hunger michael.hun...@neotechnology.com I'm no expert in OSGi so I did just the minimal thing, adding bundlor information to the maven build. This is obviously not successful enough. So I would be very happy I someone would pull spring data graph put in the correct OSGi information and send me a pull request. Cheers Michael Am 13.05.2011 um 11:26 schrieb Jean-Pierre Bergamin: Dear neo4j community I'm so free to cross post a question to this list that I already posted in the spring forum ( http://forum.springsource.org/showthread.php?109267-Spring-Data-Graph-in-OSGi-environment ), since most of the SDG experts probably are subscribed to this list. ;-) Could anyone get spring data graph successfully up and running in an OSGi container? Best regards, James ___ 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
Re: [Neo4j] Spring Data Graph in an OSGi environment
Well, at the minimum, it's only a question of adding some extra headers (Bundle-Symbolic, Export-Package; ...) in the package MANIFEST and this can be done automatically using the maven-bundle-plugin. You can have a look at Neo4j pom file or this second article : http://wiki.escapek.org/display/DEV/Create+OSGi+bundle+from+regular+jar+archive 2011/5/13 Michael Hunger michael.hun...@neotechnology.com The issue is about Spring Data Graph not being correctly packaged as OSGi bundle / compatible jar. And I have neither the knowledge nor the resources at the moment to fix that. So if any one of you can help out with that, this would be most welcome. Thanks Michael Am 13.05.2011 um 11:42 schrieb Nicolas Jouanin: Hi, I've written an article [1] showing how to run neo4j embedded database inside an OSGi container. Starting from that I think you can create a bundle which uses this database to create the appropriate Spring data configuration. I suppose that spring-data-graph is packaged as a OSGi compatible jar, so using spring-dm too should do it. [1] http://wiki.escapek.org/display/DEV/Neo4j+community+edition+installation 2011/5/13 Michael Hunger michael.hun...@neotechnology.com I'm no expert in OSGi so I did just the minimal thing, adding bundlor information to the maven build. This is obviously not successful enough. So I would be very happy I someone would pull spring data graph put in the correct OSGi information and send me a pull request. Cheers Michael Am 13.05.2011 um 11:26 schrieb Jean-Pierre Bergamin: Dear neo4j community I'm so free to cross post a question to this list that I already posted in the spring forum ( http://forum.springsource.org/showthread.php?109267-Spring-Data-Graph-in-OSGi-environment ), since most of the SDG experts probably are subscribed to this list. ;-) Could anyone get spring data graph successfully up and running in an OSGi container? Best regards, James ___ 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
Re: [Neo4j] Neo4j on OSGi
Hi guys, I've posted a video on Youtube [1] showing how neo4j server runs on OSGi after a bit of work. Currently the REST API is working fine. The webadmin is also working but there are a few things which don't like the gremlin shell (seems related to grrovy stuffs). Also some links in the server info panel are not working. It seems that links having spaces like Primitive count don't work on my Mac, but they were working yesterday on my other windows computer. I'm not sure this is related with OSGi... Also there seem to have a problem when the RRD database starts but this is minor stuff I guess. So, to do that I've made a few modification in neo4j source code. Especially in the server module, I had to move classes and rename package so the bundle namespace don't overlap anymore with server-api module. Then I've created an OSGiActivator and a specific bootstrapper which : - look for embedded HttpService - registers ServerModules as OSGi services. Then when the server starts it starts registered ServerModules so they can be deployed using Jersey Servlet on HttpService. I don't know if you wish to integrate these modifications in neo4j or even have a review of the modifications i've made. May be I can send a few pull request so at least you can get modifications which make OSGi integration much easier. Modifications are available in my forked repository [2]. Thanks for your feedback. [1] http://www.youtube.com/watch?v=Ufuf7xcv4Mk [2] https://github.com/njouanin/community Le 28 avr. 2011 à 16:07, Nicolas Jouanin a écrit : I've commited a completed implementation for this class [1]. This implementation introspects bundles on their startup and register any service declared in META-INF/services as an OSGi service. I've added a filter to this behaviour, so it only does the work for bundles having the Export-Services directive set to true in MANIFEST.MF. This avoids registration of unwanted services like those declared in the jersey bundle. = this helps me a lot on my current work. Now I have server+webadmin nearly working inside felix :) [1] https://github.com/njouanin/community/blob/master/kernel/src/main/java/org/neo4j/kernel/impl/osgi/OSGiExtensionLoader.java 2011/4/28 Tobias Ivarsson tobias.ivars...@neotechnology.com Right, OSGiExtensionLoader is not completed, but it is supposed to work roughly as you have outlined. -tobias On Wed, Apr 27, 2011 at 1:07 PM, Nicolas Jouanin nicolas.joua...@gmail.comwrote: Hi Andreas, I'm currently looking at class OSGiExtensionLoader and I wonder what's the final purpose of this class ? I mean currently it's used to load extensions which are registered as OSGi services through the loadExtensionsOfType method. Also it manages a list of bundle but does nothing with it. I think there's something missing here. I guess it should introspect theses bundle and register services declared in META-INF/services/ . Is that it ? Nicolas. 2011/4/25 Andreas Kollegger andreas.kolleg...@neotechnology.com Hi Nicolas, I had done some work with embedding an OSGi environment within the server to host plugins, hoping to slowly modularize the server in a sensible way. But that code has been pulled out, as we opted for the Java ServiceLoader approach for plugins. When deploying into an OSGi environment, I've approached it as embedded development. The server only adds the REST api (which isn't needed when talking directly to the database), and the Webadmin (replaced by the OSGi webconsole. well, except for visualization). We've been relaxed about good OSGi discipline in the server bits, because it seemed like OSGi development is embedded development. Are you developing an application in OSGi, or are you interested in replicating the server (including REST+webadmin) in OSGi? -Andreas On Apr 25, 2011, at 5:50 AM, Nicolas Jouanin wrote: Hi, I think an OSGi section in the Neo4j wiki would be great. Of course there's no problem for adding content from my documentation into Neo4j wiki. Let me know if you want me to do it. Concerning OSGi support for the server, I'm also working on it. Currently I'm trying to make the server component run using HttpService for deployment, and use OSGi services to discover the graphDb and server modules. I have some troubles because of server and server-api packages which overlap and protected or even private method or class declaration. You can follow the work on github : https://github.com/njouanin/community (currently working on move-server branch). Nicolas. Le 24 avr. 2011 à 23:17, Peter Neubauer a écrit : Nicolas, Great and concise write-up! Would it be ok to include something along these lines into the documentation for neo4j that gets compiled into http://docs.neo4j.org/ ? An OSGi related section is certainly a good idea
Re: [Neo4j] Neo4j on OSGi
I've commited a completed implementation for this class [1]. This implementation introspects bundles on their startup and register any service declared in META-INF/services as an OSGi service. I've added a filter to this behaviour, so it only does the work for bundles having the Export-Services directive set to true in MANIFEST.MF. This avoids registration of unwanted services like those declared in the jersey bundle. = this helps me a lot on my current work. Now I have server+webadmin nearly working inside felix :) [1] https://github.com/njouanin/community/blob/master/kernel/src/main/java/org/neo4j/kernel/impl/osgi/OSGiExtensionLoader.java 2011/4/28 Tobias Ivarsson tobias.ivars...@neotechnology.com Right, OSGiExtensionLoader is not completed, but it is supposed to work roughly as you have outlined. -tobias On Wed, Apr 27, 2011 at 1:07 PM, Nicolas Jouanin nicolas.joua...@gmail.comwrote: Hi Andreas, I'm currently looking at class OSGiExtensionLoader and I wonder what's the final purpose of this class ? I mean currently it's used to load extensions which are registered as OSGi services through the loadExtensionsOfType method. Also it manages a list of bundle but does nothing with it. I think there's something missing here. I guess it should introspect theses bundle and register services declared in META-INF/services/ . Is that it ? Nicolas. 2011/4/25 Andreas Kollegger andreas.kolleg...@neotechnology.com Hi Nicolas, I had done some work with embedding an OSGi environment within the server to host plugins, hoping to slowly modularize the server in a sensible way. But that code has been pulled out, as we opted for the Java ServiceLoader approach for plugins. When deploying into an OSGi environment, I've approached it as embedded development. The server only adds the REST api (which isn't needed when talking directly to the database), and the Webadmin (replaced by the OSGi webconsole. well, except for visualization). We've been relaxed about good OSGi discipline in the server bits, because it seemed like OSGi development is embedded development. Are you developing an application in OSGi, or are you interested in replicating the server (including REST+webadmin) in OSGi? -Andreas On Apr 25, 2011, at 5:50 AM, Nicolas Jouanin wrote: Hi, I think an OSGi section in the Neo4j wiki would be great. Of course there's no problem for adding content from my documentation into Neo4j wiki. Let me know if you want me to do it. Concerning OSGi support for the server, I'm also working on it. Currently I'm trying to make the server component run using HttpService for deployment, and use OSGi services to discover the graphDb and server modules. I have some troubles because of server and server-api packages which overlap and protected or even private method or class declaration. You can follow the work on github : https://github.com/njouanin/community (currently working on move-server branch). Nicolas. Le 24 avr. 2011 à 23:17, Peter Neubauer a écrit : Nicolas, Great and concise write-up! Would it be ok to include something along these lines into the documentation for neo4j that gets compiled into http://docs.neo4j.org/ ? An OSGi related section is certainly a good idea. Andreas Kollegger has been playing with the OSGi side of things regarding the server, but I don't know the state of it at the moment. Andreas, any status? 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, Apr 18, 2011 at 2:40 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi, I've written a step-by-step guide for installing Neo4j on OSGi ( http://wiki.escapek.org/display/DEV/Neo4j+community+edition+installation ). It is based on my own experience and currently it shows how to install Neo4j community edition and opening a Embedded Graph Database from another bundle. A small example is provided. Next step i'd like to achieve would be a be able to only to install server, webadmin or ha features but also make them running using OSGi HTTPService for example. Those features could also for example look for exposed GraphDatabase and then register management of webadmin features automatically. I don't know if it would be useful or even if that makes sense regarding neo4j use cases. Let me know what you think about
Re: [Neo4j] Neo4j on OSGi
Hi, I think an OSGi section in the Neo4j wiki would be great. Of course there's no problem for adding content from my documentation into Neo4j wiki. Let me know if you want me to do it. Concerning OSGi support for the server, I'm also working on it. Currently I'm trying to make the server component run using HttpService for deployment, and use OSGi services to discover the graphDb and server modules. I have some troubles because of server and server-api packages which overlap and protected or even private method or class declaration. You can follow the work on github : https://github.com/njouanin/community (currently working on move-server branch). Nicolas. Le 24 avr. 2011 à 23:17, Peter Neubauer a écrit : Nicolas, Great and concise write-up! Would it be ok to include something along these lines into the documentation for neo4j that gets compiled into http://docs.neo4j.org/ ? An OSGi related section is certainly a good idea. Andreas Kollegger has been playing with the OSGi side of things regarding the server, but I don't know the state of it at the moment. Andreas, any status? 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, Apr 18, 2011 at 2:40 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi, I've written a step-by-step guide for installing Neo4j on OSGi ( http://wiki.escapek.org/display/DEV/Neo4j+community+edition+installation). It is based on my own experience and currently it shows how to install Neo4j community edition and opening a Embedded Graph Database from another bundle. A small example is provided. Next step i'd like to achieve would be a be able to only to install server, webadmin or ha features but also make them running using OSGi HTTPService for example. Those features could also for example look for exposed GraphDatabase and then register management of webadmin features automatically. I don't know if it would be useful or even if that makes sense regarding neo4j use cases. Let me know what you think about that. Nicolas. ___ 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
Re: [Neo4j] Neo4j OSGI bundle
Hi, I'll try this later on and I'll keep you informed. Also, you could use the maven-bundle-plugin which helps in managing bundle creation and dependencies stuffs. Nicolas. Le 12 mars 2011 à 09:13, Tobias Ivarsson a écrit : Oh, right. Only the bundles that org.neo4j:neo4j depends on exports packages. I guess org.neo4j:neo4j would have to re-export the packages it depends on, so that your application can depend on org.neo4j:neo4j and use those packages. Is that the appropriate way? I have little OSGi experience (other than cursing over it when it fails the build process because you need to very explicitly declare which packages to include). If that would solve things for you we will make sure to make those changes for the next milestone. In the meantime you can directly depend on the bundles org.neo4j:neo4j depends on, you are probably interested in at least: org.neo4j:neo4j-kernel org.neo4j:neo4j-lucene-index But perhaps these as well: org.neo4j:neo4j-management - JMX support org.neo4j:neo4j-graph-algo - Graph algorithms, such as shortest path org.neo4j:neo4j-com - Communication support, this includes the online-backup server, and the bases that HA depends on org.neo4j:neo4j-ha - High availability support for Neo4j You might also want to be nice to us and have Neo4j send a ping to us every day, letting us know how many people use Neo4j: org.neo4j:neo4j-udc Please let us know how this works out for you, and if there are any problems. We have only done casual testing with OSGi, so any feedback is much appreciated. Cheers, Tobias On Fri, Mar 11, 2011 at 10:40 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi, I'm planning to use Neo4j under OSGi framework. Because org.neo4j:neo4j defines the needed headers (in MANIFEST.MF), it can be deployed as a bundle on equinox or felix. Unfortunatelly, the bundle doesn't export any package so it's quite unuseful for me as my own bundle can't import them. I guess, at least neo4j bundle should have Export-Package directive in MANIFEST.MF file. Do you think these headers could be added in the next snapshot ? Thanks. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Tobias Ivarsson tobias.ivars...@neotechnology.com Hacker, Neo Technology www.neotechnology.com Cellphone: +46 706 534857 ___ 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
Re: [Neo4j] Neo4j OSGI bundle
Ok, This works fine when using directly bundles which export packages. Thx Le 12 mars 2011 à 09:13, Tobias Ivarsson a écrit : Oh, right. Only the bundles that org.neo4j:neo4j depends on exports packages. I guess org.neo4j:neo4j would have to re-export the packages it depends on, so that your application can depend on org.neo4j:neo4j and use those packages. Is that the appropriate way? I have little OSGi experience (other than cursing over it when it fails the build process because you need to very explicitly declare which packages to include). If that would solve things for you we will make sure to make those changes for the next milestone. In the meantime you can directly depend on the bundles org.neo4j:neo4j depends on, you are probably interested in at least: org.neo4j:neo4j-kernel org.neo4j:neo4j-lucene-index But perhaps these as well: org.neo4j:neo4j-management - JMX support org.neo4j:neo4j-graph-algo - Graph algorithms, such as shortest path org.neo4j:neo4j-com - Communication support, this includes the online-backup server, and the bases that HA depends on org.neo4j:neo4j-ha - High availability support for Neo4j You might also want to be nice to us and have Neo4j send a ping to us every day, letting us know how many people use Neo4j: org.neo4j:neo4j-udc Please let us know how this works out for you, and if there are any problems. We have only done casual testing with OSGi, so any feedback is much appreciated. Cheers, Tobias On Fri, Mar 11, 2011 at 10:40 PM, Nicolas Jouanin nicolas.joua...@gmail.com wrote: Hi, I'm planning to use Neo4j under OSGi framework. Because org.neo4j:neo4j defines the needed headers (in MANIFEST.MF), it can be deployed as a bundle on equinox or felix. Unfortunatelly, the bundle doesn't export any package so it's quite unuseful for me as my own bundle can't import them. I guess, at least neo4j bundle should have Export-Package directive in MANIFEST.MF file. Do you think these headers could be added in the next snapshot ? Thanks. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user -- Tobias Ivarsson tobias.ivars...@neotechnology.com Hacker, Neo Technology www.neotechnology.com Cellphone: +46 706 534857 ___ 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] Neo4j OSGI bundle
Hi, I'm planning to use Neo4j under OSGi framework. Because org.neo4j:neo4j defines the needed headers (in MANIFEST.MF), it can be deployed as a bundle on equinox or felix. Unfortunatelly, the bundle doesn't export any package so it's quite unuseful for me as my own bundle can't import them. I guess, at least neo4j bundle should have Export-Package directive in MANIFEST.MF file. Do you think these headers could be added in the next snapshot ? Thanks. ___ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user