Added code
This commit is contained in:
parent
8d2771ef74
commit
a4e7295bcb
67 changed files with 6291 additions and 0 deletions
102
test/suncertify/db/DataTest.java
Normal file
102
test/suncertify/db/DataTest.java
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
|
||||
|
||||
package suncertify.db;
|
||||
|
||||
import suncertify.core.LoadHotelRoomDB;
|
||||
import suncertify.db.Data;
|
||||
import suncertify.db.data.RowLock;
|
||||
import suncertify.db.data.Table;
|
||||
import suncertify.models.HotelRoom;
|
||||
import suncertify.models.HotelRoomDBConverter;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
||||
public class DataTest extends TestCase {
|
||||
|
||||
|
||||
public void printRecord(String[] record) {
|
||||
for (String value:record) {
|
||||
System.out.print("'");
|
||||
System.out.print(value);
|
||||
System.out.print("'\t");
|
||||
}
|
||||
System.out.println("");
|
||||
}
|
||||
|
||||
|
||||
public void testData() throws Exception {
|
||||
|
||||
DataBaseManager dataBaseManager = new DataBaseManager();
|
||||
new LoadHotelRoomDB().loadTable(dataBaseManager);
|
||||
Table table = dataBaseManager.getHotelRoomTable();
|
||||
|
||||
HotelRoomDBConverter c = new HotelRoomDBConverter(table);
|
||||
|
||||
Data d = new Data(dataBaseManager.getHotelRoomTable());
|
||||
printRecord(d.read(0));
|
||||
printRecord(d.read(1));
|
||||
printRecord(d.read(9));
|
||||
|
||||
String[] first = d.read(8);
|
||||
printRecord(first);
|
||||
HotelRoom hr = c.decode(first);
|
||||
String[] back = c.encode(hr);
|
||||
printRecord(back);
|
||||
//assertEquals(first,back);
|
||||
|
||||
table.closeTable();
|
||||
}
|
||||
|
||||
public void testLock() throws Exception {
|
||||
|
||||
DataBaseManager dataBaseManager = new DataBaseManager();
|
||||
new LoadHotelRoomDB().loadTable(dataBaseManager);
|
||||
Table table = dataBaseManager.getHotelRoomTable();
|
||||
|
||||
String[] interfaceData = {"name-FIELD-Data"+System.nanoTime(),"location-FIELD-DATa","45","true","$349.34","2008/02/13","888"};
|
||||
int row = table.create(interfaceData);
|
||||
System.out.println("NEW Rcords row:"+row);
|
||||
|
||||
RowLock lock = table.lock(2);
|
||||
table.unlock(2, lock.getLockId());
|
||||
lock = table.lock(2);
|
||||
table.unlock(2, lock.getLockId());
|
||||
lock = table.lock(2);
|
||||
table.unlock(2, lock.getLockId());
|
||||
|
||||
// get lock
|
||||
lock = table.lock(2);
|
||||
|
||||
boolean error = false;
|
||||
try {
|
||||
table.delete(20, lock.getLockId());
|
||||
} catch (SecurityException se) {
|
||||
error = true;
|
||||
}
|
||||
assertEquals(true,error);
|
||||
|
||||
|
||||
error = false;
|
||||
try {
|
||||
table.delete(200000, lock.getLockId());
|
||||
} catch (RecordNotFoundException se) {
|
||||
error = true;
|
||||
}
|
||||
assertEquals(true,error);
|
||||
|
||||
//table.delete(2, lock.getLockId());
|
||||
table.unlock(2, lock.getLockId());
|
||||
|
||||
error = false;
|
||||
try {
|
||||
Data d = new Data(table);
|
||||
printRecord(d.read(2));
|
||||
} catch (RecordNotFoundException re) {
|
||||
error = true;
|
||||
}
|
||||
//assertEquals(true,error);
|
||||
|
||||
table.closeTable();
|
||||
}
|
||||
|
||||
}
|
||||
111
test/suncertify/db/InsertTest.java
Normal file
111
test/suncertify/db/InsertTest.java
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
|
||||
|
||||
package suncertify.db;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.LineNumberReader;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import suncertify.core.LoadHotelRoomDB;
|
||||
import suncertify.db.Data;
|
||||
import suncertify.db.data.RowLock;
|
||||
import suncertify.db.data.Table;
|
||||
import suncertify.models.HotelRoom;
|
||||
import suncertify.models.HotelRoomDBConverter;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
||||
public class InsertTest extends TestCase {
|
||||
|
||||
|
||||
public void printRecord(String[] record) {
|
||||
StringBuilder buf = new StringBuilder(200);
|
||||
for (String value:record) {
|
||||
buf.append("'");
|
||||
buf.append(value);
|
||||
buf.append("'\t");
|
||||
}
|
||||
buf.append("");
|
||||
|
||||
Logger.getAnonymousLogger().info("data: "+buf);
|
||||
}
|
||||
|
||||
public List<HotelRoom> getKamers() throws Exception {
|
||||
|
||||
URL u = new URL("url-not-there......");
|
||||
InputStream in = u.openStream();
|
||||
|
||||
InputStreamReader fileReader = new InputStreamReader(in,"UTF-8");
|
||||
LineNumberReader lineReader = new LineNumberReader(fileReader);
|
||||
|
||||
List<HotelRoom> result = new ArrayList<HotelRoom>(200);
|
||||
|
||||
String line = null;
|
||||
int i = 0;
|
||||
while ((line = lineReader.readLine()) !=null) {
|
||||
if (line.contains("offerid")) {
|
||||
continue; // skip header
|
||||
}
|
||||
i++;
|
||||
|
||||
String[] d = line.split("\t");
|
||||
|
||||
HotelRoom r = new HotelRoom();
|
||||
r.setDateAvailable(new Date()); // d[11]
|
||||
|
||||
String s = d[1];
|
||||
if (s.length()>63) {
|
||||
s = s.substring(0,63);
|
||||
}
|
||||
r.setLocation(s);
|
||||
|
||||
if ("".equals(s)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
s = d[2];
|
||||
if (s.length()>63) {
|
||||
s = s.substring(0,63);
|
||||
}
|
||||
r.setName(s);
|
||||
|
||||
if ("".equals(s)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
r.setCustomerId(i);
|
||||
r.setPriceRate(new Long(d[5]));
|
||||
r.setSize(1);
|
||||
r.setSmoking(false);
|
||||
|
||||
result.add(r);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public void testData() throws Exception {
|
||||
DataBaseManager dataBaseManager = new DataBaseManager();
|
||||
new LoadHotelRoomDB().loadTable(dataBaseManager);
|
||||
Table table = dataBaseManager.getHotelRoomTable();
|
||||
|
||||
Data d = new Data(dataBaseManager.getHotelRoomTable());
|
||||
HotelRoomDBConverter c = new HotelRoomDBConverter(table);
|
||||
|
||||
for (HotelRoom r:getKamers()) {
|
||||
String[] data = c.encode(r);
|
||||
printRecord(data);
|
||||
d.create(data);
|
||||
}
|
||||
|
||||
table.closeTable();
|
||||
}
|
||||
}
|
||||
59
test/suncertify/net/StartServer.java
Normal file
59
test/suncertify/net/StartServer.java
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
package suncertify.net;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.channels.SocketChannel;
|
||||
|
||||
import suncertify.core.LoadHotelRoomDB;
|
||||
import suncertify.core.LoadServerBeans;
|
||||
import suncertify.core.NetworkServerWorker;
|
||||
import suncertify.db.DataBaseManager;
|
||||
import suncertify.net.NetworkServer.ServerBackendProvider;
|
||||
import suncertify.server.ServerManager;
|
||||
|
||||
/**
|
||||
* Starts the server.
|
||||
*
|
||||
* Currently max: (note: fully cached results)
|
||||
* Dec 15, 2008 1:19:01 AM suncertify.net.NetworkNIOConnector$1 run
|
||||
* INFO: sendObject() Statistics TPM: 86326 TPS: 1438
|
||||
*
|
||||
* @author Willem Cazander
|
||||
*/
|
||||
public class StartServer {
|
||||
|
||||
private NetworkServer server = null;
|
||||
|
||||
public void start() throws Exception {
|
||||
DataBaseManager dataBaseManager = new DataBaseManager();
|
||||
dataBaseManager.start();
|
||||
final ServerManager serverManager = new ServerManager();
|
||||
serverManager.start();
|
||||
|
||||
new LoadHotelRoomDB().loadTable(dataBaseManager);
|
||||
new LoadServerBeans().loadBeans(serverManager,dataBaseManager);
|
||||
|
||||
ServerBackendProvider serverBackendProvider = new ServerBackendProvider() {
|
||||
public void executeWorker(Runnable runable) {
|
||||
serverManager.execute(runable);
|
||||
}
|
||||
public Runnable dataWorker(NetworkServer server,SocketChannel socket,byte[] data) {
|
||||
return new NetworkServerWorker(serverManager,server,socket,data);
|
||||
}
|
||||
};
|
||||
server = new NetworkServer(null, 9090, serverBackendProvider);
|
||||
server.start();
|
||||
}
|
||||
|
||||
public void stop() throws IOException {
|
||||
server.stop();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
try {
|
||||
new StartServer().start();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
147
test/suncertify/net/ThreadedClientTest.java
Normal file
147
test/suncertify/net/ThreadedClientTest.java
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
|
||||
|
||||
package suncertify.net;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Proxy;
|
||||
import java.net.InetAddress;
|
||||
import java.util.List;
|
||||
|
||||
import suncertify.models.HotelRoom;
|
||||
import suncertify.server.beans.HotelRoomManagerRemote;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
* Tests the network layer with multi threads and connections
|
||||
*
|
||||
* @author Willem Cazander
|
||||
*/
|
||||
public class ThreadedClientTest extends TestCase {
|
||||
|
||||
NetworkClient client = null;
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
client = new NetworkClient(InetAddress.getByName("localhost"), 9090);
|
||||
client.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
client.stop();
|
||||
}
|
||||
|
||||
public void testSingleRequest() throws Exception {
|
||||
final HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
|
||||
new Class[] { HotelRoomManagerRemote.class },
|
||||
client.getInvocationHandler(HotelRoomManagerRemote.class));
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<HotelRoom> rooms = remote.getAllHotelRooms();
|
||||
long stopTime = System.currentTimeMillis();
|
||||
System.out.println("got rooms1: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms.");
|
||||
|
||||
if (rooms.isEmpty()) {
|
||||
assertEquals(true,false);
|
||||
}
|
||||
}
|
||||
|
||||
public void testThreadedRequestSingleRemote() throws Exception {
|
||||
final HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
|
||||
new Class[] { HotelRoomManagerRemote.class },
|
||||
client.getInvocationHandler(HotelRoomManagerRemote.class));
|
||||
|
||||
for (int i=0;i<1;i++) {
|
||||
Thread tt = new Thread(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
for (int i=0;i<20000;i++) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<HotelRoom> rooms = remote.getAllHotelRooms();
|
||||
long stopTime = System.currentTimeMillis();
|
||||
if (i%1000==0) {
|
||||
System.out.println(i+" got rooms: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms.");
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
tt.setPriority(10);
|
||||
tt.setDaemon(false);
|
||||
tt.setName("client-bench-"+i);
|
||||
tt.start();
|
||||
}
|
||||
|
||||
Thread.sleep(22000);
|
||||
}
|
||||
|
||||
public void testThreadedRequestThreadRemote() throws Exception {
|
||||
for (int i=0;i<10;i++) {
|
||||
Thread tt = new Thread(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
|
||||
new Class[] { HotelRoomManagerRemote.class },
|
||||
client.getInvocationHandler(HotelRoomManagerRemote.class));
|
||||
for (int i=0;i<1000;i++) {
|
||||
//Thread.sleep(new Random().nextInt(400) );
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<HotelRoom> rooms = remote.getAllHotelRooms();
|
||||
long stopTime = System.currentTimeMillis();
|
||||
if (i%100==0) {
|
||||
System.out.println(i+" got rooms: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms.");
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
tt.setPriority(10);
|
||||
tt.setDaemon(false);
|
||||
tt.setName("client-bench-"+i);
|
||||
tt.start();
|
||||
}
|
||||
Thread.sleep(22000);
|
||||
}
|
||||
|
||||
public void testThreadedRequestPerThreadClient() throws Exception {
|
||||
for (int i=0;i<10;i++) {
|
||||
Thread tt = new Thread(new Runnable() {
|
||||
NetworkClient clientThread = null;
|
||||
public void run() {
|
||||
try {
|
||||
clientThread = new NetworkClient(InetAddress.getByName("localhost"), 9090);
|
||||
clientThread.start();
|
||||
HotelRoomManagerRemote remote = (HotelRoomManagerRemote)Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
|
||||
new Class[] { HotelRoomManagerRemote.class },
|
||||
clientThread.getInvocationHandler(HotelRoomManagerRemote.class));
|
||||
for (int i=0;i<1000;i++) {
|
||||
//Thread.sleep(new Random().nextInt(400) );
|
||||
long startTime = System.currentTimeMillis();
|
||||
List<HotelRoom> rooms = remote.getAllHotelRooms();
|
||||
long stopTime = System.currentTimeMillis();
|
||||
if (i%100==0) {
|
||||
System.out.println(i+" got rooms: "+rooms.size()+" from threads: "+Thread.currentThread().getName()+" in "+(stopTime-startTime)+" ms.");
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
clientThread.stop();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
tt.setPriority(10);
|
||||
tt.setDaemon(false);
|
||||
tt.setName("client-bench-"+i);
|
||||
tt.start();
|
||||
}
|
||||
Thread.sleep(22000);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue