2012-01-18 4 views
2

Я хочу использовать neo4j во встроенном режиме. Как я видел, невозможно разделить экземпляр GraphDatabase в разных процессах. Теперь моя идея состояла в том, чтобы использовать neo4j, встроенный в контейнер OSGi, для совместного использования одного и того же db для разных компонентов. Это хорошая идея написать BundleActivator, который создает GraphDB и предоставляет его другим пакетам OSGi с сервисом?Neo4j с OSGi

ответ

2

An example template setup with tests, производя суперкомпьютер из компонентов, связанных с neo4j. Попробуйте и сообщите нам, как это происходит. См. here для типичного активатора.

+0

Попытка построить пример завершается с: Не удалось выполнить цели com.mycila.maven-лицензии-плагин: Maven-лицензионном-плагин : 1.9.0: check (check-license) в проектах neo4j-osgi-examples: в некоторых файлах нет ожидаемого заголовка лицензии –

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"); 
Смежные вопросы