IrcServlet.java 3.82 KB
/*
 * Copyright Codecrew Ry
 * 
 * All rights reserved.
 * 
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software. 
 * 
 * Any distribution and use in source and binary forms, with or without 
 * modification is not permitted without explicit written permission from the 
 * copyright owner. 
 * 
 * A non-exclusive royalty-free right is granted to the copyright owner of the 
 * Software to use, modify and distribute all modifications to the Software in 
 * future versions of the Software. 
 * 
 */
/*
 * Copyright Codecrew Ry
 *
 * All rights reserved. 	
 *
 * This license applies to any software containing a notice placed by the 
 * copyright holder. Such * software is herein referred to as the Software. 
 * This license covers modification, distribution and use of the Software.
 *
 * Any distribution and use in source and binary forms, with or without
 * modification is not permitted without explicit written permission from the
 * copyright owner.
 *
 * A non-exclusive royalty-free right is granted to the copyright owner of the
 * Software to use, modify and distribute all modifications to the Software in
 * future versions of the Software.
 * 
 */
package fi.codecrew.moya.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.ejb.EJB;
import javax.ejb.Startup;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import fi.codecrew.moya.clientutils.BortalLocalContextHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.codecrew.moya.beans.BotBeanLocal;
import fi.codecrew.moya.beans.EventBeanLocal;
import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.PlaceBeanLocal;
import fi.iudex.utils.irc.IrcBot;
import fi.iudex.utils.irc.IrcBotListener;

/**
 * Servlet implementation class SshServlet
 */
@WebServlet(urlPatterns = "/irc", loadOnStartup = 10)
public class IrcServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final Logger logger = LoggerFactory.getLogger(IrcServlet.class);

	@EJB
	private EventBeanLocal eventbean;

	@EJB
	private PermissionBeanLocal permBean;
	private final ArrayList<IrcBot> bots = new ArrayList<>();

	@EJB
	private BotBeanLocal botbean;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public IrcServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	@EJB
	private PlaceBeanLocal placebean;

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {

		// tuotannossa rakastan tätä, devauspuolella en.
		if(!BortalLocalContextHolder.isInDevelopmentMode()) {
			IrcBot bot = new IrcBot("irc.cc.tut.fi", "#moya-debug", "moya-bot");
			botbean.add(bot);
			bots.add(bot);
			bot.start();
		}

	}

	/**
	 * @see Servlet#destroy()
	 */
	public void destroy() {
		logger.info("Destroying irc servlet");
		for (IrcBot b : bots) {
			b.stop();
		}
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String msg = request.getParameter("msg");
		if (msg != null && !msg.isEmpty())
			for (IrcBot b : bots) {
				b.say(msg);
			}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}