Skip to content

Commit 4c89bf7

Browse files
committed
Work in progress
Use env vars for places.appkey Added DumpServlet for debugging
1 parent 2bbcd7e commit 4c89bf7

File tree

4 files changed

+85
-4
lines changed

4 files changed

+85
-4
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.google.appengine.demos;
2+
3+
import java.io.IOException;
4+
import java.io.PrintWriter;
5+
import java.util.Collections;
6+
7+
import javax.servlet.ServletException;
8+
import javax.servlet.http.HttpServlet;
9+
import javax.servlet.http.HttpServletRequest;
10+
import javax.servlet.http.HttpServletResponse;
11+
12+
@SuppressWarnings("serial")
13+
public class DumpServlet extends HttpServlet
14+
{
15+
@Override
16+
protected void doGet( HttpServletRequest request,
17+
HttpServletResponse response ) throws ServletException,
18+
IOException
19+
{
20+
response.setContentType("text/html");
21+
response.setStatus(HttpServletResponse.SC_OK);
22+
23+
PrintWriter out = response.getWriter();
24+
25+
out.println("<h1>DumpServlet</h1>");
26+
out.println("<h2>Context Fields:</h2>");
27+
out.println("<pre>");
28+
out.printf("serverInfo=%s%n",getServletContext().getServerInfo());
29+
out.printf("getServletContextName=%s%n",getServletContext().getServletContextName());
30+
out.printf("virtualServerName=%s%n",getServletContext().getVirtualServerName());
31+
out.printf("contextPath=%s%n",getServletContext().getContextPath());
32+
out.printf("version=%d.%d%n",getServletContext().getMajorVersion(),getServletContext().getMinorVersion());
33+
out.printf("effectiveVersion=%d.%d%n",getServletContext().getEffectiveMajorVersion(),getServletContext().getEffectiveMinorVersion());
34+
out.println("</pre>");
35+
out.println("<h2>Request Fields:</h2>");
36+
out.println("<pre>");
37+
out.printf("remoteHost/Addr:port=%s/%s:%d%n",request.getRemoteHost(),request.getRemoteAddr(),request.getRemotePort());
38+
out.printf("localName/Addr:port=%s/%s:%d%n",request.getLocalName(),request.getLocalAddr(),request.getLocalPort());
39+
out.printf("scheme=%s method=%s protocol=%s%n",request.getScheme(), request.getMethod(), request.getProtocol());
40+
out.printf("serverName:serverPort=%s:%d%n",request.getServerName(),request.getServerPort());
41+
out.printf("requestURI=%s%n",request.getRequestURI());
42+
out.printf("requestURL=%s%n",request.getRequestURL().toString());
43+
out.printf("contextPath|servletPath|pathInfo=%s|%s|%s%n",request.getContextPath(),request.getServletPath(),request.getPathInfo());
44+
out.printf("session/new=%s/%b%n",request.getSession(true).getId(),request.getSession().isNew());
45+
out.println("</pre>");
46+
out.println("<h2>Request Headers:</h2>");
47+
out.println("<pre>");
48+
for (String n : Collections.list(request.getHeaderNames()))
49+
for (String v : Collections.list(request.getHeaders(n)))
50+
out.printf("%s: %s%n",n,v);
51+
out.println("</pre>");
52+
out.println("<h2>Response Fields:</h2>");
53+
out.println("<pre>");
54+
out.printf("bufferSize=%d%n",response.getBufferSize());
55+
out.printf("encodedURL(\"/foo/bar\")=%s%n",response.encodeURL("/foo/bar"));
56+
out.printf("encodedRedirectURL(\"/foo/bar\")=%s%n",response.encodeRedirectURL("/foo/bar"));
57+
out.println("</pre>");
58+
}
59+
}

managedvms/async-rest/src/main/java/com/google/appengine/demos/asyncrest/AbstractRestServlet.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import javax.servlet.ServletConfig;
1212
import javax.servlet.ServletException;
13+
import javax.servlet.UnavailableException;
1314
import javax.servlet.http.HttpServlet;
1415
import javax.servlet.http.HttpServletRequest;
1516
import javax.servlet.http.HttpServletResponse;
@@ -29,6 +30,7 @@ public class AbstractRestServlet extends HttpServlet {
2930
+ " iframe {border: 0px}" + "</style>";
3031

3132
protected final static String APPKEY = "com.google.appengine.demos.asyncrest.appKey";
33+
protected final static String APPKEY_ENV = "PLACES_APPKEY";
3234
protected final static String LOC_PARAM = "loc";
3335
protected final static String ITEMS_PARAM = "items";
3436
protected final static String LATITUDE_PARAM = "lat";
@@ -39,9 +41,20 @@ public class AbstractRestServlet extends HttpServlet {
3941
@Override
4042
public void init(ServletConfig servletConfig) throws ServletException {
4143
//first try the servlet context init-param
44+
String source="InitParameter";
4245
key = servletConfig.getInitParameter(APPKEY);
43-
if (key == null)
46+
if (key==null || key.startsWith("${")) {
47+
source="System Property";
4448
key = System.getProperty(APPKEY);
49+
}
50+
if (key == null || key.startsWith("${")) {
51+
source="Environment Variable";
52+
key = System.getenv(APPKEY_ENV);
53+
}
54+
if (key == null)
55+
throw new UnavailableException("Places App Key not set");
56+
if (key.startsWith("${"))
57+
throw new UnavailableException("Places App Key not expanded from "+source);
4558
}
4659

4760
public static String sanitize(String s) {

managedvms/async-rest/src/main/webapp/WEB-INF/appengine-web.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<precompilation-enabled>false</precompilation-enabled>
55
<threadsafe>true</threadsafe>
66
<sessions-enabled>false</sessions-enabled>
7-
<system-properties>
8-
<property name="com.google.appengine.demos.asyncrest.appKey" value="${places.appkey}" />
9-
</system-properties>
7+
<env-variables>
8+
<env-var name="PLACES_APPKEY" value="${places.appkey}" />
9+
</env-variables>
1010
</appengine-web-app>

managedvms/async-rest/src/main/webapp/WEB-INF/web.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,14 @@
2626
<url-pattern>/testAsync</url-pattern>
2727
</servlet-mapping>
2828

29+
<servlet>
30+
<display-name>DumpServlet</display-name>
31+
<servlet-name>DumpServlet</servlet-name>
32+
<servlet-class>com.google.appengine.demos.DumpServlet</servlet-class>
33+
</servlet>
34+
<servlet-mapping>
35+
<servlet-name>DumpServlet</servlet-name>
36+
<url-pattern>/dump/*</url-pattern>
37+
</servlet-mapping>
2938

3039
</web-app>

0 commit comments

Comments
 (0)