// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/common/CustomException.java
// public class CustomException extends Exception implements IsSerializable{
// 
// }
// 
// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/common/TestService.java
// public interface TestService extends RemoteService{
// 	
// /**
//  * Adds two integers together and return result
//  * @param a
//  * @param b
//  * @return
//  */
// int add(int a, int b);
// 
// /**
//  * Set a session attribute and return old value
//  * @param name
//  * @param value
//  * @return
//  */
// String replaceAttribute(String name, String value);
// 
// /**
//  * Set a session attribute and return old value. Should use
//  * an alternative implementation to access the servlet session.
//  * @param name
//  * @param value
//  * @return
//  */
// String replaceAttributeAlt(String name, String value);
// 
// /**
//  * Throws an exceptions that has been declared in the interface}
//  * @throws CustomException
//  */
// void throwDeclaredException() throws CustomException;
// 
// /**
//  * Throws an exceptions that has not been declared in the interface}
//  * @throws RuntimeException
//  */
// void throwUndeclaredException();
// 
// /**
//  * @param o Object argument. Will turn string to lower case and increment number by 1
//  * @return Testing {@link GWTSerialisableObject}
//  */
// 
// GWTSerialisableObject getGWTSerialisableObject(GWTSerialisableObject o);
// 
// /**
//  * @param o Object argument. Will turn string to lower case and increment number by 1
//  * @return Testing {@link JavaSerialisableObject}
//  */
// 
// JavaSerialisableObject getJavaSerialisableObject(JavaSerialisableObject o);
// 
// /**
//  * Returns a random number. 
//  * @return
//  */
// Integer getRandomNumber();
// 
// }
// 
// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/common/TestServiceAsync.java
// public interface TestServiceAsync {
// 
// 	void add(int a, int b, AsyncCallback<Integer> callback);
// 
// 	void throwDeclaredException(AsyncCallback<Void> callback);
// 
// 	void throwUndeclaredException(AsyncCallback<Object> callback);
// 
// 	void replaceAttribute(String name, String value, AsyncCallback<String> callback);
// 
// 	void replaceAttributeAlt(String name, String value, AsyncCallback<String> callback);
// 
// 	void getGWTSerialisableObject(GWTSerialisableObject o, AsyncCallback<GWTSerialisableObject> callback);
// 
// 	void getJavaSerialisableObject(JavaSerialisableObject o, AsyncCallback<JavaSerialisableObject> callback);
// 	
// 	void getRandomNumber(AsyncCallback<Integer> callback);
// 
// }


