// Path: src/it/e2e/e2e-model/src/main/java/it/test/model/GreetingResponse.java
// @SuppressWarnings("serial")
// @AutoValue
// @GwtCompatible(serializable = true)
// public abstract class GreetingResponse {
// 	public static Builder builder() {
// 		return new AutoValue_GreetingResponse.Builder();
// 	}
// 
// 	public abstract String getGreeting();
// 
// 	public abstract String getServerInfo();
// 
// 	public abstract String getUserAgent();
// 
// 	@AutoValue.Builder
// 	public static abstract class Builder {
// 		public abstract Builder setGreeting(String greeting);
// 
// 		public abstract Builder setServerInfo(String serverInfo);
// 
// 		public abstract Builder setUserAgent(String userAgent);
// 
// 		public abstract GreetingResponse build();
// 	}
// }
// 
// Path: src/it/e2e/e2e-shared/src/main/java/it/test/shared/GreetingService.java
// @RemoteServiceRelativePath("greet")
// public interface GreetingService extends RemoteService {
// 	GreetingResponse greetServer(String name) throws IllegalArgumentException;
// }
// 
// Path: src/it/e2e/e2e-shared-gwt/src/main/java/it/test/shared/GreetingServiceAsync.java
// public interface GreetingServiceAsync {
// 	void greetServer(String input, AsyncCallback<GreetingResponse> callback)
// 			throws IllegalArgumentException;
// }


import it.test.model.GreetingResponse;
import it.test.shared.GreetingService;
import it.test.shared.GreetingServiceAsync;
import com.google.auto.value.AutoValue;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Callback;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.rpc.AsyncCallback;
package it.test.client;


/**
 * This is a contrived example to use an annotation processor (AutoValue),
 * to test generated sources.
 */
class Greeter {
	/**
	 * Create a remote service proxy to talk to the server-side Greeting service.
	 */
	private final GreetingServiceAsync greetingService = GWT
			.create(GreetingService.class);

	void greet(String name, final Callback<Result, Throwable> callback) {
		greetingService.greetServer(name,
				new AsyncCallback<GreetingResponse>() {
					public void onFailure(Throwable caught) {
						callback.onFailure(caught);
					}

// Path: src/it/e2e/e2e-model/src/main/java/it/test/model/GreetingResponse.java
// @SuppressWarnings("serial")
// @AutoValue
// @GwtCompatible(serializable = true)
// public abstract class GreetingResponse {
// 	public static Builder builder() {
// 		return new AutoValue_GreetingResponse.Builder();
// 	}
// 
// 	public abstract String getGreeting();
// 
// 	public abstract String getServerInfo();
// 
// 	public abstract String getUserAgent();
// 
// 	@AutoValue.Builder
// 	public static abstract class Builder {
// 		public abstract Builder setGreeting(String greeting);
// 
// 		public abstract Builder setServerInfo(String serverInfo);
// 
// 		public abstract Builder setUserAgent(String userAgent);
// 
// 		public abstract GreetingResponse build();
// 	}
// }
// 
// Path: src/it/e2e/e2e-shared/src/main/java/it/test/shared/GreetingService.java
// @RemoteServiceRelativePath("greet")
// public interface GreetingService extends RemoteService {
// 	GreetingResponse greetServer(String name) throws IllegalArgumentException;
// }
// 
// Path: src/it/e2e/e2e-shared-gwt/src/main/java/it/test/shared/GreetingServiceAsync.java
// public interface GreetingServiceAsync {
// 	void greetServer(String input, AsyncCallback<GreetingResponse> callback)
// 			throws IllegalArgumentException;
// }


// Path: src/it/e2e/e2e-client/src/main/java/it/test/client/Greeter.java
import it.test.model.GreetingResponse;
import it.test.shared.GreetingService;
import it.test.shared.GreetingServiceAsync;
import com.google.auto.value.AutoValue;
import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Callback;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.user.client.rpc.AsyncCallback;

package it.test.client;


/**
 * This is a contrived example to use an annotation processor (AutoValue),
 * to test generated sources.
 */
class Greeter {
	/**
	 * Create a remote service proxy to talk to the server-side Greeting service.
	 */
	private final GreetingServiceAsync greetingService = GWT
			.create(GreetingService.class);

	void greet(String name, final Callback<Result, Throwable> callback) {
		greetingService.greetServer(name,
				new AsyncCallback<GreetingResponse>() {
					public void onFailure(Throwable caught) {
						callback.onFailure(caught);
					}

					public void onSuccess(GreetingResponse result) {