So I changed on minor thing, which was the package a zip assembly. I had failed to notice this until I checked out and built your project. I hadn't looked at the pom figuring it was a coding issue :)
You can find the code here: https://github.com/robottaway/simple-es-river Then I created the assembly using "mvn package", which put a zip file in ./target/releases/example-river-1.0-SNAPSHOT.zip THAT IS WHAT YOU NEED TO MAKE THIS WORK. I see what Luca was talking about, noticed you updated your REST example changing "example_river" to "river". Next I installed this in Elasticsearch 1.1.1 I have running local. robs-mbp-3:elasticsearch-1.1.1 rob$ bin/plugin --url file:///Users/rob/development/git/example-river/target/releases/example-river-1.0-SNAPSHOT.zip --install blarggh -> Installing blarggh... Trying file:/Users/rob/development/git/example-river/target/releases/example-river-1.0-SNAPSHOT.zip... Downloading ................................................................................................................................................................DONE Then robs-mbp-3:elasticsearch-1.1.1 rob$ curl -X PUT -H "Content-Type: application/json" http://localhost:9200/_river/example_river/_meta -d '{ > "type": "river", > "river":{ > "blah":"blah" > } > }' {"_index":"_river","_type":"example_river","_id":"_meta","_version":1,"created":true as you can see works just fine. Hit me up if you have any trouble. cheers, Rob On Saturday, May 3, 2014 7:10:51 PM UTC-7, Rob Ottaway wrote: > > 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/d4532b52-133b-4500-8f03-a3f0682f1039%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
