blob: bd328b5fdfb56710655e3e6b4c7beebc9db9dc61 [file] [log] [blame]
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
/**
*
*/
package com.acme;
import java.io.IOException;
import javax.mail.Session;
import javax.naming.InitialContext;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import javax.transaction.UserTransaction;
/**
* JNDITest
*
* Use JNDI from within Jetty.
*
* Also, use servlet spec 2.5 resource injection and lifecycle callbacks from within the web.xml
* to set up some of the JNDI resources.
*
*/
public class JNDITest extends HttpServlet
{
private DataSource myDS;
private Session myMailSession;
private Double wiggle;
private Integer woggle;
private Double gargle;
private String resourceNameMappingInjectionResult;
private String envEntryOverrideResult;
private String postConstructResult = "PostConstruct method called: <span class=\"fail\">FALSE</span>";
private String preDestroyResult = "PreDestroy method called: <span class=\"pass\">NOT YET</span>";
private String envEntryGlobalScopeResult;
private String envEntryWebAppScopeResult;
private String userTransactionResult;
private String mailSessionResult;
public void setMyDatasource(DataSource ds)
{
myDS=ds;
}
private void postConstruct ()
{
resourceNameMappingInjectionResult= "Injection of resource to locally mapped name (java:comp/env/mydatasource as java:comp/env/mydatasource1): "+(myDS!=null?"<span class=\"pass\">PASS</span>":"<span class=\"fail\">FAIL</span>");
envEntryOverrideResult = "Override of EnvEntry in jetty-env.xml (java:comp/env/wiggle): "+(wiggle==55.0?"<span class=\"pass\">PASS":"<span class=\"fail\">FAIL(expected 55.0, got "+wiggle+")")+"</span>";
postConstructResult = "PostConstruct method called: <span class=\"pass\">PASS</span>";
}
private void preDestroy()
{
preDestroyResult = "PreDestroy method called: <span class=\"pass\">PASS</span>";
}
public void init(ServletConfig config) throws ServletException
{
super.init(config);
try
{
InitialContext ic = new InitialContext();
woggle = (Integer)ic.lookup("java:comp/env/woggle");
envEntryGlobalScopeResult = "EnvEntry defined in context xml lookup result (java:comp/env/woggle): "+(woggle==4000?"<span class=\"pass\">PASS":"<span class=\"fail\">FAIL(expected 4000, got "+woggle+")")+"</span>";
gargle = (Double)ic.lookup("java:comp/env/gargle");
envEntryWebAppScopeResult = "EnvEntry defined in jetty-env.xml lookup result (java:comp/env/gargle): "+(gargle==100.0?"<span class=\"pass\">PASS":"<span class=\"fail\">FAIL(expected 100, got "+gargle+")")+"</span>";
UserTransaction utx = (UserTransaction)ic.lookup("java:comp/UserTransaction");
userTransactionResult = "UserTransaction lookup result (java:comp/UserTransaction): "+(utx!=null?"<span class=\"pass\">PASS":"<span class=\"fail\">FAIL")+"</span>";
myMailSession = (Session)ic.lookup("java:comp/env/mail/Session");
mailSessionResult = "Mail Session lookup result (java:comp/env/mail/Session): "+(myMailSession!=null?"<span class=\"pass\">PASS": "<span class=\"fail\">FAIL")+"</span>";
}
catch (Exception e)
{
throw new ServletException(e);
}
}
/* ------------------------------------------------------------ */
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request, response);
}
/* ------------------------------------------------------------ */
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String mailTo = request.getParameter("mailto");
String mailFrom = request.getParameter("mailfrom");
if (mailTo != null)
mailTo = mailTo.trim();
if (mailFrom != null)
mailFrom = mailFrom.trim();
try
{
response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
out.println("<html>");
out.println("<head><link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\"/></head>");
out.println("<h1>Jetty JNDI Tests</h1>");
out.println("<body>");
out.println("<h2>Injection and JNDI Lookup Results</h2>");
out.println("<p>"+resourceNameMappingInjectionResult+"</p>");
out.println("<p>"+envEntryOverrideResult+"</p>");
out.println("<p>"+postConstructResult+"</p>");
out.println("<p>"+preDestroyResult+"</p>");
out.println("<p>"+envEntryGlobalScopeResult+"</p>");
out.println("<p>"+envEntryWebAppScopeResult+"</p>");
out.println("<p>"+userTransactionResult+"</p>");
out.println("<p>"+mailSessionResult+"</p>");
out.println("</body>");
out.println("</html>");
out.flush();
}
catch (Exception e)
{
throw new ServletException(e);
}
}
public void destroy ()
{
}
}