Rabbitmq River via Java API?

Hi

I want to used Rabbitmq river for indexing.i got one thread that
discuss about using Rabbitmq thread:
https://groups.google.com/forum/#!topic/elasticsearch/MNW7Mc1l3vs.after
reading this thread i have certain doubt:

String message = "{ "index" : { "index" : "test", "type" :
"type1", "id" : "1" }\n" +
"{ "type1" : { "field1" : "value1" } }
\n" +
"{ "delete" : { "index" : "test",
"type" : "type1", "id" : "2" } }\n" +
"{ "create" : { "index" : "test",
"type" : "type1", "id" : "1" }\n" +
"{ "type1" : { "field1" :
"value1" } }";

a.) explain the define above message format and what it does and it's
role on index.
b.) when i publish this message,where i mention the source data in
message which i wants to be index.

curl -XPUT 'localhost:9200/_river/my_river/_meta' -d '{
"type" : "rabbitmq",
"rabbitmq" : {
"host" : "localhost",
"port" : 5672,
"user" : "guest",
"pass" : "guest",
"vhost" : "/",
"queue" : "elasticsearch",
"exchange" : "elasticsearch",
"routing_key" : "elasticsearch",
"exchange_type" : "direct",
"exchange_durable" : true,
"queue_durable" : true,
"queue_auto_delete" : false
},
"index" : {
"bulk_size" : 100,
"bulk_timeout" : "10ms",
"ordered" : false
}
}

how to used this curl document in java and which place it can be set
for provide the custom configuration for Rabbitmq.

Thanks