created a wrapper for elastic search. it working fine while running as java application. But while i create OSGI bundle it throwing a error.
org.elasticsearch.env.FailedToResolveConfigException: Failed to resolve config path [names.txt], tried file path [names.txt], path file [/home/local/PAYODA/sidharthan.r/config/names.txt], and classpath
at org.elasticsearch.env.Environment.resolveConfig(Environment.java:207)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:118)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:154)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:120)
at com.payoda.commons.elasticsearch.util.GenericEsSearch.getES(GenericEsSearch.java:54)
Pls help me.. am using ES version 0.90.10
Place names.txt file inside bundle.you can find names.txt file inside elasticsearch.jar.Add following code where you create client instance.
Thread.currentThread().setContextClassLoader(*classname*.class.getClassLoader());
Builder settings = ImmutableSettings.settingsBuilder().put("cluster.name", esHosts);
settings.put("path.conf", path_of_names.txt);
TransportClient transportClient = new TransportClient(settings);
I added 2 jars to my class_path, they are elasticsearch.jar,lucene.jar. Version of jars must be same as version of Elasticsearch.
now it works like charm..