Neo4j嵌入了OSGi

时间:2012-01-18 10:33:15

标签: osgi neo4j

我想在嵌入模式下使用neo4j。正如我所见,不可能在不同的进程中共享GraphDatabase实例。现在我的想法是使用嵌入在OSGi容器中的neo4j来共享不同组件的相同数据库。编写BundleActivator创建GraphDB并将其公开给其他OSGi捆绑包并提供服务是不是一个好主意?

2 个答案:

答案 0 :(得分:2)

An example template setup with tests从neo4j相关组件中制作超级捆绑包。试着告诉我们它是怎么回事。有关典型的激活器,请参阅here

答案 1 :(得分:1)

现在您可以使用适当的DI来实例化数据库,例如http://docs.neo4j.org/chunked/snapshot/tutorials-java-embedded-osgi.html

    //the cache providers
    ArrayList<CacheProvider> cacheList = new ArrayList<CacheProvider>();
    cacheList.add( new SoftCacheProvider() );

    //the index providers
    IndexProvider lucene = new LuceneIndexProvider();
    ArrayList<IndexProvider> provs = new ArrayList<IndexProvider>();
    provs.add( lucene );
    ListIndexIterable providers = new ListIndexIterable();
    providers.setIndexProviders( provs );

    //the database setup
    GraphDatabaseFactory gdbf = new GraphDatabaseFactory();
    gdbf.setIndexProviders( providers );
    gdbf.setCacheProviders( cacheList );
    db = gdbf.newEmbeddedDatabase( "target/db" );