1. the team has expertise in netbeans. they don't now how to use maven. to use it first we have to arrange the training sessions.
2. company do not allow to move the code out of the company premises. they want the whole code to be kept only on there company server.
secondly! as you said never mix client- and server-side.
can you share any small example where we could see how we can keep client and server-side separately in gwt.Â
because we are using the base architecture of gwt:Â
example:Â
-demo.home.clientÂ
 -Home.java
-demo.home.server
 -Home_ServerImpl.java
-demo.home.shared
 -Home_Model.java
 -Home_RemoteService.java
 -Home_AsyncService.java
demo.home.shared.Home_RemoteService.java (class)
public interface Home_RemoteService extends RemoteService {
  public List<Home_Model> getHome(String id, boolean flag);
}
demo.home.shared.Home_AsyncService.java (class)
public interface Home_AsyncService {
  public void getHome(String id, boolean flag, AsyncCallback<List<Home_Model>> result);
}
demo.home.shared.Home_Model.java (class)
public class Home_Model implements Serializable, IsSerializable {
  private String name, address, ............;
  Â
  public getter & setters ............;
}
demo.home.server.Home_ServerImpl.java (class)
public class Home_ServerImpl extends RemoteServiceServlet implements Home_RemoteService {
  @Override
  public List<Home_Model>> getHome(String id, boolean flag) {
      ........................;
      ........................;
      ........................;
      ........................;
      return listHome_Model;
}
demo.home.client.Home.java (class)
public class Home implements IsWidget, ClickHandler {
  private final ServiceInvoker<Home_AsyncService> srvAsync;
  public Home() {
    srvAsync = new ServiceInvoker<Home_AsyncService>(GWT.create(Home_RemoteService.class), "Home");
  }
  public button_click() {
    srvAsync.getHome(id, flag, new AsyncCallback<List<Home_Model>>() {
          @Override
          public void onFailure(Throwable caught) {
            ......................;
            ......................;
          }
          @Override
          public void onSuccess(List<Home_Model> result) {
            ......................;
            ......................;
            ......................;
            ......................;
          }
     });
  }
}
Â
* we have many Home_Model.java like classes which hold many common functions that we use both server & client side.
please suggest the architecture to separate the client & server side code in GWT.Â