import java.io.Serializable;
import java.util.Date;
import org.gwtwidgets.server.spring.test.common.CustomException;
import org.gwtwidgets.server.spring.test.common.TestService;
import org.gwtwidgets.server.spring.test.common.TestServiceAsync;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;

			"../exporter/service", "../exporter/tx", "../exporter/pojo", "../exporter/extended",
			"../annotation/service", "../exporter/pojo", "../exporter/pojo", "../exporter/pojo" };

	String testLabel[] = { "GWTHandler with RPC service", "GWTHandler with transaction RPC service",
			"GWTHandler with POJO service", "GWTHandler with extending service",
			"GWTRPCServiceExporter with RPC service", "GWTRPCServiceExporter transaction RPC service",
			"GWTRPCServiceExporter POJO service", "GWTRPCServiceExporter extending service", "Annotated service",
			"GWTRPCServiceExporter POJO service" };

	int testIndex = 0;

	String newRandomString() {
		return "" + Math.random();
	}

	void log(String text) {
		HTML html = new HTML("(" + testIndex + ") " + text);
		currentPanel.add(html);
		html.getElement().scrollIntoView();
	}

	void fail(String text, Throwable t) {
		log("<span class='error' style='color:red'>" + text + "</span>");
		if (t != null)
			log("<pre>" + t + "</pre>");
		GWT.log(text, t);
		throw (t == null ? new RuntimeException("Test failed") : new RuntimeException(t));
	}

	TestServiceAsync getService() {

// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/common/CustomException.java
// public class CustomException extends Exception implements IsSerializable{
// 
// }
// 
// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/common/TestService.java
// public interface TestService extends RemoteService{
// 	
// /**
//  * Adds two integers together and return result
//  * @param a
//  * @param b
//  * @return
//  */
// int add(int a, int b);
// 
// /**
//  * Set a session attribute and return old value
//  * @param name
//  * @param value
//  * @return
//  */
// String replaceAttribute(String name, String value);
// 
// /**
//  * Set a session attribute and return old value. Should use
//  * an alternative implementation to access the servlet session.
//  * @param name
//  * @param value
//  * @return
//  */
// String replaceAttributeAlt(String name, String value);
// 
// /**
//  * Throws an exceptions that has been declared in the interface}
//  * @throws CustomException
//  */
// void throwDeclaredException() throws CustomException;
// 
// /**
//  * Throws an exceptions that has not been declared in the interface}
//  * @throws RuntimeException
//  */
// void throwUndeclaredException();
// 
// /**
//  * @param o Object argument. Will turn string to lower case and increment number by 1
//  * @return Testing {@link GWTSerialisableObject}
//  */
// 
// GWTSerialisableObject getGWTSerialisableObject(GWTSerialisableObject o);
// 
// /**
//  * @param o Object argument. Will turn string to lower case and increment number by 1
//  * @return Testing {@link JavaSerialisableObject}
//  */
// 
// JavaSerialisableObject getJavaSerialisableObject(JavaSerialisableObject o);
// 
// /**
//  * Returns a random number. 
//  * @return
//  */
// Integer getRandomNumber();
// 
// }
// 
// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/common/TestServiceAsync.java
// public interface TestServiceAsync {
// 
// 	void add(int a, int b, AsyncCallback<Integer> callback);
// 
// 	void throwDeclaredException(AsyncCallback<Void> callback);
// 
// 	void throwUndeclaredException(AsyncCallback<Object> callback);
// 
// 	void replaceAttribute(String name, String value, AsyncCallback<String> callback);
// 
// 	void replaceAttributeAlt(String name, String value, AsyncCallback<String> callback);
// 
// 	void getGWTSerialisableObject(GWTSerialisableObject o, AsyncCallback<GWTSerialisableObject> callback);
// 
// 	void getJavaSerialisableObject(JavaSerialisableObject o, AsyncCallback<JavaSerialisableObject> callback);
// 	
// 	void getRandomNumber(AsyncCallback<Integer> callback);
// 
// }


// Path: test-webapp/src/main/java/org/gwtwidgets/server/spring/test/client/ClientApplication.java
import java.io.Serializable;
import java.util.Date;
import org.gwtwidgets.server.spring.test.common.CustomException;
import org.gwtwidgets.server.spring.test.common.TestService;
import org.gwtwidgets.server.spring.test.common.TestServiceAsync;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;

			"../exporter/service", "../exporter/tx", "../exporter/pojo", "../exporter/extended",
			"../annotation/service", "../exporter/pojo", "../exporter/pojo", "../exporter/pojo" };

	String testLabel[] = { "GWTHandler with RPC service", "GWTHandler with transaction RPC service",
			"GWTHandler with POJO service", "GWTHandler with extending service",
			"GWTRPCServiceExporter with RPC service", "GWTRPCServiceExporter transaction RPC service",
			"GWTRPCServiceExporter POJO service", "GWTRPCServiceExporter extending service", "Annotated service",
			"GWTRPCServiceExporter POJO service" };

	int testIndex = 0;

	String newRandomString() {
		return "" + Math.random();
	}

	void log(String text) {
		HTML html = new HTML("(" + testIndex + ") " + text);
		currentPanel.add(html);
		html.getElement().scrollIntoView();
	}

	void fail(String text, Throwable t) {
		log("<span class='error' style='color:red'>" + text + "</span>");
		if (t != null)
			log("<pre>" + t + "</pre>");
		GWT.log(text, t);
		throw (t == null ? new RuntimeException("Test failed") : new RuntimeException(t));
	}

	TestServiceAsync getService() {

		TestServiceAsync service = (TestServiceAsync) GWT.create(TestService.class);
