Esperanto

Project Goals: Define a easy way to develop cluster aware software, hidding from the biz implementantion architectural details such as protocol, control inside the cluster, transaction recovery and nerd things like this.

Development state: The core is still being built, so no clustering is available yet. The actual perspective is to delivery clusterable solutions in a alpha version withnin the next 3 months, since my personal time is overallocated with my professional projects.

Small example of Esperanto Core:
package br.org.melvin.lib.esperanto.agent;
import java.io.Serializable;
import java.util.Date;

import br.org.melvin.lib.esperanto.EsperantoMessage;
import br.org.melvin.lib.esperanto.impl.EsperantoSimpleMessage;
import junit.framework.TestCase;


public class EsperantoAgentTest extends TestCase {


public EsperantoAgentTest(String arg0) {
super(arg0);
}

public void testSendMessage() {
try {
//EsperantoAgent ea = new EsperantoAgent("esperanto:udp://225.0.0.1:9999");
//EsperantoAgent ea = new EsperantoAgent("esperanto:memory://aQueue");
EsperantoAgent ea = new EsperantoAgent("esperanto:tcp://127.0.0.1:7455");

ea.setDiscardSelfEvents(false);
ea.addListener(new Listener());
ea.startListening();
for (int i = 0; i < 10; i++) {
ea.sendMessage(new Message());
}
Thread.sleep(100);

} catch (Exception e) {
e.printStackTrace();
fail(e.toString());
}
}

}
class Listener implements EsperantoAgentListener {

public void onMessage(EsperantoMessage e) {
System.out.println(e.toString());

}

}

class Message extends EsperantoSimpleMessage implements Serializable {
String message;
Message() {
message = "Simple Message:" + System.currentTimeMillis();
}
public String toString() {
return message;
}
}

Contact: Paulo Simão : paulosimao@gmail.com
Project Page:
https://sourceforge.net/projects/esperanto/