//////////////////////////////////////////////////
// JIST (Java In Simulation Time) Project
//
// Copyright (C) 2004 by Cornell University
// All rights reserved.
// Refer to LICENSE for terms and conditions of use.
package jist.minisim;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Properties;
import java.util.Random;
import jist.runtime.JistAPI;
import or_mapper.util.DBSaver;
class Result {
Result(int counter, String greeting) {
this.counter = counter;
this.greeting = greeting;
}
int counter;
String greeting;
}
/**
* Hello World with distsim.
*
* @author Rimon Barr <barr+jist@cs.cornell.edu> and Ulf Hermann
* @version $Id: hello.java,v 1.7 2004/06/09 18:54:16 barr Exp $
* @since JIST1.0
*/
public class DistsimTest implements JistAPI.Entity {
private Random random;
private String greeting;
private DBSaver saver;
private int counter;
/**
* Hello event.
*/
public void myEvent() {
counter = counter + 1;
try {
if (counter < 2) {
saver.save(new Result(counter, greeting), "distsim-test");
} else
saver.save(new Result(counter, greeting), "quicksim");
int pos = random.nextInt(greeting.length());
greeting = greeting.replace(greeting.charAt(pos), (char) random
.nextInt(128));
System.out.println("distsim mutters: " + counter);
} catch (Exception e) {
e.printStackTrace();
}
if (counter < 10)
JistAPI.sleep(1);
else {
try {
saver.finalize();
} catch (Throwable e1) {
e1.printStackTrace();
}
return;
}
myEvent();
// delay execution
/*try {
Thread.sleep(500);
} catch (InterruptedException e) {
}*/
}
/**
* Program entry point: show difference between Java and JiST execution
* models with a "hello world!" example.
*
* @param args
* command-line parameters
*/
public static void main(String[] args) {
System.out.println("starting simulation.");
DistsimTest t = new DistsimTest();
t.myEvent();
}
public DistsimTest() {
try {
random = new Random();
greeting = "Hello world!";
Properties simulationProperties = new Properties();
simulationProperties.load(System.in);
saver = new DBSaver("jdbc:mysql://"
+ simulationProperties.getProperty("results.host") + "/"
+ simulationProperties.getProperty("results.database"),
simulationProperties.getProperty("results.username"),
simulationProperties.getProperty("results.password"),
Integer.parseInt(simulationProperties
.getProperty("simulationId")));
} catch (IOException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} // class: hello