Wow I am (mostly) a Java developer by trade and I really steered you wrong. 
Sorry! You are definitely registering the module, chock up my poor answer 
to a looong day at work. 

I think far as I can see you have everything you need in place. You 
register the plugin as "river" and set the type in your REST POST to 
"river" which is right though Luca thinks otherwise. Maybe he knows 
something I don't, I'm not batting exactly 1000 here. Let me check your 
code out and install it locally, do a little dev QA.

-Rob



On Friday, May 2, 2014 1:59:34 PM UTC-7, Joshua Chan wrote:
>
> I should admit I am not a Java developer by trade, so I'm trying pretty 
> hard here. 
>
> When I call .registerRiver, I am passing the module, not the river. 
> RiverImpl.Type is just the string "river".
>
> public void onModule(RiversModule module) {
>     module.registerRiver(RiverImpl.TYPE, ModuleImpl.class);
> }
>
> If this isn't what you mean, please dial me in a bit more. Guice is a 
> foreign to me too.
>
>
>
> On Friday, May 2, 2014 12:34:47 PM UTC-5, Rob Ottaway wrote:
>>
>> Oh sorry module is fine, it's the call to module.registerRiver which is 
>> being passed the River itself and not the River Guice module. Try that 
>> change.
>>
>>
>>
>>
>> On Fri, May 2, 2014 at 10:33 AM, Rob Ottaway <[email protected]> wrote:
>>
>>> I think he means in your Guice module. You are registering the WRONG 
>>> thing ;)
>>>
>>>
>>> On Fri, May 2, 2014 at 6:49 AM, Joshua Chan <[email protected]>wrote:
>>>
>>>> I've tried this too with no luck
>>>>
>>>> http://localhost:9200/_river/example_river/_meta
>>>> {
>>>>     "type": "river",
>>>>   "river":{
>>>>     "blah":"blah"
>>>>   }
>>>> }
>>>>
>>>>
>>>> On Friday, May 2, 2014 3:31:23 AM UTC-5, Luca Cavanna wrote:
>>>>
>>>>> Hi Joshua,
>>>>> the package is not an issue if you are using the default one for your 
>>>>> classes. Looking deeper, the type of the river that you try to register 
>>>>> with your rest call doesn't match the type of the river you registered in 
>>>>> the plugin when you did module.registerRiver(type, riverclass). 
>>>>>
>>>>> Cheers
>>>>> Luca
>>>>>
>>>>> On Friday, May 2, 2014 6:08:28 AM UTC+2, Rob Ottaway wrote:
>>>>>
>>>>>> I should have sent you the following earlier rather than a non-river 
>>>>>> plugin:
>>>>>>
>>>>>> the plugin:
>>>>>> https://github.com/elasticsearch/elasticsearch-
>>>>>> river-rabbitmq/blob/master/src/main/java/org/
>>>>>> elasticsearch/plugin/river/rabbitmq/RabbitmqRiverPlugin.java
>>>>>>
>>>>>> The river implementation:
>>>>>> https://github.com/elasticsearch/elasticsearch-
>>>>>> river-rabbitmq/blob/master/src/main/java/org/
>>>>>> elasticsearch/river/rabbitmq/RabbitmqRiver.java
>>>>>>
>>>>>> The module:
>>>>>> https://github.com/elasticsearch/elasticsearch-
>>>>>> river-rabbitmq/blob/master/src/main/java/org/
>>>>>> elasticsearch/river/rabbitmq/RabbitmqRiverModule.java
>>>>>>
>>>>>> Looks like you are registering the river implementation rather than 
>>>>>> the river module hence the not working. Had to look at an example I know 
>>>>>> works to figure it out.
>>>>>>
>>>>>> -Rob
>>>>>>
>>>>>>
>>>>>> On Thu, May 1, 2014 at 8:04 PM, Joshua Chan 
>>>>>> <[email protected]>wrote:
>>>>>>
>>>>>>>  So, that's what I did, but no love... I checked in the latest.
>>>>>>>
>>>>>>> -Josh
>>>>>>>
>>>>>>>
>>>>>>> On Thursday, May 1, 2014 9:49:11 PM UTC-5, Rob Ottaway wrote:
>>>>>>>>
>>>>>>>> Look at this plugin for help:
>>>>>>>>
>>>>>>>> https://github.com/elasticsearch/elasticsearch-cloud-aws/
>>>>>>>> blob/master/src/main/resources/es-plugin.properties
>>>>>>>>
>>>>>>>> Yes it needs to be the FQN.
>>>>>>>>
>>>>>>>> On Thursday, May 1, 2014 5:47:31 PM UTC-7, Joshua Chan wrote:
>>>>>>>>>
>>>>>>>>> Thanks Rob. Someone else also told me the plugin property should 
>>>>>>>>> be the fully qualified name. I didn't declare a package, so I guess 
>>>>>>>>> I'm 
>>>>>>>>> using the default package, and I thought I had the namespacing right 
>>>>>>>>> since 
>>>>>>>>> IntelliJ corrected the class name when I wrote it.
>>>>>>>>>
>>>>>>>>> Thoughts?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> -Josh
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thursday, May 1, 2014 5:23:25 PM UTC-5, Rob Ottaway wrote:
>>>>>>>>>>
>>>>>>>>>> Look at this file in your BB repo:
>>>>>>>>>>
>>>>>>>>>> https://bitbucket.org/futurechan/example-river/src/fd23648c3
>>>>>>>>>> e7cc42fd2286d4134e80ecd7e98f802/src/main/resources/es-
>>>>>>>>>> plugin.properties?at=master
>>>>>>>>>>
>>>>>>>>>> cheers
>>>>>>>>>>
>>>>>>>>>> On Thursday, May 1, 2014 3:21:59 PM UTC-7, Rob Ottaway wrote:
>>>>>>>>>>>
>>>>>>>>>>> This strikes me as odd:
>>>>>>>>>>>
>>>>>>>>>>> java.lang.ClassNotFoundException: example_river
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Assume you didn't map the string example_river to the actual 
>>>>>>>>>>> class name properly?
>>>>>>>>>>>
>>>>>>>>>>> -Rob
>>>>>>>>>>>
>>>>>>>>>>> On Thursday, May 1, 2014 11:40:52 AM UTC-7, Joshua Chan wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I'm making my first go at writing a river. (Here's the source 
>>>>>>>>>>>> code: https://bitbucket.org/futurechan/example-river/src)
>>>>>>>>>>>>
>>>>>>>>>>>> I followed this tutorial 
>>>>>>>>>>>> http://blog.trifork.com/2013/01/10/how-to-write-an-elasticse
>>>>>>>>>>>> arch-river-plugin/
>>>>>>>>>>>>
>>>>>>>>>>>> and compared it to this existing river
>>>>>>>>>>>> https://github.com/jprante/elasticsearch-river-jdbc
>>>>>>>>>>>>
>>>>>>>>>>>> but I haven't had much luck.
>>>>>>>>>>>>
>>>>>>>>>>>> To deploy the river, I created a folder called example-river 
>>>>>>>>>>>> under plugins, dropped my jar in that folder, and restarted the 
>>>>>>>>>>>> node. 
>>>>>>>>>>>> Everything starts up fine.
>>>>>>>>>>>>
>>>>>>>>>>>> I have also tried bin/plugin --url file:///path/to/plugin 
>>>>>>>>>>>> --install example-river, which seems to work, but it unpacks 
>>>>>>>>>>>> my jar. So, I tried zipping it first and then installing, which 
>>>>>>>>>>>> works and 
>>>>>>>>>>>> does not unpack my jar, but it didn't help.
>>>>>>>>>>>>
>>>>>>>>>>>> When I issue this PUT request:
>>>>>>>>>>>>
>>>>>>>>>>>> http://localhost:9200/_river/example_river/_meta
>>>>>>>>>>>> {
>>>>>>>>>>>>     "type": "example_river",
>>>>>>>>>>>>   "example_river":{
>>>>>>>>>>>>     "blah":"blah"
>>>>>>>>>>>>   }
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> I get this exception:
>>>>>>>>>>>>
>>>>>>>>>>>> [2014-04-20 22:28:46,538][DEBUG][river ] [Gloom] creating river 
>>>>>>>>>>>> [example_river][example_river] 
>>>>>>>>>>>> [2014-04-20 22:28:46,543][WARN ][river ] [Gloom] failed to create 
>>>>>>>>>>>> river [example_river][example_river] 
>>>>>>>>>>>> org.elasticsearch.common.settings.NoClassSettingsException: Failed 
>>>>>>>>>>>> to load class with value [example_river] at 
>>>>>>>>>>>> org.elasticsearch.river.RiverModule.loadTypeModule(RiverModule.java:87)
>>>>>>>>>>>>  at 
>>>>>>>>>>>> org.elasticsearch.river.RiverModule.spawnModules(RiverModule.java:58)
>>>>>>>>>>>>  at 
>>>>>>>>>>>> org.elasticsearch.common.inject.ModulesBuilder.add(ModulesBuilder.java:44)
>>>>>>>>>>>>  at 
>>>>>>>>>>>> org.elasticsearch.river.RiversService.createRiver(RiversService.java:137)
>>>>>>>>>>>>  at 
>>>>>>>>>>>> org.elasticsearch.river.RiversService$ApplyRivers$2.onResponse(RiversService.java:275)
>>>>>>>>>>>>  at 
>>>>>>>>>>>> org.elasticsearch.river.RiversService$ApplyRivers$2.onResponse(RiversService.java:269)
>>>>>>>>>>>>  at 
>>>>>>>>>>>> org.elasticsearch.action.support.TransportAction$ThreadedActionListener$1.run(TransportAction.jav
>>>>>>>>>>>> a:93) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
>>>>>>>>>>>> Source) at 
>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
>>>>>>>>>>>> at 
>>>>>>>>>>>> java.lang.Thread.run(Unknown Source) Caused by: 
>>>>>>>>>>>> java.lang.ClassNotFoundException: example_river at 
>>>>>>>>>>>> java.net.URLClassLoader$1.run(Unknown Source) at 
>>>>>>>>>>>> java.net.URLClassLoader$1.run(Unknown Source) at 
>>>>>>>>>>>> java.security.AccessController.doPrivileged(Native Method) at 
>>>>>>>>>>>> java.net.URLClassLoader.findClass(Unknown Source) at 
>>>>>>>>>>>> java.lang.ClassLoader.loadClass(Unknown Source) at 
>>>>>>>>>>>> sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at 
>>>>>>>>>>>> java.lang.ClassLoader.loadClass(Unknown Source) at 
>>>>>>>>>>>> org.elasticsearch.river.RiverModule.loadTypeModule(RiverModule.java:73)
>>>>>>>>>>>>  ... 9 more
>>>>>>>>>>>>
>>>>>>>>>>>> Can someone point out what I am missing?
>>>>>>>>>>>>
>>>>>>>>>>>  -- 
>>>>>>> You received this message because you are subscribed to a topic in 
>>>>>>> the Google Groups "elasticsearch" group.
>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/
>>>>>>> topic/elasticsearch/kIlh_0hm3no/unsubscribe.
>>>>>>>  To unsubscribe from this group and all its topics, send an email to 
>>>>>>> [email protected].
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/elasticsearch/09202b8e-
>>>>>>> 5e77-4c51-b4b0-f47c0b0f5bc0%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/09202b8e-5e77-4c51-b4b0-f47c0b0f5bc0%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>  -- 
>>>> You received this message because you are subscribed to a topic in the 
>>>> Google Groups "elasticsearch" group.
>>>> To unsubscribe from this topic, visit 
>>>> https://groups.google.com/d/topic/elasticsearch/kIlh_0hm3no/unsubscribe
>>>> .
>>>> To unsubscribe from this group and all its topics, send an email to 
>>>> [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/elasticsearch/485c6794-d7e2-4f42-9a12-bdc7f584ad9e%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/485c6794-d7e2-4f42-9a12-bdc7f584ad9e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/e073f7bd-9594-4e89-bc21-c4f093d73746%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to