blob: 8371f4cbea0a8789dbae5f64fa7ee711ef81240c [file] [log] [blame]
/*
* Copyright (c) 2009, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.sun.ejb.timers;
import java.io.*;
import java.net.*;
import java.util.Set;
import jakarta.servlet.*;
import jakarta.ejb.*;
import jakarta.servlet.http.*;
import org.glassfish.ejb.persistent.timer.TimerLocal;
import com.sun.ejb.containers.EJBTimerService;
/**
*
* @author mvatkina
*/
public class TimerWelcomeServlet extends HttpServlet {
@EJB
private transient TimerLocal timer;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Timer Application</title>");
out.println("</head>");
out.println("<body>");
out.println("<h3>Welcome to Timer Application</h3>");
out.println("<br>");
// Persistent timers
Set persistenttimers = timer.findActiveTimersOwnedByThisServer();
// Non-persistent timers get directly from the service
EJBTimerService ejbTimerService = EJBTimerService.getEJBTimerService();
Set nonpersistenttimers = ejbTimerService.getNonPersistentActiveTimerIdsByThisServer();
int persistentsize = persistenttimers.size();
int nonpersistentsize = nonpersistenttimers.size();
out.println("There " + ((persistentsize == 1)? "is " : "are ")
+ persistentsize
+ " active persistent timer" + ((persistentsize == 1)? "" : "s")
+ " on this container");
out.println("<br>");
out.println("There " + ((nonpersistentsize == 1)? "is " : "are ")
+ nonpersistentsize
+ " active non-persistent timer" + ((nonpersistentsize == 1)? "" : "s")
+ " on this container");
out.println("<br>");
}catch(Throwable e){
out.println("Problem accessing timers... ");
out.println(e);
e.printStackTrace();
}
finally {
out.println("</body>");
out.println("</html>");
out.close();
out.flush();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Timer Application Servlet";
}
// </editor-fold>
}