// -*- mode: java; c-basic-offset: 2; -*- // Copyright 2009-2011 Google, All Rights reserved // Copyright 2011-2012 MIT, All rights reserved // Released under the Apache License, Version 2.0 // http://www.apache.org/licenses/LICENSE-2.0 package com.google.appinventor.server; import com.google.appinventor.shared.rpc.user.UserInfoProvider; import com.google.gwt.user.server.rpc.RemoteServiceServlet; /** * Class supporting ODE GWT RPC, which ODE RPC * implementations should subclass instead of * {@link javax.servlet.http.HttpServlet} * * <p>Currently, this is only a placeholder. Once upon a time it did logging * and session verification, but that has been removed during the transition * to App Engine. * </ul> * * <p>If subclasses provided a * {@link com.google.appinventor.shared.rpc.user.UserInfoProvider} to the * constructor, this class will log the appropriate userId. * * <p>Here is an example of how the methods in this class might be called * from a concrete subclass serving a request: * <pre> * public List<ProjectNode> getChildren(long projectId, String parentFileId) { * // Get the protocol buffer for logging information and specify the service * // we are providing * * // Generate the RPC return value and, before returning it, log its size * List<ProjectNode> projectNodes = * getProjectRpcImpl(projectId).getChildren(projectId, parentFileId); * return projectNodes; * } * * <p>The class {@link OdeServlet} serves an analogous purpose for non-GWT * servlets. * */ public abstract class OdeRemoteServiceServlet extends RemoteServiceServlet { protected final UserInfoProvider userInfoProvider = LocalUser.getInstance(); }