jetrix-cvs Mailing List for Jetrix TetriNET Server (Page 4)
Brought to you by:
smanux
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(47) |
Dec
(39) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(11) |
Feb
(34) |
Mar
(52) |
Apr
(79) |
May
(14) |
Jun
(41) |
Jul
(19) |
Aug
(44) |
Sep
(36) |
Oct
(36) |
Nov
(6) |
Dec
(58) |
2004 |
Jan
(23) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(91) |
2005 |
Jan
(137) |
Feb
(10) |
Mar
(2) |
Apr
(41) |
May
(62) |
Jun
(9) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(10) |
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(39) |
Sep
(18) |
Oct
|
Nov
(9) |
Dec
|
2009 |
Jan
|
Feb
(27) |
Mar
(4) |
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
(3) |
Feb
(14) |
Mar
(3) |
Apr
(10) |
May
(15) |
Jun
|
Jul
|
Aug
(9) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sm...@us...> - 2009-02-18 18:26:37
|
Revision: 800 http://jetrix.svn.sourceforge.net/jetrix/?rev=800&view=rev Author: smanux Date: 2009-02-18 18:26:28 +0000 (Wed, 18 Feb 2009) Log Message: ----------- Implemented the mail API and its integration in the server configuration Modified Paths: -------------- jetrix/trunk/build.xml jetrix/trunk/doc/todo.txt jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java jetrix/trunk/src/admin/server.jsp jetrix/trunk/src/etc/conf/server.xml jetrix/trunk/src/etc/tetrinet-server.dtd jetrix/trunk/src/java/net/jetrix/Server.java jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java Added Paths: ----------- jetrix/trunk/lib/mailapi-1.4.1.jar jetrix/trunk/lib/smtp-1.4.1.jar jetrix/trunk/src/java/net/jetrix/config/MailSessionConfig.java jetrix/trunk/src/java/net/jetrix/mail/ jetrix/trunk/src/java/net/jetrix/mail/MailMessage.java jetrix/trunk/src/java/net/jetrix/mail/MailSessionManager.java Modified: jetrix/trunk/build.xml =================================================================== --- jetrix/trunk/build.xml 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/build.xml 2009-02-18 18:26:28 UTC (rev 800) @@ -157,6 +157,8 @@ <antcall target="pack.lib" inheritAll="true"><param name="library" value="servlet-light"/></antcall> <antcall target="pack.lib" inheritAll="true"><param name="library" value="jasper-runtime"/></antcall> <antcall target="pack.lib" inheritAll="true"><param name="library" value="jcrontab-1.4.1-light"/></antcall> + <antcall target="pack.lib" inheritAll="true"><param name="library" value="mailapi-1.4.1"/></antcall> + <antcall target="pack.lib" inheritAll="true"><param name="library" value="smtp-1.4.1"/></antcall> </target> <target name="pack.lib" description="Pack the library specified by the ${library} property"> Modified: jetrix/trunk/doc/todo.txt =================================================================== --- jetrix/trunk/doc/todo.txt 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/doc/todo.txt 2009-02-18 18:26:28 UTC (rev 800) @@ -47,3 +47,6 @@ - automatic generation of the commands documentation - java web start demo - compress the files on the patch server + +Code +- split the code in two parts : the core tetrinet classes and the server specific classes Added: jetrix/trunk/lib/mailapi-1.4.1.jar =================================================================== (Binary files differ) Property changes on: jetrix/trunk/lib/mailapi-1.4.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jetrix/trunk/lib/smtp-1.4.1.jar =================================================================== (Binary files differ) Property changes on: jetrix/trunk/lib/smtp-1.4.1.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java =================================================================== --- jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java 2009-02-18 18:26:28 UTC (rev 800) @@ -28,6 +28,7 @@ import javax.servlet.ServletException; import net.jetrix.*; +import net.jetrix.mail.*; import net.jetrix.commands.*; import net.jetrix.config.*; @@ -39,7 +40,6 @@ */ public class ServerAction extends HttpServlet { - protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); @@ -64,25 +64,25 @@ else if ("listener.start".equals(action)) { int index = Integer.parseInt(request.getParameter("index")); - Listener listener = (Listener) config.getListeners().get(index); + Listener listener = config.getListeners().get(index); listener.start(); } else if ("listener.stop".equals(action)) { int index = Integer.parseInt(request.getParameter("index")); - Listener listener = (Listener) config.getListeners().get(index); + Listener listener = config.getListeners().get(index); listener.stop(); } else if ("service.start".equals(action)) { int index = Integer.parseInt(request.getParameter("index")); - Service service = (Service) config.getServices().get(index); + Service service = config.getServices().get(index); service.start(); } else if ("service.stop".equals(action)) { int index = Integer.parseInt(request.getParameter("index")); - Service service = (Service) config.getServices().get(index); + Service service = config.getServices().get(index); service.stop(); } else if ("command.remove".equals(action)) @@ -122,6 +122,19 @@ config.addDataSource(datasource); DataSourceManager.getInstance().setDataSource(datasource, datasource.getName()); } + else if ("mailsession.update".equals(action)) + { + MailSessionConfig mailconfig = new MailSessionConfig(); + mailconfig.setHostname(request.getParameter("hostname")); + mailconfig.setPort(Integer.parseInt(request.getParameter("port"))); + mailconfig.setAuth("true".equals(request.getParameter("auth"))); + mailconfig.setUsername(request.getParameter("username")); + mailconfig.setPassword(request.getParameter("password")); + mailconfig.setDebug("true".equals(request.getParameter("debug"))); + + config.setMailSessionConfig(mailconfig); + MailSessionManager.getInstance().setConfiguration(mailconfig); + } else if ("gc".equals(action)) { System.gc(); Modified: jetrix/trunk/src/admin/server.jsp =================================================================== --- jetrix/trunk/src/admin/server.jsp 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/admin/server.jsp 2009-02-18 18:26:28 UTC (rev 800) @@ -455,8 +455,67 @@ <% } %> </div> - + <div class="tab-page" style="height: 400px"> + <h2 class="tab">Mail</h2> + + <form id="mailsession" action="/servlet/<%= ServerAction.class.getName() %>"> + <input type="hidden" name="action" value="mailsession.update"> + + <table class="thin" style="width: 400px"> + <tr> + <th width="30%">Hostname</th> + <td><input class="thin" type="text" name="hostname" value="<%= conf.getMailSessionConfig().getHostname() %>" style="width: 98%"></td> + </tr> + <tr> + <th>Port</th> + <td><input class="thin" type="text" name="port" value="<%= conf.getMailSessionConfig().getPort() %>" size="5"></td> + </tr> + <tr> + <th>Authentication</th> + <td> + <table> + <tr> + <td><input type="radio" value="true" name="auth" id="auth1" <%= conf.getMailSessionConfig().isAuth() ? "checked" : "" %>></td> + <td><label for="auth1">Enabled</label></td> + <td><input type="radio" value="false" name="auth" id="auth2" <%= !conf.getMailSessionConfig().isAuth() ? "checked" : "" %>></td> + <td><label for="auth2">Disabled</label></td> + </tr> + </table> + </td> + </tr> + <tr> + <th>Username</th> + <td><input class="thin" type="text" name="username" value="<%= conf.getMailSessionConfig().getUsername() %>"></td> + </tr> + <tr> + <th>Password</th> + <td><input class="thin" type="text" name="password" value="<%= conf.getMailSessionConfig().getPassword() %>"></td> + </tr> + <tr> + <th>Debug Mode</th> + <td> + <table> + <tr> + <td><input type="radio" value="true" name="debug" id="debug1" <%= conf.getMailSessionConfig().isDebug() ? "checked" : "" %>></td> + <td><label for="debug1">Enabled</label></td> + <td><input type="radio" value="false" name="debug" id="debug2" <%= !conf.getMailSessionConfig().isDebug() ? "checked" : "" %>></td> + <td><label for="debug2">Disabled</label></td> + </tr> + </table> + </td> + </tr> + </table> + + <br> + + <input type="submit" value="Update"> + + </form> + + </div> + + <div class="tab-page" style="height: 400px"> <h2 class="tab">System</h2> <% Modified: jetrix/trunk/src/etc/conf/server.xml =================================================================== --- jetrix/trunk/src/etc/conf/server.xml 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/etc/conf/server.xml 2009-02-18 18:26:28 UTC (rev 800) @@ -124,4 +124,7 @@ </datasource> </datasources> + <!-- Mail server parameters --> + <mailserver host="localhost" port="25" auth="false" username="" password="" debug="false"/> + </tetrinet-server> Modified: jetrix/trunk/src/etc/tetrinet-server.dtd =================================================================== --- jetrix/trunk/src/etc/tetrinet-server.dtd 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/etc/tetrinet-server.dtd 2009-02-18 18:26:28 UTC (rev 800) @@ -23,7 +23,8 @@ <!ELEMENT tetrinet-server (name?, language?, timeout?, max-channels?, max-players?, max-connections?, op-password, admin-password, access-log, - error-log, channels?, listeners, services?, commands, ban?, datasources?)> + error-log, channels?, listeners, services?, commands, ban?, datasources?, + mailserver?)> <!ATTLIST tetrinet-server host CDATA #IMPLIED> <!ELEMENT name (#PCDATA)> @@ -79,3 +80,11 @@ <!ELEMENT password (#PCDATA)> <!ELEMENT min-idle (#PCDATA)> <!ELEMENT max-active (#PCDATA)> + +<!ELEMENT mailserver EMPTY> +<!ATTLIST mailserver host CDATA #REQUIRED> +<!ATTLIST mailserver port CDATA #IMPLIED> +<!ATTLIST mailserver auth CDATA #IMPLIED> +<!ATTLIST mailserver username CDATA #IMPLIED> +<!ATTLIST mailserver password CDATA #IMPLIED> +<!ATTLIST mailserver debug CDATA #IMPLIED> Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-18 18:26:28 UTC (rev 800) @@ -24,6 +24,8 @@ import java.util.concurrent.*; import java.util.logging.*; +import javax.mail.MessagingException; + import net.jetrix.clients.*; import net.jetrix.commands.*; import net.jetrix.config.*; @@ -31,6 +33,8 @@ import net.jetrix.messages.channel.*; import net.jetrix.services.VersionService; import net.jetrix.listeners.ShutdownListener; +import net.jetrix.mail.MailSessionManager; +import net.jetrix.mail.MailMessage; /** * Main class, starts the server components and handle the server level messages. @@ -113,6 +117,13 @@ } } + if (config.getMailSessionConfig() != null) + { + log.info("Initializing the mail session..."); + MailSessionManager.getInstance().setConfiguration(config.getMailSessionConfig()); + MailSessionManager.getInstance().checkSession(); + } + // display the systray icon (windows only) SystrayManager.open(); Added: jetrix/trunk/src/java/net/jetrix/config/MailSessionConfig.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/MailSessionConfig.java (rev 0) +++ jetrix/trunk/src/java/net/jetrix/config/MailSessionConfig.java 2009-02-18 18:26:28 UTC (rev 800) @@ -0,0 +1,96 @@ +/** + * Jetrix TetriNET Server + * Copyright (C) 2009 Emmanuel Bourg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.jetrix.config; + +/** + * Configuration of the mail session. + * + * @author Emmanuel Bourg + * @version $Revision$, $Date$ + */ +public class MailSessionConfig +{ + private String hostname; + private int port = 25; + private boolean auth; + private String username; + private String password; + private boolean debug; + + public String getHostname() + { + return hostname; + } + + public void setHostname(String hostname) + { + this.hostname = hostname; + } + + public int getPort() + { + return port; + } + + public void setPort(int port) + { + this.port = port; + } + + public boolean isAuth() + { + return auth; + } + + public void setAuth(boolean auth) + { + this.auth = auth; + } + + public String getUsername() + { + return username; + } + + public void setUsername(String username) + { + this.username = username; + } + + public String getPassword() + { + return password; + } + + public void setPassword(String password) + { + this.password = password; + } + + public boolean isDebug() + { + return debug; + } + + public void setDebug(boolean debug) + { + this.debug = debug; + } +} Property changes on: jetrix/trunk/src/java/net/jetrix/config/MailSessionConfig.java ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java 2009-02-18 18:26:28 UTC (rev 800) @@ -75,9 +75,12 @@ private int status; private Statistics statistics = new Statistics(); - // datasource configuration + /** Datasources configuration */ private Map<String, DataSourceConfig> datasources = new LinkedHashMap<String, DataSourceConfig>(); + /** Mail session configuration */ + private MailSessionConfig mailSessionConfig; + private URL serverConfigURL; private URL channelsConfigURL; @@ -315,6 +318,28 @@ out.println(); } + if (mailSessionConfig != null) + { + StringBuilder buffer = new StringBuilder(); + buffer.append(" <mailserver host=\"").append(mailSessionConfig.getHostname()).append("\""); + buffer.append(" port=\"").append(mailSessionConfig.getPort()).append("\""); + if (mailSessionConfig.isAuth()) + { + buffer.append(" auth=\"true\""); + buffer.append(" username=\"").append(mailSessionConfig.getUsername()).append("\""); + buffer.append(" password=\"").append(mailSessionConfig.getPassword()).append("\""); + } + if (mailSessionConfig.isDebug()) + { + buffer.append(" debug=\"true\""); + } + buffer.append("/>"); + + out.println(" <!-- Mail server parameters -->"); + out.println(buffer.toString()); + out.println(); + } + out.println("</tetrinet-server>"); @@ -962,4 +987,20 @@ { datasources.put(datasource.getName(), datasource); } + + /** + * @since 0.3 + */ + public MailSessionConfig getMailSessionConfig() + { + return mailSessionConfig; + } + + /** + * @since 0.3 + */ + public void setMailSessionConfig(MailSessionConfig mailSessionConfig) + { + this.mailSessionConfig = mailSessionConfig; + } } Modified: jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java 2009-02-18 16:28:08 UTC (rev 799) +++ jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java 2009-02-18 18:26:28 UTC (rev 800) @@ -30,7 +30,6 @@ */ class ServerRuleSet extends RuleSetBase { - public void addRuleInstances(Digester digester) { // server parameters @@ -86,6 +85,21 @@ digester.addCallMethod("*/datasource/password", "setPassword", 0); digester.addCallMethod("*/datasource/min-idle", "setMinIdle", 0); digester.addCallMethod("*/datasource/max-active", "setMaxActive", 0); + + // mail session + digester.addObjectCreate("*/mailserver", "net.jetrix.config.MailSessionConfig"); + digester.addSetNext("*/mailserver", "setMailSessionConfig", "net.jetrix.config.MailSessionConfig"); + digester.addCallMethod("*/mailserver", "setHostname", 1); + digester.addCallParam("*/mailserver", 0, "host"); + digester.addCallMethod("*/mailserver", "setPort", 1, new Class[] {Integer.TYPE}); + digester.addCallParam("*/mailserver", 0, "port"); + digester.addCallMethod("*/mailserver", "setAuth", 1, new Class[] {Boolean.TYPE}); + digester.addCallParam("*/mailserver", 0, "auth"); + digester.addCallMethod("*/mailserver", "setUsername", 1); + digester.addCallParam("*/mailserver", 0, "username"); + digester.addCallMethod("*/mailserver", "setPassword", 1); + digester.addCallParam("*/mailserver", 0, "password"); + digester.addCallMethod("*/mailserver", "setDebug", 1, new Class[] {Boolean.TYPE}); + digester.addCallParam("*/mailserver", 0, "debug"); } - } Added: jetrix/trunk/src/java/net/jetrix/mail/MailMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/mail/MailMessage.java (rev 0) +++ jetrix/trunk/src/java/net/jetrix/mail/MailMessage.java 2009-02-18 18:26:28 UTC (rev 800) @@ -0,0 +1,221 @@ +/** + * Jetrix TetriNET Server + * Copyright (C) 2009 Emmanuel Bourg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.jetrix.mail; + +import java.io.File; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.activation.FileDataSource; +import javax.mail.Address; +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Multipart; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeBodyPart; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; + +/** + * A simple mail message. This class intends to abstract the complexity + * of the JavaMail API for simple usages. It relies on the MailSessionManager + * to provide a valid mail session. + * + * @author Emmanuel Bourg + * @version $Revision$, $Date$ + * @since 0.3 + */ +public class MailMessage +{ + private static final String DEFAULT_CHARSET = "iso-8859-1"; + + private CharSequence subject; + private CharSequence body; + + private InternetAddress from; + + private Set<InternetAddress> recipients = new HashSet<InternetAddress>(); + private Set<InternetAddress> recipientsCC = new HashSet<InternetAddress>(); + private Set<InternetAddress> recipientsBCC = new HashSet<InternetAddress>(); + + private Set<DataSource> attachments = new HashSet<DataSource>(); + + public MailMessage() + { + } + + public void setSubject(CharSequence subject) + { + this.subject = subject; + } + + public void setBody(CharSequence body) + { + this.body = body; + } + + public void setFrom(InternetAddress from) + { + this.from = from; + } + + public void setFrom(String from) throws AddressException + { + this.from = new InternetAddress(from, false); + } + + public void addRecipient(String address) throws AddressException + { + recipients.add(new InternetAddress(address)); + } + + public void addRecipientCC(String address) throws AddressException + { + recipientsCC.add(new InternetAddress(address)); + } + + public void addRecipientBCC(String address) throws AddressException + { + recipientsBCC.add(new InternetAddress(address)); + } + + public void addRecipient(InternetAddress address) + { + recipients.add(address); + } + + public void addRecipientCC(InternetAddress address) + { + recipientsCC.add(address); + } + + public void addRecipientBCC(InternetAddress address) + { + recipientsBCC.add(address); + } + + public void addAttachment(File file) + { + attachments.add(new FileDataSource(file)); + } + + public void addAttachment(DataSource datasource) + { + attachments.add(datasource); + } + + /** + * Send the message, and if requested, asynchronously in a separate thread. + * + * @param asynchronous send the message in a separate thread + */ + public void send(boolean asynchronous) throws MessagingException + { + if (!asynchronous) + { + send(); + } + else + { + new Thread("MailMessage.send()") + { + public void run() + { + try + { + send(); + } + catch (MessagingException e) + { + throw new RuntimeException("An error occured when sending the mail", e); + } + } + }.start(); + } + } + + /** + * Send the message. + */ + public void send() throws MessagingException + { + Session session = MailSessionManager.getInstance().getSession(); + + // build the message + MimeMessage message = new MimeMessage(session); + message.setSubject(subject.toString(), DEFAULT_CHARSET); + message.setFrom(from); + + message.addRecipients(Message.RecipientType.TO, recipients.toArray(new Address[recipients.size()])); + message.addRecipients(Message.RecipientType.CC, recipientsCC.toArray(new Address[recipientsCC.size()])); + message.addRecipients(Message.RecipientType.BCC, recipientsBCC.toArray(new Address[recipientsBCC.size()])); + + message.setHeader("Content-Transfer-Encoding", "8bit"); + message.setSentDate(new Date()); + + MimeBodyPart part1 = new MimeBodyPart(); + if (body.toString().toLowerCase().trim().startsWith("<html") || body.toString().toLowerCase().trim().startsWith("<!doctype html")) + { + part1.setContent(body.toString(), "text/html; charset=" + DEFAULT_CHARSET); + } + else + { + part1.setText(body.toString(), DEFAULT_CHARSET); + } + part1.setHeader("Content-Transfer-Encoding", "8bit"); + + Multipart content = new MimeMultipart(); + content.addBodyPart(part1); + + // add attachments + for (DataSource attachment : attachments) + { + MimeBodyPart part2 = new MimeBodyPart(); + part2.setDataHandler(new DataHandler(attachment)); + part2.setFileName(attachment.getName()); + + content.addBodyPart(part2); + } + + message.setContent(content); + message.saveChanges(); + + // send the message + Transport transport = session.getTransport(); + + try + { + transport.connect(); + transport.sendMessage(message, message.getAllRecipients()); + } + finally + { + if (transport.isConnected()) + { + transport.close(); + } + } + } +} Property changes on: jetrix/trunk/src/java/net/jetrix/mail/MailMessage.java ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Added: jetrix/trunk/src/java/net/jetrix/mail/MailSessionManager.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/mail/MailSessionManager.java (rev 0) +++ jetrix/trunk/src/java/net/jetrix/mail/MailSessionManager.java 2009-02-18 18:26:28 UTC (rev 800) @@ -0,0 +1,124 @@ +/** + * Jetrix TetriNET Server + * Copyright (C) 2009 Emmanuel Bourg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.jetrix.mail; + +import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.mail.*; + +import net.jetrix.config.MailSessionConfig; +import org.apache.commons.lang.StringUtils; + +/** + * Singleton holding the session to send mails. + * + * @author Emmanuel Bourg + * @version $Revision$, $Date$ + * @since 0.3 + */ +public final class MailSessionManager +{ + private Logger log = Logger.getLogger(getClass().getName()); + + private static MailSessionManager instance = new MailSessionManager(); + + private Session session; + + private MailSessionManager() + { + } + + public static MailSessionManager getInstance() + { + return instance; + } + + public Session getSession() + { + return session; + } + + /** + * Initialize the mail session from the specified configuration. + */ + public void setConfiguration(final MailSessionConfig config) + { + try + { + if (!StringUtils.isBlank(config.getHostname())) + { + Properties props = new Properties(); + props.setProperty("mail.transport.protocol", "smtp"); + props.setProperty("mail.smtp.host", config.getHostname()); + props.setProperty("mail.smtp.port", String.valueOf(config.getPort())); + props.setProperty("mail.smtp.auth", String.valueOf(config.isAuth())); + + session = Session.getInstance(props, new Authenticator() + { + protected PasswordAuthentication getPasswordAuthentication() + { + return new PasswordAuthentication(config.getUsername(), config.getPassword()); + } + }); + + // enable the debug mode if requested + if (config.isDebug()) + { + session.setDebug(true); + } + } + else + { + log.warning("Unable to initialize the mail session, the hostname is missing"); + } + } + catch (Exception e) + { + log.log(Level.SEVERE, "Unable to initialize the mail session", e); + } + } + + /** + * Check if the mail session is working properly. + */ + public boolean checkSession() + { + boolean check = false; + + if (session != null) + { + try + { + Transport transport = session.getTransport(); + transport.connect(); + transport.close(); + + check = true; + } + catch (MessagingException e) + { + log.warning("Unable to validate the mail session (" + e.getMessage() + ")"); + } + } + + return check; + } +} Property changes on: jetrix/trunk/src/java/net/jetrix/mail/MailSessionManager.java ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-18 16:28:17
|
Revision: 799 http://jetrix.svn.sourceforge.net/jetrix/?rev=799&view=rev Author: smanux Date: 2009-02-18 16:28:08 +0000 (Wed, 18 Feb 2009) Log Message: ----------- Added the common base class LinesAddedMessage for the One/Two/FourLinesAddedMessage classes Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/FourLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/OneLineAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/TwoLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/protocols/IRCProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java Added Paths: ----------- jetrix/trunk/src/java/net/jetrix/messages/channel/specials/LinesAddedMessage.java Modified: jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-18 16:28:08 UTC (rev 799) @@ -251,9 +251,7 @@ onSpecial(m); // message dispatching - if (m instanceof OneLineAddedMessage) { onMessage((OneLineAddedMessage) m); } - else if (m instanceof TwoLinesAddedMessage) { onMessage((TwoLinesAddedMessage) m); } - else if (m instanceof FourLinesAddedMessage) { onMessage((FourLinesAddedMessage) m); } + if (m instanceof LinesAddedMessage) { onMessage((LinesAddedMessage) m); } else if (m instanceof AddLineMessage) { onMessage((AddLineMessage) m); } else if (m instanceof ClearLineMessage) { onMessage((ClearLineMessage) m); } else if (m instanceof ClearSpecialsMessage) { onMessage((ClearSpecialsMessage) m); } @@ -282,6 +280,13 @@ public void onMessage(CommandMessage m) { } + public void onMessage(LinesAddedMessage m) + { + if (m instanceof OneLineAddedMessage) { onMessage((OneLineAddedMessage) m); } + else if (m instanceof TwoLinesAddedMessage) { onMessage((TwoLinesAddedMessage) m); } + else if (m instanceof FourLinesAddedMessage) { onMessage((FourLinesAddedMessage) m); } + } + public void onMessage(OneLineAddedMessage m) { } public void onMessage(TwoLinesAddedMessage m) { } Modified: jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java 2009-02-18 16:28:08 UTC (rev 799) @@ -150,9 +150,7 @@ onSpecial(m, out); // message dispatching - if (m instanceof OneLineAddedMessage) { onMessage((OneLineAddedMessage) m, out); } - else if (m instanceof TwoLinesAddedMessage) { onMessage((TwoLinesAddedMessage) m, out); } - else if (m instanceof FourLinesAddedMessage) { onMessage((FourLinesAddedMessage) m, out); } + if (m instanceof LinesAddedMessage) { onMessage((LinesAddedMessage) m, out); } else if (m instanceof AddLineMessage) { onMessage((AddLineMessage) m, out); } else if (m instanceof ClearLineMessage) { onMessage((ClearLineMessage) m, out); } else if (m instanceof ClearSpecialsMessage) { onMessage((ClearSpecialsMessage) m, out); } @@ -196,6 +194,13 @@ out.add(m); } + public void onMessage(LinesAddedMessage m, List<Message> out) + { + if (m instanceof OneLineAddedMessage) { onMessage((OneLineAddedMessage) m, out); } + else if (m instanceof TwoLinesAddedMessage) { onMessage((TwoLinesAddedMessage) m, out); } + else if (m instanceof FourLinesAddedMessage) { onMessage((FourLinesAddedMessage) m, out); } + } + public void onMessage(OneLineAddedMessage m, List<Message> out) { out.add(m); Modified: jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java 2009-02-18 16:28:08 UTC (rev 799) @@ -124,41 +124,19 @@ out.add(m); } - public void onMessage(OneLineAddedMessage m, List<Message> out) + public void onMessage(LinesAddedMessage m, List<Message> out) { out.add(m); - updateStats(m, 1); + updateStats(m); // remove 1 block count from any player in an opposite team removeBlock(m); } - public void onMessage(TwoLinesAddedMessage m, List<Message> out) - { - out.add(m); - - updateStats(m, 2); - - // remove 1 block count from any player in an opposite team - removeBlock(m); - } - - public void onMessage(FourLinesAddedMessage m, List<Message> out) - { - out.add(m); - - updateStats(m, 4); - - // remove 1 block count from any player in an opposite team - removeBlock(m); - } - public void onSpecial(SpecialMessage m, List<Message> out) { - if (!(m instanceof OneLineAddedMessage) - && !(m instanceof TwoLinesAddedMessage) - && !(m instanceof FourLinesAddedMessage)) + if (!(m instanceof LinesAddedMessage)) { // add a special received by the target PlayerStats playerStats = stats.get(m.getSlot() - 1); @@ -240,17 +218,16 @@ * Update the stats of the player sending the specified message. * * @param message - * @param lines */ - private void updateStats(SpecialMessage message, int lines) + private void updateStats(LinesAddedMessage message) { if (message.getFromSlot() > 0) // ignore messages sent by the server { PlayerStats playerStats = stats.get(message.getFromSlot() - 1); if (playerStats != null) { - playerStats.linesAdded += lines; - if (lines == 4) + playerStats.linesAdded += message.getLinesAdded(); + if (message.getLinesAdded() == 4) { playerStats.tetrisCount++; } Modified: jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java 2009-02-18 16:28:08 UTC (rev 799) @@ -34,7 +34,7 @@ */ public class SurvivalFilter extends GenericFilter { - public void onMessage(OneLineAddedMessage m, List<Message> out) + public void onMessage(LinesAddedMessage m, List<Message> out) { out.add(m); @@ -43,37 +43,10 @@ ClearLineMessage clear = new ClearLineMessage(); clear.setSlot(m.getFromSlot()); - out.add(clear); + for (int i = 0; i < m.getLinesAdded(); i++) + { + out.add(clear); + } } } - - public void onMessage(TwoLinesAddedMessage m, List<Message> out) - { - out.add(m); - - if (m.getFromSlot() != 0) - { - ClearLineMessage clear = new ClearLineMessage(); - clear.setSlot(m.getFromSlot()); - - out.add(clear); - out.add(clear); - } - } - - public void onMessage(FourLinesAddedMessage m, List<Message> out) - { - out.add(m); - - if (m.getFromSlot() != 0) - { - ClearLineMessage clear = new ClearLineMessage(); - clear.setSlot(m.getFromSlot()); - - out.add(clear); - out.add(clear); - out.add(clear); - out.add(clear); - } - } } Modified: jetrix/trunk/src/java/net/jetrix/messages/channel/specials/FourLinesAddedMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/channel/specials/FourLinesAddedMessage.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/messages/channel/specials/FourLinesAddedMessage.java 2009-02-18 16:28:08 UTC (rev 799) @@ -20,13 +20,20 @@ package net.jetrix.messages.channel.specials; /** + * Message sent when 4 lines are cleared and 4 lines are added to all opponents. * - * * @author Emmanuel Bourg * @version $Revision$, $Date$ */ -public class FourLinesAddedMessage extends SpecialMessage +public class FourLinesAddedMessage extends LinesAddedMessage { + public int getLinesCleared() + { + return 4; + } - + public int getLinesAdded() + { + return 4; + } } Added: jetrix/trunk/src/java/net/jetrix/messages/channel/specials/LinesAddedMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/channel/specials/LinesAddedMessage.java (rev 0) +++ jetrix/trunk/src/java/net/jetrix/messages/channel/specials/LinesAddedMessage.java 2009-02-18 16:28:08 UTC (rev 799) @@ -0,0 +1,43 @@ +/** + * Jetrix TetriNET Server + * Copyright (C) 2009 Emmanuel Bourg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.jetrix.messages.channel.specials; + +/** + * Message sent when a player clears several lines and add lines to all opponents. + * + * @author Emmanuel Bourg + * @version $Revision$, $Date$ + * @since 0.3 + */ +public abstract class LinesAddedMessage extends SpecialMessage +{ + /** + * Returns the number of lines cleared + * @since 0.3 + */ + public abstract int getLinesCleared(); + + /** + * Returns the number of lines added to all opponents. + * @since 0.3 + */ + public abstract int getLinesAdded(); + +} Property changes on: jetrix/trunk/src/java/net/jetrix/messages/channel/specials/LinesAddedMessage.java ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: jetrix/trunk/src/java/net/jetrix/messages/channel/specials/OneLineAddedMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/channel/specials/OneLineAddedMessage.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/messages/channel/specials/OneLineAddedMessage.java 2009-02-18 16:28:08 UTC (rev 799) @@ -20,13 +20,20 @@ package net.jetrix.messages.channel.specials; /** + * Message sent when 2 lines are cleared and 1 line is added to all opponents. * - * * @author Emmanuel Bourg * @version $Revision$, $Date$ */ -public class OneLineAddedMessage extends SpecialMessage +public class OneLineAddedMessage extends LinesAddedMessage { + public int getLinesCleared() + { + return 2; + } - + public int getLinesAdded() + { + return 1; + } } Modified: jetrix/trunk/src/java/net/jetrix/messages/channel/specials/TwoLinesAddedMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/channel/specials/TwoLinesAddedMessage.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/messages/channel/specials/TwoLinesAddedMessage.java 2009-02-18 16:28:08 UTC (rev 799) @@ -20,13 +20,20 @@ package net.jetrix.messages.channel.specials; /** + * Message sent when 3 lines are cleared and 2 lines are added to all opponents. * - * * @author Emmanuel Bourg * @version $Revision$, $Date$ */ -public class TwoLinesAddedMessage extends SpecialMessage +public class TwoLinesAddedMessage extends LinesAddedMessage { + public int getLinesCleared() + { + return 3; + } - + public int getLinesAdded() + { + return 2; + } } Modified: jetrix/trunk/src/java/net/jetrix/protocols/IRCProtocol.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/protocols/IRCProtocol.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/protocols/IRCProtocol.java 2009-02-18 16:28:08 UTC (rev 799) @@ -318,21 +318,11 @@ return null; } - public String translate(OneLineAddedMessage m) + public String translate(LinesAddedMessage m) { return null; } - public String translate(TwoLinesAddedMessage m) - { - return null; - } - - public String translate(FourLinesAddedMessage m) - { - return null; - } - public String translate(AddLineMessage m) { return null; Modified: jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java 2009-02-18 15:24:28 UTC (rev 798) +++ jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java 2009-02-18 16:28:08 UTC (rev 799) @@ -383,9 +383,7 @@ public String translate(SpecialMessage m) { - if (m instanceof OneLineAddedMessage) { return translate((OneLineAddedMessage) m); } - else if (m instanceof TwoLinesAddedMessage) { return translate((TwoLinesAddedMessage) m); } - else if (m instanceof FourLinesAddedMessage) { return translate((FourLinesAddedMessage) m); } + if (m instanceof LinesAddedMessage) { return translate((LinesAddedMessage) m); } else if (m instanceof AddLineMessage) { return translate((AddLineMessage) m); } else if (m instanceof ClearLineMessage) { return translate((ClearLineMessage) m); } else if (m instanceof ClearSpecialsMessage) { return translate((ClearSpecialsMessage) m); } @@ -649,36 +647,16 @@ return message.toString(); } - public String translate(OneLineAddedMessage m) + public String translate(LinesAddedMessage m) { StringBuilder message = new StringBuilder(); message.append("sb "); message.append(m.getSlot()); - message.append(" cs1 "); + message.append(" cs").append(m.getLinesAdded()).append(" "); message.append(m.getFromSlot()); return message.toString(); } - public String translate(TwoLinesAddedMessage m) - { - StringBuilder message = new StringBuilder(); - message.append("sb "); - message.append(m.getSlot()); - message.append(" cs2 "); - message.append(m.getFromSlot()); - return message.toString(); - } - - public String translate(FourLinesAddedMessage m) - { - StringBuilder message = new StringBuilder(); - message.append("sb "); - message.append(m.getSlot()); - message.append(" cs4 "); - message.append(m.getFromSlot()); - return message.toString(); - } - public String translate(AddLineMessage m) { StringBuilder message = new StringBuilder(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-18 15:24:33
|
Revision: 798 http://jetrix.svn.sourceforge.net/jetrix/?rev=798&view=rev Author: smanux Date: 2009-02-18 15:24:28 +0000 (Wed, 18 Feb 2009) Log Message: ----------- Restructuration of the messages hierarchy Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/Channel.java jetrix/trunk/src/java/net/jetrix/Field.java jetrix/trunk/src/java/net/jetrix/Server.java jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java jetrix/trunk/src/java/net/jetrix/clients/QueryClient.java jetrix/trunk/src/java/net/jetrix/clients/TSpecClient.java jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java jetrix/trunk/src/java/net/jetrix/commands/AwayCommand.java jetrix/trunk/src/java/net/jetrix/commands/BroadcastCommand.java jetrix/trunk/src/java/net/jetrix/commands/Command.java jetrix/trunk/src/java/net/jetrix/commands/CommandManager.java jetrix/trunk/src/java/net/jetrix/commands/ConfigCommand.java jetrix/trunk/src/java/net/jetrix/commands/EmoteCommand.java jetrix/trunk/src/java/net/jetrix/commands/GotoCommand.java jetrix/trunk/src/java/net/jetrix/commands/HelpCommand.java jetrix/trunk/src/java/net/jetrix/commands/IgnoreCommand.java jetrix/trunk/src/java/net/jetrix/commands/IpCommand.java jetrix/trunk/src/java/net/jetrix/commands/JoinCommand.java jetrix/trunk/src/java/net/jetrix/commands/KickCommand.java jetrix/trunk/src/java/net/jetrix/commands/LanguageCommand.java jetrix/trunk/src/java/net/jetrix/commands/ListCommand.java jetrix/trunk/src/java/net/jetrix/commands/ModeCommand.java jetrix/trunk/src/java/net/jetrix/commands/MotdCommand.java jetrix/trunk/src/java/net/jetrix/commands/MoveCommand.java jetrix/trunk/src/java/net/jetrix/commands/OperatorCommand.java jetrix/trunk/src/java/net/jetrix/commands/PauseCommand.java jetrix/trunk/src/java/net/jetrix/commands/PetitionCommand.java jetrix/trunk/src/java/net/jetrix/commands/PingCommand.java jetrix/trunk/src/java/net/jetrix/commands/RandomCommand.java jetrix/trunk/src/java/net/jetrix/commands/ReplyCommand.java jetrix/trunk/src/java/net/jetrix/commands/SpecListCommand.java jetrix/trunk/src/java/net/jetrix/commands/StartCommand.java jetrix/trunk/src/java/net/jetrix/commands/StopCommand.java jetrix/trunk/src/java/net/jetrix/commands/SummonCommand.java jetrix/trunk/src/java/net/jetrix/commands/TeamMessageCommand.java jetrix/trunk/src/java/net/jetrix/commands/TeleportCommand.java jetrix/trunk/src/java/net/jetrix/commands/TellCommand.java jetrix/trunk/src/java/net/jetrix/commands/TimeCommand.java jetrix/trunk/src/java/net/jetrix/commands/VersionCommand.java jetrix/trunk/src/java/net/jetrix/commands/WhoCommand.java jetrix/trunk/src/java/net/jetrix/filter/AmplifierFilter.java jetrix/trunk/src/java/net/jetrix/filter/CommandFilter.java jetrix/trunk/src/java/net/jetrix/filter/FloodFilter.java jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java jetrix/trunk/src/java/net/jetrix/filter/LogoFilter.java jetrix/trunk/src/java/net/jetrix/filter/PingFilter.java jetrix/trunk/src/java/net/jetrix/filter/PuzzleFilter.java jetrix/trunk/src/java/net/jetrix/filter/RandomFilter.java jetrix/trunk/src/java/net/jetrix/filter/StartFilter.java jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java jetrix/trunk/src/java/net/jetrix/filter/SuddenDeathFilter.java jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java jetrix/trunk/src/java/net/jetrix/filter/TetrisFilter.java jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/MotdInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/OnlineUsersInterceptor.java jetrix/trunk/src/java/net/jetrix/protocols/ConsoleProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/IRCProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/QueryProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TetrifastProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TspecProtocol.java jetrix/trunk/src/java/net/jetrix/winlist/SimpleWinlist.java jetrix/trunk/src/test/net/jetrix/FieldTest.java jetrix/trunk/src/test/net/jetrix/MessageTest.java jetrix/trunk/src/test/net/jetrix/agent/TSpecAgentTest.java jetrix/trunk/src/test/net/jetrix/agent/TetrinetAgentTest.java jetrix/trunk/src/test/net/jetrix/commands/CommandManagerTest.java jetrix/trunk/src/test/net/jetrix/messages/CommandMessageTest.java jetrix/trunk/src/test/net/jetrix/protocols/QueryProtocolTest.java jetrix/trunk/src/test/net/jetrix/protocols/TSpecProtocolTest.java jetrix/trunk/src/test/net/jetrix/protocols/TetrifastProtocolTest.java jetrix/trunk/src/test/net/jetrix/protocols/TetrinetProtocolTest.java Added Paths: ----------- jetrix/trunk/src/java/net/jetrix/messages/channel/ jetrix/trunk/src/java/net/jetrix/messages/channel/ChannelMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/CommandMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/EndGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/FieldMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/GmsgMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/IngameMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/JoinMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/LeaveMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/LevelMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/NewGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/PauseMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/PlayerLostMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/PlayerNumMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/PlayerWonMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/PlineActMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/PlineMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/ResumeMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/SmsgMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/StartGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/StopGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/TeamMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/TextMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/package.html jetrix/trunk/src/java/net/jetrix/messages/channel/specials/ jetrix/trunk/src/java/net/jetrix/messages/channel/specials/AddLineMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/BlockBombMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/BlockQuakeMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/ClearLineMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/ClearSpecialsMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/FourLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/GravityMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/NukeFieldMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/OneLineAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/RandomClearMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/SpecialMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/SwitchFieldsMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/TwoLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/channel/specials/package.html Removed Paths: ------------- jetrix/trunk/src/java/net/jetrix/messages/AddLineMessage.java jetrix/trunk/src/java/net/jetrix/messages/BlockBombMessage.java jetrix/trunk/src/java/net/jetrix/messages/BlockQuakeMessage.java jetrix/trunk/src/java/net/jetrix/messages/ChannelMessage.java jetrix/trunk/src/java/net/jetrix/messages/ClearLineMessage.java jetrix/trunk/src/java/net/jetrix/messages/ClearSpecialsMessage.java jetrix/trunk/src/java/net/jetrix/messages/CommandMessage.java jetrix/trunk/src/java/net/jetrix/messages/EndGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/FieldMessage.java jetrix/trunk/src/java/net/jetrix/messages/FourLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/GmsgMessage.java jetrix/trunk/src/java/net/jetrix/messages/GravityMessage.java jetrix/trunk/src/java/net/jetrix/messages/IngameMessage.java jetrix/trunk/src/java/net/jetrix/messages/JoinMessage.java jetrix/trunk/src/java/net/jetrix/messages/LeaveMessage.java jetrix/trunk/src/java/net/jetrix/messages/LevelMessage.java jetrix/trunk/src/java/net/jetrix/messages/NewGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/NukeFieldMessage.java jetrix/trunk/src/java/net/jetrix/messages/OneLineAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/PauseMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerLostMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerNumMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerWonMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlineActMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlineMessage.java jetrix/trunk/src/java/net/jetrix/messages/RandomClearMessage.java jetrix/trunk/src/java/net/jetrix/messages/ResumeMessage.java jetrix/trunk/src/java/net/jetrix/messages/SmsgMessage.java jetrix/trunk/src/java/net/jetrix/messages/SpecialMessage.java jetrix/trunk/src/java/net/jetrix/messages/StartGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/StopGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/SwitchFieldsMessage.java jetrix/trunk/src/java/net/jetrix/messages/TeamMessage.java jetrix/trunk/src/java/net/jetrix/messages/TextMessage.java jetrix/trunk/src/java/net/jetrix/messages/TwoLinesAddedMessage.java Modified: jetrix/trunk/src/java/net/jetrix/Channel.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Channel.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/Channel.java 2009-02-18 15:24:28 UTC (rev 798) @@ -30,6 +30,8 @@ import net.jetrix.config.*; import net.jetrix.filter.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; +import net.jetrix.messages.channel.specials.*; import net.jetrix.winlist.*; import net.jetrix.clients.TetrinetClient; Modified: jetrix/trunk/src/java/net/jetrix/Field.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Field.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/Field.java 2009-02-18 15:24:28 UTC (rev 798) @@ -26,7 +26,7 @@ import java.io.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; /** * A game field. @@ -229,7 +229,7 @@ /** * Return the string representing this field as used in the - * {@link FieldMessage} messages. + * {@link net.jetrix.messages.channel.FieldMessage} messages. */ public String getFieldString() { Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-18 15:24:28 UTC (rev 798) @@ -28,6 +28,7 @@ import net.jetrix.commands.*; import net.jetrix.config.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; import net.jetrix.services.VersionService; import net.jetrix.listeners.ShutdownListener; Modified: jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,8 +21,7 @@ import java.io.IOException; -import net.jetrix.messages.PlayerNumMessage; -import net.jetrix.messages.TeamMessage; +import net.jetrix.messages.channel.*; import net.jetrix.protocols.TspecProtocol; /** Modified: jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-18 15:24:28 UTC (rev 798) @@ -32,6 +32,8 @@ import net.jetrix.Protocol; import net.jetrix.protocols.TetrinetProtocol; import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; +import net.jetrix.messages.channel.specials.*; /** * Tetrinet agent to log on a server as a player. Modified: jetrix/trunk/src/java/net/jetrix/clients/QueryClient.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/clients/QueryClient.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/clients/QueryClient.java 2009-02-18 15:24:28 UTC (rev 798) @@ -26,6 +26,7 @@ import net.jetrix.*; import net.jetrix.config.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; import net.jetrix.protocols.*; /** Modified: jetrix/trunk/src/java/net/jetrix/clients/TSpecClient.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/clients/TSpecClient.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/clients/TSpecClient.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,7 @@ import java.io.IOException; import net.jetrix.Message; -import net.jetrix.messages.SmsgMessage; +import net.jetrix.messages.channel.SmsgMessage; /** * Spectator client. Modified: jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java 2009-02-18 15:24:28 UTC (rev 798) @@ -28,6 +28,7 @@ import net.jetrix.*; import net.jetrix.config.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; /** * Layer handling communication with a tetrinet or tetrifast client. Incomming Modified: jetrix/trunk/src/java/net/jetrix/commands/AwayCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/AwayCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/AwayCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,9 +21,8 @@ import java.util.Locale; -import net.jetrix.messages.CommandMessage; -import net.jetrix.messages.PlineMessage; -import net.jetrix.AccessLevel; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; import net.jetrix.Language; import net.jetrix.User; import net.jetrix.Client; Modified: jetrix/trunk/src/java/net/jetrix/commands/BroadcastCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/BroadcastCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/BroadcastCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Send a message to all clients on the server. Modified: jetrix/trunk/src/java/net/jetrix/commands/Command.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/Command.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/Command.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,7 @@ import java.util.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; /** * A command consummes a CommandMessage to execute a specific operation. Modified: jetrix/trunk/src/java/net/jetrix/commands/CommandManager.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/CommandManager.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/CommandManager.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * CommandManager Modified: jetrix/trunk/src/java/net/jetrix/commands/ConfigCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/ConfigCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/ConfigCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -26,7 +26,8 @@ import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Display the channel settings. Modified: jetrix/trunk/src/java/net/jetrix/commands/EmoteCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/EmoteCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/EmoteCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineActMessage; /** * Display an emote. Modified: jetrix/trunk/src/java/net/jetrix/commands/GotoCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/GotoCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/GotoCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,6 +22,8 @@ import net.jetrix.*; import net.jetrix.config.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; import java.util.*; Modified: jetrix/trunk/src/java/net/jetrix/commands/HelpCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/HelpCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/HelpCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * List all commands available. Modified: jetrix/trunk/src/java/net/jetrix/commands/IgnoreCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/IgnoreCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/IgnoreCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; import org.apache.commons.lang.*; /** Modified: jetrix/trunk/src/java/net/jetrix/commands/IpCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/IpCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/IpCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Display the IP of a player. Modified: jetrix/trunk/src/java/net/jetrix/commands/JoinCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/JoinCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/JoinCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -20,11 +20,12 @@ package net.jetrix.commands; import java.util.*; -import java.util.logging.*; import net.jetrix.*; import net.jetrix.config.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Join or create a channel. Modified: jetrix/trunk/src/java/net/jetrix/commands/KickCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/KickCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/KickCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -20,10 +20,10 @@ package net.jetrix.commands; import java.util.*; -import java.util.logging.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Kick a player out of the server. Modified: jetrix/trunk/src/java/net/jetrix/commands/LanguageCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/LanguageCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/LanguageCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Set the language of the user. Modified: jetrix/trunk/src/java/net/jetrix/commands/ListCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/ListCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/ListCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -25,7 +25,8 @@ import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * List available channels. Modified: jetrix/trunk/src/java/net/jetrix/commands/ModeCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/ModeCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/ModeCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.Locale; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; import net.jetrix.config.*; import net.jetrix.*; Modified: jetrix/trunk/src/java/net/jetrix/commands/MotdCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/MotdCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/MotdCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,8 @@ import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Display the message of the day. Modified: jetrix/trunk/src/java/net/jetrix/commands/MoveCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/MoveCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/MoveCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,6 +23,7 @@ import net.jetrix.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; /** * Move a player to a new slot or switch two players. Modified: jetrix/trunk/src/java/net/jetrix/commands/OperatorCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/OperatorCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/OperatorCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -20,11 +20,11 @@ package net.jetrix.commands; import java.util.*; -import java.util.logging.*; import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Grant operator status to the player. Modified: jetrix/trunk/src/java/net/jetrix/commands/PauseCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/PauseCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/PauseCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,9 +21,11 @@ import static net.jetrix.GameState.*; -import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.ChannelMessage; +import net.jetrix.messages.channel.PauseMessage; +import net.jetrix.messages.channel.ResumeMessage; +import net.jetrix.messages.channel.CommandMessage; /** * Pause the game. Modified: jetrix/trunk/src/java/net/jetrix/commands/PetitionCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/PetitionCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/PetitionCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -20,7 +20,8 @@ package net.jetrix.commands; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; import java.util.*; Modified: jetrix/trunk/src/java/net/jetrix/commands/PingCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/PingCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/PingCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -19,10 +19,9 @@ package net.jetrix.commands; -import java.util.*; - import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.PlayerNumMessage; +import net.jetrix.messages.channel.CommandMessage; /** * Display the ping to the server. To compute the ping of tetrinet and Modified: jetrix/trunk/src/java/net/jetrix/commands/RandomCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/RandomCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/RandomCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,7 +23,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Display a random number. Modified: jetrix/trunk/src/java/net/jetrix/commands/ReplyCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/ReplyCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/ReplyCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Reply to a private message sent by a player. Modified: jetrix/trunk/src/java/net/jetrix/commands/SpecListCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/SpecListCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/SpecListCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,8 @@ import java.util.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; import net.jetrix.*; /** Modified: jetrix/trunk/src/java/net/jetrix/commands/StartCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/StartCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/StartCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -24,7 +24,10 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.StartGameMessage; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.GmsgMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Start the game. Modified: jetrix/trunk/src/java/net/jetrix/commands/StopCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/StopCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/StopCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -19,9 +19,9 @@ package net.jetrix.commands; -import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.StopGameMessage; +import net.jetrix.messages.channel.CommandMessage; /** * Stop the game. Modified: jetrix/trunk/src/java/net/jetrix/commands/SummonCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/SummonCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/SummonCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,6 +22,8 @@ import java.util.*; import net.jetrix.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Summon a player to the current channel. Modified: jetrix/trunk/src/java/net/jetrix/commands/TeamMessageCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/TeamMessageCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/TeamMessageCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Send a message to all members of the player's team. Modified: jetrix/trunk/src/java/net/jetrix/commands/TeleportCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/TeleportCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/TeleportCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,6 +23,8 @@ import net.jetrix.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Teleport a player to another channel. Modified: jetrix/trunk/src/java/net/jetrix/commands/TellCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/TellCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/TellCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,8 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Send a private message to a player. Modified: jetrix/trunk/src/java/net/jetrix/commands/TimeCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/TimeCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/TimeCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,8 +22,8 @@ import java.util.*; import java.text.*; import net.jetrix.*; -import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Display the server's time. Modified: jetrix/trunk/src/java/net/jetrix/commands/VersionCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/VersionCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/VersionCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,7 +21,8 @@ import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Display the version of the server. Modified: jetrix/trunk/src/java/net/jetrix/commands/WhoCommand.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/commands/WhoCommand.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/commands/WhoCommand.java 2009-02-18 15:24:28 UTC (rev 798) @@ -19,10 +19,10 @@ package net.jetrix.commands; -import java.util.*; import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; +import net.jetrix.messages.channel.PlineMessage; /** * List all players connected to the server. Modified: jetrix/trunk/src/java/net/jetrix/filter/AmplifierFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/AmplifierFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/AmplifierFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,8 +22,7 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.specials.SpecialMessage; /** * Amplifies specials sent. One line sent will turn into two lines, a tetris Modified: jetrix/trunk/src/java/net/jetrix/filter/CommandFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/CommandFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/CommandFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,7 +23,7 @@ import java.util.logging.*; import net.jetrix.Message; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.CommandMessage; import net.jetrix.commands.*; /** Modified: jetrix/trunk/src/java/net/jetrix/filter/FloodFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/FloodFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/FloodFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,8 +22,7 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.PlineMessage; /** * Blocks spam over pline. Modified: jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,7 +23,8 @@ import java.util.logging.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; +import net.jetrix.messages.channel.specials.*; /** * Defines a generic filter to be used and extended by filter developers. Modified: jetrix/trunk/src/java/net/jetrix/filter/LogoFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/LogoFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/LogoFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,7 +23,7 @@ import java.io.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; /** * Display a logo on the field of players losing the game. Modified: jetrix/trunk/src/java/net/jetrix/filter/PingFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/PingFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/PingFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,7 @@ import java.util.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; /** * Display the ping of the player if a <tt>team</tt> message is processed Modified: jetrix/trunk/src/java/net/jetrix/filter/PuzzleFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/PuzzleFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/PuzzleFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,7 +23,7 @@ import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; /** * Set the game field and settings when the game starts. A new puzzle is Modified: jetrix/trunk/src/java/net/jetrix/filter/RandomFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/RandomFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/RandomFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,9 +21,9 @@ import java.util.*; -import net.jetrix.messages.*; import net.jetrix.*; import net.jetrix.config.*; +import net.jetrix.messages.channel.*; /** * A filter randomizing the blocks and the specials occurancies when the game starts. Modified: jetrix/trunk/src/java/net/jetrix/filter/StartFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/StartFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/StartFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -25,8 +25,7 @@ import net.jetrix.*; import net.jetrix.commands.StartCommand; -import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; /** * Starts the game automatically once everyone said "go". Modified: jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -25,7 +25,8 @@ import java.text.*; import net.jetrix.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; +import net.jetrix.messages.channel.specials.*; import org.apache.commons.lang.time.StopWatch; /** Modified: jetrix/trunk/src/java/net/jetrix/filter/SuddenDeathFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/SuddenDeathFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/SuddenDeathFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -24,7 +24,8 @@ import net.jetrix.*; import net.jetrix.config.*; -import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; +import net.jetrix.messages.channel.specials.*; import java.util.*; Modified: jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -21,11 +21,8 @@ import java.util.*; -import net.jetrix.messages.OneLineAddedMessage; -import net.jetrix.messages.TwoLinesAddedMessage; -import net.jetrix.messages.FourLinesAddedMessage; -import net.jetrix.messages.ClearLineMessage; import net.jetrix.Message; +import net.jetrix.messages.channel.specials.*; /** * Survival mode. Every time the player clears 2 or more lines, he received Modified: jetrix/trunk/src/java/net/jetrix/filter/TetrisFilter.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/filter/TetrisFilter.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/filter/TetrisFilter.java 2009-02-18 15:24:28 UTC (rev 798) @@ -19,9 +19,9 @@ package net.jetrix.filter; -import net.jetrix.messages.*; import net.jetrix.*; -import net.jetrix.config.*; +import net.jetrix.messages.channel.*; +import net.jetrix.messages.channel.specials.*; import java.util.*; Modified: jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java 2009-02-18 15:24:28 UTC (rev 798) @@ -26,6 +26,7 @@ import net.jetrix.*; import net.jetrix.clients.*; import net.jetrix.messages.*; +import net.jetrix.messages.channel.*; import net.jetrix.protocols.*; /** Modified: jetrix/trunk/src/java/net/jetrix/listeners/interceptor/MotdInterceptor.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/listeners/interceptor/MotdInterceptor.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/listeners/interceptor/MotdInterceptor.java 2009-02-18 15:24:28 UTC (rev 798) @@ -23,7 +23,7 @@ import net.jetrix.Server; import net.jetrix.clients.QueryClient; import net.jetrix.config.ServerConfig; -import net.jetrix.messages.PlineMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Interceptor displaying the message of the day. Modified: jetrix/trunk/src/java/net/jetrix/listeners/interceptor/OnlineUsersInterceptor.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/listeners/interceptor/OnlineUsersInterceptor.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/listeners/interceptor/OnlineUsersInterceptor.java 2009-02-18 15:24:28 UTC (rev 798) @@ -22,7 +22,7 @@ import net.jetrix.Client; import net.jetrix.ClientRepository; import net.jetrix.clients.QueryClient; -import net.jetrix.messages.PlineMessage; +import net.jetrix.messages.channel.PlineMessage; /** * Interceptor displaying the number of players and spectators currently online. Deleted: jetrix/trunk/src/java/net/jetrix/messages/AddLineMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/AddLineMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/AddLineMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,32 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -/** - * - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class AddLineMessage extends SpecialMessage -{ - - -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/BlockBombMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/BlockBombMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/BlockBombMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,34 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class BlockBombMessage extends SpecialMessage -{ - - -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/BlockQuakeMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/BlockQuakeMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/BlockQuakeMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,34 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class BlockQuakeMessage extends SpecialMessage -{ - - -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/ChannelMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/ChannelMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/ChannelMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,54 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * A channel message. - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public abstract class ChannelMessage extends Message -{ - private int slot; - private String channelName; - - public int getSlot() - { - return slot; - } - - public void setSlot(int slot) - { - this.slot = slot; - } - - public String getChannelName() - { - return channelName; - } - - public void setChannelName(String channelName) - { - this.channelName = channelName; - } -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/ClearLineMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/ClearLineMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/ClearLineMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,34 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class ClearLineMessage extends SpecialMessage -{ - - -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/ClearSpecialsMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/ClearSpecialsMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/ClearSpecialsMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,34 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class ClearSpecialsMessage extends SpecialMessage -{ - - -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/CommandMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/CommandMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/CommandMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,178 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import java.util.*; - -import net.jetrix.*; - -/** - * A /command. - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class CommandMessage extends TextMessage -{ - private String command; - private List<String> parameters; - - public CommandMessage() - { - parameters = new ArrayList<String>(); - } - - public String getCommand() - { - return command; - } - - public void setCommand(String command) - { - this.command = command; - } - - public String getParameter(int i) - { - return parameters.get(i); - } - - /** - * Return an integer parameter, or the default value if the specified - * parameter doesn't map to an integer value. - * - * @param i the index of the parameter - * @param defaultValue the default value - */ - public int getIntParameter(int i, int defaultValue) - { - int value; - - try - { - value = Integer.parseInt(parameters.get(i)); - } - catch (Exception e) - { - value = defaultValue; - } - - return value; - } - - /** - * Return an integer parameter, or null if the specified parameter - * doesn't map to an integer value. - * - * @param i the index of the parameter - */ - public Integer getIntegerParameter(int i) - { - Integer value; - - try - { - value = Integer.valueOf(parameters.get(i)); - } - catch (Exception e) - { - value = null; - } - - return value; - } - - /** - * Return the Client object associated to the i-th parameter of the command. - * The client can be specified as a slot number if he is in the same channel - * as the client issuing the command, or as a case insensitive name. If no - * client matches the specified parameter a null value is returned. - */ - public Client getClientParameter(int i) - { - Client client = null; - String param = getParameter(i); - - // check if the parameter is a slot number - try - { - int slot = Integer.parseInt(param); - if (slot >= 1 && slot <= 6) - { - // find the channel of the client issuing this command - if (getSource() instanceof Client) - { - Channel channel = ((Client) getSource()).getChannel(); - client = channel.getClient(slot); - } - } - } - catch (NumberFormatException e) { } - - if (client == null) - { - // the client is still null, the parameter may be a playername - ClientRepository repository = ClientRepository.getInstance(); - client = repository.getClient(param); - } - - return client; - } - - /** - * Returns the channel associated to the i-th parameter of the command. The - * channel can be specified by a partial name or by its number. If no channel - * matches the specified parameter a null value is returned. - */ - public Channel getChannelParameter(int i) - { - Channel channel = null; - String param = getParameter(i); - - try - { - // trying to parse the number - int num = Integer.parseInt(param) - 1; - channel = ChannelManager.getInstance().getChannel(num); - } - catch (NumberFormatException e) - { - channel = ChannelManager.getInstance().getChannel(param, true); - } - - return channel; - } - - /** - * Add a parameter to the command. - */ - public void addParameter(String obj) - { - parameters.add(obj); - } - - /** - * Return the number of parameters on this command. - */ - public int getParameterCount() - { - return parameters.size(); - } -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/EndGameMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/EndGameMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/EndGameMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,34 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class EndGameMessage extends ChannelMessage -{ - - -} Deleted: jetrix/trunk/src/java/net/jetrix/messages/FieldMessage.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/messages/FieldMessage.java 2009-02-18 14:03:17 UTC (rev 797) +++ jetrix/trunk/src/java/net/jetrix/messages/FieldMessage.java 2009-02-18 15:24:28 UTC (rev 798) @@ -1,57 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2001-2003 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.messages; - -import net.jetrix.*; - -/** - * A field change message. - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class FieldMessage extends ChannelMessage -{ - private String field; - - public FieldMessage() { } - - public FieldMessage(String field) - { - this(0, field); - } - - public FieldMessage(int slot, String field) - { - setSlot(sl... [truncated message content] |
From: <sm...@us...> - 2009-02-18 14:03:29
|
Revision: 797 http://jetrix.svn.sourceforge.net/jetrix/?rev=797&view=rev Author: smanux Date: 2009-02-18 14:03:17 +0000 (Wed, 18 Feb 2009) Log Message: ----------- Added support for multiple datasources Modified Paths: -------------- jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java jetrix/trunk/src/admin/server.jsp jetrix/trunk/src/etc/conf/server.xml jetrix/trunk/src/etc/tetrinet-server.dtd jetrix/trunk/src/java/net/jetrix/DataSourceManager.java jetrix/trunk/src/java/net/jetrix/Server.java jetrix/trunk/src/java/net/jetrix/config/DataSourceConfig.java jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java Modified: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java =================================================================== --- jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java 2009-02-18 14:03:17 UTC (rev 797) @@ -110,16 +110,17 @@ } else if ("datasource.update".equals(action)) { - DataSourceConfig datasourceConfig = new DataSourceConfig(); - datasourceConfig.setDriver(request.getParameter("driver")); - datasourceConfig.setUrl(request.getParameter("url")); - datasourceConfig.setUsername(request.getParameter("username")); - datasourceConfig.setPassword(request.getParameter("password")); - datasourceConfig.setMinIdle(Integer.parseInt(request.getParameter("minIdle"))); - datasourceConfig.setMaxActive(Integer.parseInt(request.getParameter("maxActive"))); + DataSourceConfig datasource = new DataSourceConfig(); + datasource.setName(request.getParameter("name")); + datasource.setDriver(request.getParameter("driver")); + datasource.setUrl(request.getParameter("url")); + datasource.setUsername(request.getParameter("username")); + datasource.setPassword(request.getParameter("password")); + datasource.setMinIdle(Integer.parseInt(request.getParameter("minIdle"))); + datasource.setMaxActive(Integer.parseInt(request.getParameter("maxActive"))); - config.setDataSource(datasourceConfig); - DataSourceManager.getInstance().setDataSource(datasourceConfig); + config.addDataSource(datasource); + DataSourceManager.getInstance().setDataSource(datasource, datasource.getName()); } else if ("gc".equals(action)) { Modified: jetrix/trunk/src/admin/server.jsp =================================================================== --- jetrix/trunk/src/admin/server.jsp 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/admin/server.jsp 2009-02-18 14:03:17 UTC (rev 797) @@ -196,7 +196,7 @@ <% } %> </table> - <!-- list, add, remove --> + <!-- todo add, remove filters --> </div> <div class="tab-page" style="height: 400px; overflow: auto"> @@ -325,7 +325,7 @@ <td width="70" align="center"><%= listener.isRunning() ? "Started" : "Stopped" %></td> <td width="70" align="center"><%= listener.isAutoStart() ? "yes" : "no" %></td> <td width="50"> - <form id="listener" action="/servlet/<%= ServerAction.class.getName() %>"> + <form id="listener-<%= i %>" action="/servlet/<%= ServerAction.class.getName() %>"> <input type="hidden" name="index" value="<%= i %>"> <% if (listener.isRunning()) { %> <input type="hidden" name="action" value="listener.stop"> @@ -342,7 +342,7 @@ <br> - <input type="button" value="Add"> + <!-- todo <input type="button" value="Add"> --> </div> <div class="tab-page" style="height: 400px"> @@ -364,7 +364,7 @@ <td width="70" align="center"><%= service.isRunning() ? "Started" : "Stopped" %></td> <td width="70" align="center"><%= service.isAutoStart() ? "yes" : "no" %></td> <td width="50"> - <form id="listener" action="/servlet/<%= ServerAction.class.getName() %>"> + <form id="service-<%= i %>" action="/servlet/<%= ServerAction.class.getName() %>"> <input type="hidden" name="index" value="<%= i %>"> <% if (service.isRunning()) { %> <input type="hidden" name="action" value="service.stop"> @@ -381,7 +381,7 @@ <br> - <input type="button" value="Add"> + <!-- todo <input type="button" value="Add"> --> </div> <div class="tab-page" style="height: 400px"> @@ -404,36 +404,43 @@ </div> - <div class="tab-page" style="height: 400px"> - <h2 class="tab">Database</h2> - + <div class="tab-page" style="height: 400px; overflow: auto"> + <h2 class="tab">Databases</h2> + +<% for (DataSourceConfig datasource : conf.getDataSources()) { %> + <form id="datasource" action="/servlet/<%= ServerAction.class.getName() %>"> <input type="hidden" name="action" value="datasource.update"> - + <input type="hidden" name="name" value="<%= datasource.getName() %>"> + <table class="thin" style="width: 400px"> <tr> + <th width="30%">Name</th> + <td><b><%= datasource.getName() %></b></td> + </tr> + <tr> <th width="30%">Driver</th> - <td><input class="thin" type="text" name="driver" value="<%= conf.getDataSource().getDriver() %>" style="width: 98%"></td> + <td><input class="thin" type="text" name="driver" value="<%= datasource.getDriver() %>" style="width: 98%"></td> </tr> <tr> <th>URL</th> - <td><input class="thin" type="text" name="url" value="<%= conf.getDataSource().getUrl() %>" style="width: 98%"></td> + <td><input class="thin" type="text" name="url" value="<%= datasource.getUrl() %>" style="width: 98%"></td> </tr> <tr> <th>Username</th> - <td><input class="thin" type="text" name="username" value="<%= conf.getDataSource().getUsername() %>"></td> + <td><input class="thin" type="text" name="username" value="<%= datasource.getUsername() %>"></td> </tr> <tr> <th>Password</th> - <td><input class="thin" type="text" name="password" value="<%= conf.getDataSource().getPassword() %>"></td> + <td><input class="thin" type="text" name="password" value="<%= datasource.getPassword() %>"></td> </tr> <tr> <th>Min Idle</th> - <td><input class="thin" type="text" name="minIdle" value="<%= conf.getDataSource().getMinIdle() %>"></td> + <td><input class="thin" type="text" name="minIdle" value="<%= datasource.getMinIdle() %>"></td> </tr> <tr> <th>Max Active</th> - <td><input class="thin" type="text" name="maxActive" value="<%= conf.getDataSource().getMaxActive() %>"></td> + <td><input class="thin" type="text" name="maxActive" value="<%= datasource.getMaxActive() %>"></td> </tr> </table> @@ -442,6 +449,11 @@ <input type="submit" value="Update"> </form> + + <br> + +<% } %> + </div> <div class="tab-page" style="height: 400px"> @@ -512,6 +524,7 @@ </div> </div> +</div> </body> </html> Modified: jetrix/trunk/src/etc/conf/server.xml =================================================================== --- jetrix/trunk/src/etc/conf/server.xml 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/etc/conf/server.xml 2009-02-18 14:03:17 UTC (rev 797) @@ -108,18 +108,20 @@ </ban> <!-- Database connection parameters --> - <datasource> - <!-- The class of the JDBC driver used --> - <driver>com.mysql.jdbc.Driver</driver> + <datasources> + <datasource name="DEFAULT"> + <!-- The class of the JDBC driver used --> + <driver>com.mysql.jdbc.Driver</driver> - <!-- The URL of the database (jdbc:<type>://<hostname>:<port>/<database>) --> - <url>jdbc:mysql://localhost/jetrix</url> + <!-- The URL of the database (jdbc:<type>://<hostname>:<port>/<database>) --> + <url>jdbc:mysql://localhost/jetrix</url> - <!-- The username connecting to the database --> - <username>jetrix</username> + <!-- The username connecting to the database --> + <username>jetrix</username> - <!-- The password of the user --> - <password>jetrixpass</password> - </datasource> + <!-- The password of the user --> + <password>jetrixpass</password> + </datasource> + </datasources> </tetrinet-server> Modified: jetrix/trunk/src/etc/tetrinet-server.dtd =================================================================== --- jetrix/trunk/src/etc/tetrinet-server.dtd 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/etc/tetrinet-server.dtd 2009-02-18 14:03:17 UTC (rev 797) @@ -23,7 +23,7 @@ <!ELEMENT tetrinet-server (name?, language?, timeout?, max-channels?, max-players?, max-connections?, op-password, admin-password, access-log, - error-log, channels?, listeners, services?, commands, ban?, datasource?)> + error-log, channels?, listeners, services?, commands, ban?, datasources?)> <!ATTLIST tetrinet-server host CDATA #IMPLIED> <!ELEMENT name (#PCDATA)> @@ -70,7 +70,9 @@ <!ELEMENT nick (#PCDATA)> <!ELEMENT team (#PCDATA)> +<!ELEMENT datasources (datasource*)> <!ELEMENT datasource (driver, url, username, password?, min-idle?, max-active?)> +<!ATTLIST datasource name CDATA #REQUIRED> <!ELEMENT driver (#PCDATA)> <!ELEMENT url (#PCDATA)> <!ELEMENT username (#PCDATA)> Modified: jetrix/trunk/src/java/net/jetrix/DataSourceManager.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/DataSourceManager.java 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/java/net/jetrix/DataSourceManager.java 2009-02-18 14:03:17 UTC (rev 797) @@ -23,7 +23,6 @@ import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import java.sql.SQLException; import javax.sql.DataSource; import org.apache.commons.dbcp.BasicDataSource; @@ -46,8 +45,14 @@ private Map<String, DataSource> datasources = new HashMap<String, DataSource>(); /** Key of the default datasource. */ - private static final String DEFAULT_DATASOURCE = "DEFAULT"; + public static final String DEFAULT_DATASOURCE = "DEFAULT"; + /** Default number of the minimum idle connections */ + public static final int DEFAULT_MIN_IDLE = 1; + + /** Default number of maximum active connections */ + public static final int DEFAULT_MAX_ACTIVE = 50; + private DataSourceManager() { } @@ -67,7 +72,7 @@ public DataSource getDataSource(String environnement) { - return (DataSource) datasources.get(environnement); + return datasources.get(environnement); } /** @@ -112,8 +117,8 @@ datasource.setUrl(config.getUrl()); datasource.setUsername(config.getUsername()); datasource.setPassword(config.getPassword()); - datasource.setMinIdle(config.getMinIdle() != 0 ? config.getMinIdle() : 1); - datasource.setMaxActive(config.getMaxActive() != 0 ? config.getMaxActive() : 50); + datasource.setMinIdle(config.getMinIdle() != 0 ? config.getMinIdle() : DEFAULT_MIN_IDLE); + datasource.setMaxActive(config.getMaxActive() != 0 ? config.getMaxActive() : DEFAULT_MAX_ACTIVE); // attempts to open the connection datasource.getConnection().close(); Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-18 14:03:17 UTC (rev 797) @@ -102,11 +102,14 @@ // prepare the loggers LogManager.init(); - // open the database connection - if (config.getDataSource() != null) + // open the database connections + if (!config.getDataSources().isEmpty()) { - log.info("Initializing the datasource..."); - DataSourceManager.getInstance().setDataSource(config.getDataSource()); + log.info("Initializing the datasources..."); + for (DataSourceConfig datasource : config.getDataSources()) + { + DataSourceManager.getInstance().setDataSource(datasource, datasource.getName()); + } } // display the systray icon (windows only) Modified: jetrix/trunk/src/java/net/jetrix/config/DataSourceConfig.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/DataSourceConfig.java 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/java/net/jetrix/config/DataSourceConfig.java 2009-02-18 14:03:17 UTC (rev 797) @@ -19,21 +19,43 @@ package net.jetrix.config; +import net.jetrix.DataSourceManager; + /** * Configuration for a pool of connections to a database. * * @author Emmanuel Bourg * @version $Revision$, $Date$ + * @since 0.3 */ public class DataSourceConfig { + private String name = DataSourceManager.DEFAULT_DATASOURCE; private String url; private String driver; private String username; private String password; - private int minIdle; - private int maxActive; + private int minIdle = DataSourceManager.DEFAULT_MIN_IDLE; + private int maxActive = DataSourceManager.DEFAULT_MAX_ACTIVE; + /** + * Tells if this datasource is the default datasource. + */ + public boolean isDefault() + { + return DataSourceManager.DEFAULT_DATASOURCE.equals(name); + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + public String getUrl() { return url; Modified: jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java 2009-02-18 14:03:17 UTC (rev 797) @@ -76,7 +76,7 @@ private Statistics statistics = new Statistics(); // datasource configuration - private DataSourceConfig datasourceConfig; + private Map<String, DataSourceConfig> datasources = new LinkedHashMap<String, DataSourceConfig>(); private URL serverConfigURL; private URL channelsConfigURL; @@ -269,43 +269,52 @@ out.println(" </ban>"); out.println(); - if (datasourceConfig != null) + if (!datasources.isEmpty()) { out.println(" <!-- Database connection parameters -->"); - out.println(" <datasource>"); - out.println(" <!-- The class of the JDBC driver used -->"); - out.println(" <driver>" + datasourceConfig.getDriver() + "</driver>"); + out.println(" <datasources>"); out.println(); - out.println(" <!-- The URL of the database (jdbc:<type>://<hostname>:<port>/<database>) -->"); - out.println(" <url>" + datasourceConfig.getUrl() + "</url>"); - out.println(); - out.println(" <!-- The username connecting to the database -->"); - out.println(" <username>" + datasourceConfig.getUsername() + "</username>"); - out.println(); - out.println(" <!-- The password of the user -->"); - if (datasourceConfig.getPassword() != null) + + for (DataSourceConfig datasource : datasources.values()) { - out.println(" <password>" + datasourceConfig.getPassword() + "</password>"); - } - else - { - out.println(" <password/>"); - } - if (datasourceConfig.getMinIdle() != 0) - { + out.println(" <datasource name=\"" + datasource.getName() + "\">"); + out.println(" <!-- The class of the JDBC driver used -->"); + out.println(" <driver>" + datasource.getDriver() + "</driver>"); out.println(); - out.println(" <!-- The minimum number of idle connections -->"); - out.println(" <min-idle>" + datasourceConfig.getMinIdle() + "</min-idle>"); - } - if (datasourceConfig.getMaxActive() != 0) - { + out.println(" <!-- The URL of the database (jdbc:<type>://<hostname>:<port>/<database>) -->"); + out.println(" <url>" + datasource.getUrl() + "</url>"); out.println(); - out.println(" <!-- The maximum number of active connections -->"); - out.println(" <max-active>" + datasourceConfig.getMaxActive() + "</max-active>"); + out.println(" <!-- The username connecting to the database -->"); + out.println(" <username>" + datasource.getUsername() + "</username>"); + out.println(); + out.println(" <!-- The password of the user -->"); + if (datasource.getPassword() != null) + { + out.println(" <password>" + datasource.getPassword() + "</password>"); + } + else + { + out.println(" <password/>"); + } + if (datasource.getMinIdle() != DataSourceManager.DEFAULT_MIN_IDLE) + { + out.println(); + out.println(" <!-- The minimum number of idle connections -->"); + out.println(" <min-idle>" + datasource.getMinIdle() + "</min-idle>"); + } + if (datasource.getMaxActive() != DataSourceManager.DEFAULT_MAX_ACTIVE) + { + out.println(); + out.println(" <!-- The maximum number of active connections -->"); + out.println(" <max-active>" + datasource.getMaxActive() + "</max-active>"); + } + out.println(" </datasource>"); + out.println(); } - out.println(" </datasource>"); + out.println(" </datasources>"); out.println(); } + out.println("</tetrinet-server>"); @@ -941,16 +950,16 @@ /** * @since 0.3 */ - public DataSourceConfig getDataSource() + public Collection<DataSourceConfig> getDataSources() { - return datasourceConfig; + return datasources.values(); } /** * @since 0.3 */ - public void setDataSource(DataSourceConfig datasourceConfig) + public void addDataSource(DataSourceConfig datasource) { - this.datasourceConfig = datasourceConfig; + datasources.put(datasource.getName(), datasource); } } Modified: jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java 2009-02-18 13:28:05 UTC (rev 796) +++ jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java 2009-02-18 14:03:17 UTC (rev 797) @@ -77,7 +77,9 @@ // datasource digester.addObjectCreate("*/datasource", "net.jetrix.config.DataSourceConfig"); - digester.addSetNext("*/datasource", "setDataSource", "net.jetrix.config.DataSourceConfig"); + digester.addSetNext("*/datasource", "addDataSource", "net.jetrix.config.DataSourceConfig"); + digester.addCallMethod("*/datasource", "setName", 1); + digester.addCallParam("*/datasource", 0, "name"); digester.addCallMethod("*/datasource/driver", "setDriver", 0); digester.addCallMethod("*/datasource/url", "setUrl", 0); digester.addCallMethod("*/datasource/username", "setUsername", 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-18 13:28:08
|
Revision: 796 http://jetrix.svn.sourceforge.net/jetrix/?rev=796&view=rev Author: smanux Date: 2009-02-18 13:28:05 +0000 (Wed, 18 Feb 2009) Log Message: ----------- Fixed the favicon in the admin panel Modified Paths: -------------- jetrix/trunk/src/admin/index.html jetrix/trunk/src/site/header.inc.php Modified: jetrix/trunk/src/admin/index.html =================================================================== --- jetrix/trunk/src/admin/index.html 2009-02-17 19:10:59 UTC (rev 795) +++ jetrix/trunk/src/admin/index.html 2009-02-18 13:28:05 UTC (rev 796) @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="style.css"> - <link rel="shortcut icon" href="http://jetrix.sourceforge.net/images/favicon.gif"> + <link rel="shortcut icon" type="image/x-icon" href="http://jetrix.sourceforge.net/favicon.ico" /> <title>Jetrix Administration</title> </head> <frameset rows="120,*" frameborder="no" border="0" cols="*"> Modified: jetrix/trunk/src/site/header.inc.php =================================================================== --- jetrix/trunk/src/site/header.inc.php 2009-02-17 19:10:59 UTC (rev 795) +++ jetrix/trunk/src/site/header.inc.php 2009-02-18 13:28:05 UTC (rev 796) @@ -15,7 +15,7 @@ <meta name="description" content="Jetrix is a new generation TetriNET server written in Java and designed for maximum scalability and extensibility." /> <meta name="keywords" content="jetrix, tetrinet, server, tnet, tetrifast, tfast, tspec, tetris, tetrix, java" /> <link rel="stylesheet" href="style.css" /> - <link rel="shorcut icon" type="image/x-icon" href="favicon.ico" /> + <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="alternate" type="application/rss+xml" title="RSS" href="http://sourceforge.net/export/rss2_projnews.php?group_id=52188&rss_fulltext=1" /> <title>Jetrix TetriNET Server</title> </head> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-17 19:11:03
|
Revision: 795 http://jetrix.svn.sourceforge.net/jetrix/?rev=795&view=rev Author: smanux Date: 2009-02-17 19:10:59 +0000 (Tue, 17 Feb 2009) Log Message: ----------- Updated the svn:keywords and svn:eol-style properties Modified Paths: -------------- monitor/trunk/src/main/webapp/player.jsp monitor/trunk/src/main/webapp/scripts/sortable.js monitor/trunk/src/main/webapp/server-add.jsp monitor/trunk/src/main/webapp/server.jsp monitor/trunk/src/main/webapp/servers-xml.jsp monitor/trunk/src/main/webapp/spec.jsp monitor/trunk/src/main/webapp/stylesheets/style.css Property Changed: ---------------- monitor/trunk/src/main/webapp/index.jsp monitor/trunk/src/main/webapp/player.jsp monitor/trunk/src/main/webapp/scripts/sortable.js monitor/trunk/src/main/webapp/server-add.jsp monitor/trunk/src/main/webapp/server.jsp monitor/trunk/src/main/webapp/servers-xml.jsp monitor/trunk/src/main/webapp/spec.jsp monitor/trunk/src/main/webapp/stylesheets/style.css Property changes on: monitor/trunk/src/main/webapp/index.jsp ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/player.jsp =================================================================== --- monitor/trunk/src/main/webapp/player.jsp 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/player.jsp 2009-02-17 19:10:59 UTC (rev 795) @@ -1,63 +1,63 @@ -<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> -<%@ page import="org.springframework.web.context.ContextLoader" %> -<%@ page import="org.springframework.web.context.WebApplicationContext" %> -<%@ page import="net.jetrix.monitor.PlayerStats" %> -<%@ page import="net.jetrix.monitor.dao.PlayerStatsDao" %> -<%@ page import="net.jetrix.monitor.StyleUtils" %> -<% - WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); - PlayerStatsDao dao = (PlayerStatsDao) context.getBean("playerStatsDao"); - - PlayerStats player = dao.getStats(request.getParameter("id")); - -%> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> - <title> - <fmt:message key="title.player"> - <fmt:param><%= StyleUtils.strip(player.getName()) %></fmt:param> - </fmt:message> - </title> - <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> - <link rel="Shorcut Icon" href="favicon.ico"> -</head> -<body> - - - -<h1> - <fmt:message key="title.player"> - <fmt:param><%= StyleUtils.strip(player.getName()) %></fmt:param> - </fmt:message> -</h1> - -<table class="thin" border="1" cellspacing="0" style="min-width: 40%"> - <tr> - <th width="25%"><fmt:message key="word.first-seen"/></th> - <td><%= player.getFirstSeen() %></td> - </tr> - <tr> - <th><fmt:message key="word.last-seen"/></th> - <td><%= player.getLastSeen() %></td> - </tr> - <tr> - <th><fmt:message key="word.last-played"/></th> - <td><%= player.getLastPlayed() != null ? player.getLastPlayed() : "-" %></td> - </tr> - <tr> - <th><fmt:message key="word.server"/></th> - <td><a href="server.jsp?id=<%= player.getLastServer().getId() %>"><%= player.getLastServer().getHostname() %></a></td> - </tr> - <tr> - <th><fmt:message key="word.channel"/></th> - <td><%= player.getChannel() != null ? player.getChannel() : "" %></td> - </tr> - <tr> - <th><fmt:message key="word.team"/></th> - <td><%= player.getTeam() != null ? player.getTeam() : "" %></td> - </tr> -</table> - -</body> -</html> +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> +<%@ page import="org.springframework.web.context.ContextLoader" %> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="net.jetrix.monitor.PlayerStats" %> +<%@ page import="net.jetrix.monitor.dao.PlayerStatsDao" %> +<%@ page import="net.jetrix.monitor.StyleUtils" %> +<% + WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + PlayerStatsDao dao = (PlayerStatsDao) context.getBean("playerStatsDao"); + + PlayerStats player = dao.getStats(request.getParameter("id")); + +%> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <title> + <fmt:message key="title.player"> + <fmt:param><%= StyleUtils.strip(player.getName()) %></fmt:param> + </fmt:message> + </title> + <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> + <link rel="Shorcut Icon" href="favicon.ico"> +</head> +<body> + + + +<h1> + <fmt:message key="title.player"> + <fmt:param><%= StyleUtils.strip(player.getName()) %></fmt:param> + </fmt:message> +</h1> + +<table class="thin" border="1" cellspacing="0" style="min-width: 40%"> + <tr> + <th width="25%"><fmt:message key="word.first-seen"/></th> + <td><%= player.getFirstSeen() %></td> + </tr> + <tr> + <th><fmt:message key="word.last-seen"/></th> + <td><%= player.getLastSeen() %></td> + </tr> + <tr> + <th><fmt:message key="word.last-played"/></th> + <td><%= player.getLastPlayed() != null ? player.getLastPlayed() : "-" %></td> + </tr> + <tr> + <th><fmt:message key="word.server"/></th> + <td><a href="server.jsp?id=<%= player.getLastServer().getId() %>"><%= player.getLastServer().getHostname() %></a></td> + </tr> + <tr> + <th><fmt:message key="word.channel"/></th> + <td><%= player.getChannel() != null ? player.getChannel() : "" %></td> + </tr> + <tr> + <th><fmt:message key="word.team"/></th> + <td><%= player.getTeam() != null ? player.getTeam() : "" %></td> + </tr> +</table> + +</body> +</html> Property changes on: monitor/trunk/src/main/webapp/player.jsp ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/scripts/sortable.js =================================================================== --- monitor/trunk/src/main/webapp/scripts/sortable.js 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/scripts/sortable.js 2009-02-17 19:10:59 UTC (rev 795) @@ -1,327 +1,327 @@ -/* -Table sorting script by Joost de Valk, check it out at http://www.joostdevalk.nl/code/sortable-table/. -Based on a script from http://www.kryogenix.org/code/browser/sorttable/. -Distributed under the MIT license: http://www.kryogenix.org/code/browser/licence.html . - -Copyright (c) 1997-2007 Stuart Langridge, Joost de Valk. - -Version 1.5.7 -*/ - -/* You can change these values */ -var image_path = "http://www.joostdevalk.nl/code/sortable-table/"; -var image_up = "arrowup.gif"; -var image_down = "arrowdown.gif"; -var image_none = "arrownone.gif"; -var europeandate = true; -var alternate_row_colors = true; - -/* Don't change anything below this unless you know what you're doing */ -addEvent(window, "load", sortables_init); - -var SORT_COLUMN_INDEX; -var thead = false; - -function sortables_init() { - // Find all tables with class sortable and make them sortable - if (!document.getElementsByTagName) return; - tbls = document.getElementsByTagName("table"); - for (ti=0;ti<tbls.length;ti++) { - thisTbl = tbls[ti]; - if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) { - ts_makeSortable(thisTbl); - } - } -} - -function ts_makeSortable(t) { - if (t.rows && t.rows.length > 0) { - if (t.tHead && t.tHead.rows.length > 0) { - var firstRow = t.tHead.rows[t.tHead.rows.length-1]; - thead = true; - } else { - var firstRow = t.rows[0]; - } - } - if (!firstRow) return; - - // We have a first row: assume it's the header, and make its contents clickable links - for (var i=0;i<firstRow.cells.length;i++) { - var cell = firstRow.cells[i]; - var txt = ts_getInnerText(cell); - if (cell.className != "unsortable" && cell.className.indexOf("unsortable") == -1) { - cell.innerHTML = '<a href="#" class="sortheader" onclick="ts_resortTable(this, '+i+');return false;">'+txt+'<span class="sortarrow"> <img src="'+ image_path + image_none + '" alt="↓"/></span></a>'; - } - } - if (alternate_row_colors) { - alternate(t); - } -} - -function ts_getInnerText(el) { - if (typeof el == "string") return el; - if (typeof el == "undefined") { return el }; - if (el.innerText) return el.innerText; //Not needed but it is faster - var str = ""; - - var cs = el.childNodes; - var l = cs.length; - for (var i = 0; i < l; i++) { - switch (cs[i].nodeType) { - case 1: //ELEMENT_NODE - if (cs[i].tagName == "IMG") { - str += cs[i].getAttribute("alt"); - } else { - str += ts_getInnerText(cs[i]); - } - break; - case 3: //TEXT_NODE - str += cs[i].nodeValue; - break; - } - } - return str; -} - -function ts_resortTable(lnk, clid) { - var span; - for (var ci=0;ci<lnk.childNodes.length;ci++) { - if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci]; - } - var spantext = ts_getInnerText(span); - var td = lnk.parentNode; - var column = clid || td.cellIndex; - var t = getParent(td,'TABLE'); - // Work out a type for the column - if (t.rows.length <= 1) return; - var itm = ""; - var i = 0; - while (itm == "" && i < t.tBodies[0].rows.length) { - var itm = ts_getInnerText(t.tBodies[0].rows[i].cells[column]); - itm = trim(itm); - if (itm.substr(0,4) == "<!--" || itm.length == 0) { - itm = ""; - } - i++; - } - if (itm == "") return; - sortfn = ts_sort_caseinsensitive; - if (itm.match(/^\d\d[\/\.-][a-zA-z][a-zA-Z][a-zA-Z][\/\.-]\d\d\d\d$/)) sortfn = ts_sort_date; - if (itm.match(/^\d\d[\/\.-]\d\d[\/\.-]\d\d\d{2}?$/)) sortfn = ts_sort_date; - if (itm.match(/^-?[\xA3$\x80ۢ\xB4]\d/)) sortfn = ts_sort_numeric; - if (itm.match(/^-?(\d+[,\.]?)+(E[-+][\d]+)?%?$/)) sortfn = ts_sort_numeric; - SORT_COLUMN_INDEX = column; - var firstRow = new Array(); - var newRows = new Array(); - for (k=0;k<t.tBodies.length;k++) { - for (i=0;i<t.tBodies[k].rows[0].length;i++) { - firstRow[i] = t.tBodies[k].rows[0][i]; - } - } - for (k=0;k<t.tBodies.length;k++) { - if (!thead) { - // Skip the first row - for (j=1;j<t.tBodies[k].rows.length;j++) { - newRows[j-1] = t.tBodies[k].rows[j]; - } - } else { - // Do NOT skip the first row - for (j=0;j<t.tBodies[k].rows.length;j++) { - newRows[j] = t.tBodies[k].rows[j]; - } - } - } - newRows.sort(sortfn); - if (span.getAttribute("sortdir") == 'down') { - ARROW = ' <img src="'+ image_path + image_down + '" alt="↓"/>'; - newRows.reverse(); - span.setAttribute('sortdir','up'); - } else { - ARROW = ' <img src="'+ image_path + image_up + '" alt="↑"/>'; - span.setAttribute('sortdir','down'); - } - // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones - // don't do sortbottom rows - for (i=0; i<newRows.length; i++) { - if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) { - t.tBodies[0].appendChild(newRows[i]); - } - } - // do sortbottom rows only - for (i=0; i<newRows.length; i++) { - if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) - t.tBodies[0].appendChild(newRows[i]); - } - // Delete any other arrows there may be showing - var allspans = document.getElementsByTagName("span"); - for (var ci=0;ci<allspans.length;ci++) { - if (allspans[ci].className == 'sortarrow') { - if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us? - allspans[ci].innerHTML = ' <img src="'+ image_path + image_none + '" alt="↓"/>'; - } - } - } - span.innerHTML = ARROW; - alternate(t); -} - -function getParent(el, pTagName) { - if (el == null) { - return null; - } else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) { - return el; - } else { - return getParent(el.parentNode, pTagName); - } -} - -function sort_date(date) { - // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX - dt = "00000000"; - if (date.length == 11) { - mtstr = date.substr(3,3); - mtstr = mtstr.toLowerCase(); - switch(mtstr) { - case "jan": var mt = "01"; break; - case "feb": var mt = "02"; break; - case "mar": var mt = "03"; break; - case "apr": var mt = "04"; break; - case "may": var mt = "05"; break; - case "jun": var mt = "06"; break; - case "jul": var mt = "07"; break; - case "aug": var mt = "08"; break; - case "sep": var mt = "09"; break; - case "oct": var mt = "10"; break; - case "nov": var mt = "11"; break; - case "dec": var mt = "12"; break; - // default: var mt = "00"; - } - dt = date.substr(7,4)+mt+date.substr(0,2); - return dt; - } else if (date.length == 10) { - if (europeandate == false) { - dt = date.substr(6,4)+date.substr(0,2)+date.substr(3,2); - return dt; - } else { - dt = date.substr(6,4)+date.substr(3,2)+date.substr(0,2); - return dt; - } - } else if (date.length == 8) { - yr = date.substr(6,2); - if (parseInt(yr) < 50) { - yr = '20'+yr; - } else { - yr = '19'+yr; - } - if (europeandate == true) { - dt = yr+date.substr(3,2)+date.substr(0,2); - return dt; - } else { - dt = yr+date.substr(0,2)+date.substr(3,2); - return dt; - } - } - return dt; -} - -function ts_sort_date(a,b) { - dt1 = sort_date(ts_getInnerText(a.cells[SORT_COLUMN_INDEX])); - dt2 = sort_date(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); - - if (dt1==dt2) { - return 0; - } - if (dt1<dt2) { - return -1; - } - return 1; -} -function ts_sort_numeric(a,b) { - var aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); - aa = clean_num(aa); - var bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); - bb = clean_num(bb); - return compare_numeric(aa,bb); -} -function compare_numeric(a,b) { - var a = parseFloat(a); - a = (isNaN(a) ? 0 : a); - var b = parseFloat(b); - b = (isNaN(b) ? 0 : b); - return a - b; -} -function ts_sort_caseinsensitive(a,b) { - aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase(); - bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase(); - if (aa==bb) { - return 0; - } - if (aa<bb) { - return -1; - } - return 1; -} -function ts_sort_default(a,b) { - aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); - bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); - if (aa==bb) { - return 0; - } - if (aa<bb) { - return -1; - } - return 1; -} -function addEvent(elm, evType, fn, useCapture) -// addEvent and removeEvent -// cross-browser event handling for IE5+, NS6 and Mozilla -// By Scott Andrew -{ - if (elm.addEventListener){ - elm.addEventListener(evType, fn, useCapture); - return true; - } else if (elm.attachEvent){ - var r = elm.attachEvent("on"+evType, fn); - return r; - } else { - alert("Handler could not be removed"); - } -} -function clean_num(str) { - str = str.replace(new RegExp(/[^-?0-9.]/g),""); - return str; -} -function trim(s) { - return s.replace(/^\s+|\s+$/g, ""); -} -function alternate(table) { - // Take object table and get all it's tbodies. - var tableBodies = table.getElementsByTagName("tbody"); - // Loop through these tbodies - for (var i = 0; i < tableBodies.length; i++) { - // Take the tbody, and get all it's rows - var tableRows = tableBodies[i].getElementsByTagName("tr"); - // Loop through these rows - // Start at 1 because we want to leave the heading row untouched - for (var j = 0; j < tableRows.length; j++) { - // Check if j is even, and apply classes for both possible results - if ( (j % 2) == 0 ) { - if ( !(tableRows[j].className.indexOf('odd') == -1) ) { - tableRows[j].className = tableRows[j].className.replace('odd', 'even'); - } else { - if ( tableRows[j].className.indexOf('even') == -1 ) { - tableRows[j].className += " even"; - } - } - } else { - if ( !(tableRows[j].className.indexOf('even') == -1) ) { - tableRows[j].className = tableRows[j].className.replace('even', 'odd'); - } else { - if ( tableRows[j].className.indexOf('odd') == -1 ) { - tableRows[j].className += " odd"; - } - } - } - } - } -} +/* +Table sorting script by Joost de Valk, check it out at http://www.joostdevalk.nl/code/sortable-table/. +Based on a script from http://www.kryogenix.org/code/browser/sorttable/. +Distributed under the MIT license: http://www.kryogenix.org/code/browser/licence.html . + +Copyright (c) 1997-2007 Stuart Langridge, Joost de Valk. + +Version 1.5.7 +*/ + +/* You can change these values */ +var image_path = "http://www.joostdevalk.nl/code/sortable-table/"; +var image_up = "arrowup.gif"; +var image_down = "arrowdown.gif"; +var image_none = "arrownone.gif"; +var europeandate = true; +var alternate_row_colors = true; + +/* Don't change anything below this unless you know what you're doing */ +addEvent(window, "load", sortables_init); + +var SORT_COLUMN_INDEX; +var thead = false; + +function sortables_init() { + // Find all tables with class sortable and make them sortable + if (!document.getElementsByTagName) return; + tbls = document.getElementsByTagName("table"); + for (ti=0;ti<tbls.length;ti++) { + thisTbl = tbls[ti]; + if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) { + ts_makeSortable(thisTbl); + } + } +} + +function ts_makeSortable(t) { + if (t.rows && t.rows.length > 0) { + if (t.tHead && t.tHead.rows.length > 0) { + var firstRow = t.tHead.rows[t.tHead.rows.length-1]; + thead = true; + } else { + var firstRow = t.rows[0]; + } + } + if (!firstRow) return; + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i=0;i<firstRow.cells.length;i++) { + var cell = firstRow.cells[i]; + var txt = ts_getInnerText(cell); + if (cell.className != "unsortable" && cell.className.indexOf("unsortable") == -1) { + cell.innerHTML = '<a href="#" class="sortheader" onclick="ts_resortTable(this, '+i+');return false;">'+txt+'<span class="sortarrow"> <img src="'+ image_path + image_none + '" alt="↓"/></span></a>'; + } + } + if (alternate_row_colors) { + alternate(t); + } +} + +function ts_getInnerText(el) { + if (typeof el == "string") return el; + if (typeof el == "undefined") { return el }; + if (el.innerText) return el.innerText; //Not needed but it is faster + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + if (cs[i].tagName == "IMG") { + str += cs[i].getAttribute("alt"); + } else { + str += ts_getInnerText(cs[i]); + } + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + +function ts_resortTable(lnk, clid) { + var span; + for (var ci=0;ci<lnk.childNodes.length;ci++) { + if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci]; + } + var spantext = ts_getInnerText(span); + var td = lnk.parentNode; + var column = clid || td.cellIndex; + var t = getParent(td,'TABLE'); + // Work out a type for the column + if (t.rows.length <= 1) return; + var itm = ""; + var i = 0; + while (itm == "" && i < t.tBodies[0].rows.length) { + var itm = ts_getInnerText(t.tBodies[0].rows[i].cells[column]); + itm = trim(itm); + if (itm.substr(0,4) == "<!--" || itm.length == 0) { + itm = ""; + } + i++; + } + if (itm == "") return; + sortfn = ts_sort_caseinsensitive; + if (itm.match(/^\d\d[\/\.-][a-zA-z][a-zA-Z][a-zA-Z][\/\.-]\d\d\d\d$/)) sortfn = ts_sort_date; + if (itm.match(/^\d\d[\/\.-]\d\d[\/\.-]\d\d\d{2}?$/)) sortfn = ts_sort_date; + if (itm.match(/^-?[\xA3$\x80ۢ\xB4]\d/)) sortfn = ts_sort_numeric; + if (itm.match(/^-?(\d+[,\.]?)+(E[-+][\d]+)?%?$/)) sortfn = ts_sort_numeric; + SORT_COLUMN_INDEX = column; + var firstRow = new Array(); + var newRows = new Array(); + for (k=0;k<t.tBodies.length;k++) { + for (i=0;i<t.tBodies[k].rows[0].length;i++) { + firstRow[i] = t.tBodies[k].rows[0][i]; + } + } + for (k=0;k<t.tBodies.length;k++) { + if (!thead) { + // Skip the first row + for (j=1;j<t.tBodies[k].rows.length;j++) { + newRows[j-1] = t.tBodies[k].rows[j]; + } + } else { + // Do NOT skip the first row + for (j=0;j<t.tBodies[k].rows.length;j++) { + newRows[j] = t.tBodies[k].rows[j]; + } + } + } + newRows.sort(sortfn); + if (span.getAttribute("sortdir") == 'down') { + ARROW = ' <img src="'+ image_path + image_down + '" alt="↓"/>'; + newRows.reverse(); + span.setAttribute('sortdir','up'); + } else { + ARROW = ' <img src="'+ image_path + image_up + '" alt="↑"/>'; + span.setAttribute('sortdir','down'); + } + // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones + // don't do sortbottom rows + for (i=0; i<newRows.length; i++) { + if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) { + t.tBodies[0].appendChild(newRows[i]); + } + } + // do sortbottom rows only + for (i=0; i<newRows.length; i++) { + if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) + t.tBodies[0].appendChild(newRows[i]); + } + // Delete any other arrows there may be showing + var allspans = document.getElementsByTagName("span"); + for (var ci=0;ci<allspans.length;ci++) { + if (allspans[ci].className == 'sortarrow') { + if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us? + allspans[ci].innerHTML = ' <img src="'+ image_path + image_none + '" alt="↓"/>'; + } + } + } + span.innerHTML = ARROW; + alternate(t); +} + +function getParent(el, pTagName) { + if (el == null) { + return null; + } else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) { + return el; + } else { + return getParent(el.parentNode, pTagName); + } +} + +function sort_date(date) { + // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX + dt = "00000000"; + if (date.length == 11) { + mtstr = date.substr(3,3); + mtstr = mtstr.toLowerCase(); + switch(mtstr) { + case "jan": var mt = "01"; break; + case "feb": var mt = "02"; break; + case "mar": var mt = "03"; break; + case "apr": var mt = "04"; break; + case "may": var mt = "05"; break; + case "jun": var mt = "06"; break; + case "jul": var mt = "07"; break; + case "aug": var mt = "08"; break; + case "sep": var mt = "09"; break; + case "oct": var mt = "10"; break; + case "nov": var mt = "11"; break; + case "dec": var mt = "12"; break; + // default: var mt = "00"; + } + dt = date.substr(7,4)+mt+date.substr(0,2); + return dt; + } else if (date.length == 10) { + if (europeandate == false) { + dt = date.substr(6,4)+date.substr(0,2)+date.substr(3,2); + return dt; + } else { + dt = date.substr(6,4)+date.substr(3,2)+date.substr(0,2); + return dt; + } + } else if (date.length == 8) { + yr = date.substr(6,2); + if (parseInt(yr) < 50) { + yr = '20'+yr; + } else { + yr = '19'+yr; + } + if (europeandate == true) { + dt = yr+date.substr(3,2)+date.substr(0,2); + return dt; + } else { + dt = yr+date.substr(0,2)+date.substr(3,2); + return dt; + } + } + return dt; +} + +function ts_sort_date(a,b) { + dt1 = sort_date(ts_getInnerText(a.cells[SORT_COLUMN_INDEX])); + dt2 = sort_date(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); + + if (dt1==dt2) { + return 0; + } + if (dt1<dt2) { + return -1; + } + return 1; +} +function ts_sort_numeric(a,b) { + var aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); + aa = clean_num(aa); + var bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); + bb = clean_num(bb); + return compare_numeric(aa,bb); +} +function compare_numeric(a,b) { + var a = parseFloat(a); + a = (isNaN(a) ? 0 : a); + var b = parseFloat(b); + b = (isNaN(b) ? 0 : b); + return a - b; +} +function ts_sort_caseinsensitive(a,b) { + aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase(); + bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase(); + if (aa==bb) { + return 0; + } + if (aa<bb) { + return -1; + } + return 1; +} +function ts_sort_default(a,b) { + aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]); + bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]); + if (aa==bb) { + return 0; + } + if (aa<bb) { + return -1; + } + return 1; +} +function addEvent(elm, evType, fn, useCapture) +// addEvent and removeEvent +// cross-browser event handling for IE5+, NS6 and Mozilla +// By Scott Andrew +{ + if (elm.addEventListener){ + elm.addEventListener(evType, fn, useCapture); + return true; + } else if (elm.attachEvent){ + var r = elm.attachEvent("on"+evType, fn); + return r; + } else { + alert("Handler could not be removed"); + } +} +function clean_num(str) { + str = str.replace(new RegExp(/[^-?0-9.]/g),""); + return str; +} +function trim(s) { + return s.replace(/^\s+|\s+$/g, ""); +} +function alternate(table) { + // Take object table and get all it's tbodies. + var tableBodies = table.getElementsByTagName("tbody"); + // Loop through these tbodies + for (var i = 0; i < tableBodies.length; i++) { + // Take the tbody, and get all it's rows + var tableRows = tableBodies[i].getElementsByTagName("tr"); + // Loop through these rows + // Start at 1 because we want to leave the heading row untouched + for (var j = 0; j < tableRows.length; j++) { + // Check if j is even, and apply classes for both possible results + if ( (j % 2) == 0 ) { + if ( !(tableRows[j].className.indexOf('odd') == -1) ) { + tableRows[j].className = tableRows[j].className.replace('odd', 'even'); + } else { + if ( tableRows[j].className.indexOf('even') == -1 ) { + tableRows[j].className += " even"; + } + } + } else { + if ( !(tableRows[j].className.indexOf('even') == -1) ) { + tableRows[j].className = tableRows[j].className.replace('even', 'odd'); + } else { + if ( tableRows[j].className.indexOf('odd') == -1 ) { + tableRows[j].className += " odd"; + } + } + } + } + } +} Property changes on: monitor/trunk/src/main/webapp/scripts/sortable.js ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/server-add.jsp =================================================================== --- monitor/trunk/src/main/webapp/server-add.jsp 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/server-add.jsp 2009-02-17 19:10:59 UTC (rev 795) @@ -1,60 +1,60 @@ -<%@ page import="java.io.IOException" %> -<%@ page import="java.net.InetAddress" %> -<%@ page import="java.net.InetSocketAddress" %> -<%@ page import="java.net.Socket" %> -<%@ page import="java.util.Date" %> -<%@ page import="org.springframework.web.context.ContextLoader" %> -<%@ page import="org.springframework.web.context.WebApplicationContext" %> -<%@ page import="net.jetrix.monitor.ServerInfo" %> -<%@ page import="net.jetrix.monitor.dao.IpToCountryDao" %> -<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> -<% - String hostname = request.getParameter("hostname"); - - InetAddress address = null; - try - { - // lookup the IP - address = InetAddress.getByName(hostname); - - WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); - ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); - IpToCountryDao countryDao = (IpToCountryDao) context.getBean("ipToCountryDao"); - - ServerInfo server = new ServerInfo(); - server.setHostname(hostname); - server.setIP(address.getHostAddress()); - server.setDateAdded(new Date()); - server.setCountry(countryDao.getCountry(address)); - - // lookup the hostname if the IP was specified - if (address.getHostAddress().equals(hostname)) - { - server.setHostname(address.getCanonicalHostName()); - } - - // check if the tetrinet port is opened - long t0 = System.currentTimeMillis(); - Socket socket = new Socket(); - socket.connect(new InetSocketAddress(address, 31457), 15000); - long t1 = System.currentTimeMillis(); - socket.close(); - - server.getStats().setPing((int) (t1 - t0)); - - if (!dao.exists(server) && !address.isLoopbackAddress()) - { - dao.save(server); - out.println("server added " + address); - } - - // todo register the alias if the server is already registered - } - catch (IOException e) - { - out.println(e.getMessage()); - // server ignored - } - - response.sendRedirect("index.jsp"); +<%@ page import="java.io.IOException" %> +<%@ page import="java.net.InetAddress" %> +<%@ page import="java.net.InetSocketAddress" %> +<%@ page import="java.net.Socket" %> +<%@ page import="java.util.Date" %> +<%@ page import="org.springframework.web.context.ContextLoader" %> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="net.jetrix.monitor.ServerInfo" %> +<%@ page import="net.jetrix.monitor.dao.IpToCountryDao" %> +<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> +<% + String hostname = request.getParameter("hostname"); + + InetAddress address = null; + try + { + // lookup the IP + address = InetAddress.getByName(hostname); + + WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); + IpToCountryDao countryDao = (IpToCountryDao) context.getBean("ipToCountryDao"); + + ServerInfo server = new ServerInfo(); + server.setHostname(hostname); + server.setIP(address.getHostAddress()); + server.setDateAdded(new Date()); + server.setCountry(countryDao.getCountry(address)); + + // lookup the hostname if the IP was specified + if (address.getHostAddress().equals(hostname)) + { + server.setHostname(address.getCanonicalHostName()); + } + + // check if the tetrinet port is opened + long t0 = System.currentTimeMillis(); + Socket socket = new Socket(); + socket.connect(new InetSocketAddress(address, 31457), 15000); + long t1 = System.currentTimeMillis(); + socket.close(); + + server.getStats().setPing((int) (t1 - t0)); + + if (!dao.exists(server) && !address.isLoopbackAddress()) + { + dao.save(server); + out.println("server added " + address); + } + + // todo register the alias if the server is already registered + } + catch (IOException e) + { + out.println(e.getMessage()); + // server ignored + } + + response.sendRedirect("index.jsp"); %> \ No newline at end of file Property changes on: monitor/trunk/src/main/webapp/server-add.jsp ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/server.jsp =================================================================== --- monitor/trunk/src/main/webapp/server.jsp 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/server.jsp 2009-02-17 19:10:59 UTC (rev 795) @@ -1,227 +1,227 @@ -<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> -<%@ page import="java.util.Locale" %> -<%@ page import="org.springframework.web.context.ContextLoader" %> -<%@ page import="org.springframework.web.context.WebApplicationContext" %> -<%@ page import="net.jetrix.agent.ChannelInfo" %> -<%@ page import="net.jetrix.agent.PlayerInfo" %> -<%@ page import="net.jetrix.monitor.ServerInfo" %> -<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> -<%@ page import="net.jetrix.monitor.StyleUtils" %> -<%@ page import="java.net.URLEncoder" %> -<% - WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); - ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); - - ServerInfo server = dao.getServer(Long.parseLong(request.getParameter("id"))); - - String countryName = "Unknown"; - String localizedCountryName = "Unknown"; - String countryFlag = "United Nations"; - - if (server.getCountry() != null) { - Locale locale = new Locale("en", server.getCountry()); - countryName = locale.getDisplayCountry(Locale.ENGLISH); - localizedCountryName = locale.getDisplayCountry(request.getLocale()); - countryFlag = countryName; - } - - boolean viewable = server.isSpectate() && server.getSpectatorPassword() != null; -%> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> - <title> - <fmt:message key="title.server"> - <fmt:param><%= server.getHostname() %></fmt:param> - </fmt:message> - </title> - <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> - <link rel="Shorcut Icon" href="favicon.ico"> - <script type="text/javascript" src="scripts/sortable.js"></script> -</head> -<body> - -<h1> - <fmt:message key="title.server"> - <fmt:param><%= server.getHostname() %></fmt:param> - </fmt:message> -</h1> - -<% if (server.getMaxPlayerCount() > 0) { %> -<div style="float: right"> - <img src="images/graphs/server-<%= server.getId() %>.png" alt="<fmt:message key="word.activity-graph"/>"> -</div> -<% } %> - -<table class="thin" border="1" cellspacing="0" style="min-width: 40%"> - <tr> - <th width="25%"><fmt:message key="word.website"/></th> - <td> -<% if (server.getWebsite() != null) { %> - <a href="<%= server.getWebsite() %>"><%= server.getWebsite() %></a> -<% } %> - </td> - </tr> - <tr> - <th><fmt:message key="word.description"/></th> - <td><%= server.getDescription() != null ? server.getDescription() : "" %></td> - </tr> - <tr> - <th><fmt:message key="word.version"/></th> - <td><%= server.getVersion() != null ? server.getVersion() : "" %></td> - </tr> - <tr> - <th><fmt:message key="word.country"/></th> - <td> - <table border="0" cellpadding="0" cellspacing="0"> - <tr> - <td><img src="images/flags/24/<%= countryFlag %>.png" alt="<%= localizedCountryName%>"></td> - <td><%= localizedCountryName%></td> - </tr> - </table> - </td> - </tr> - <tr> - <th><fmt:message key="word.players"/></th> - <td> - <%= server.getStats().getPlayerCount() %> -<% if (server.getStats().getActivePlayerCount() > 0) { %> - (<%= server.getStats().getActivePlayerCount() %> <fmt:message key="word.active"/>) -<% } %> - </td> - </tr> -<% if (server.getMaxPlayerCount() != 0 && server.getMaxActivePlayerCount() != 0) { %> - <tr> - <th><fmt:message key="word.peak"/></th> - <td> - <fmt:message key="message.peak.players"> - <fmt:param><%= server.getMaxPlayerCount() %></fmt:param> - <fmt:param><%= server.getMaxPlayerDate() %></fmt:param> - </fmt:message> - <br> - <fmt:message key="message.peak.active-players"> - <fmt:param><%= server.getMaxActivePlayerCount() %></fmt:param> - <fmt:param><%= server.getMaxActivePlayerDate() %></fmt:param> - </fmt:message> - </td> - </tr> -<% } %> - <tr> - <th><fmt:message key="word.channels"/></th> - <td><%= server.getStats().getChannelCount() %></td> - </tr> - <tr> - <th><fmt:message key="word.tspec-access"/></th> - <td style="color: <%= server.isSpectate() ? "green" : "red" %>"> - <% if (server.isSpectate()) { %> - <fmt:message key="word.yes"/> - <% } else { %> - <fmt:message key="word.no"/> - <% } %> - </td> - </tr> - <tr> - <th><fmt:message key="word.ping"/></th> - <td><%= server.getStats().getPing() %> ms</td> - </tr> - <tr> - <th><fmt:message key="word.date-added"/></th> - <td><%= server.getDateAdded() %></td> - </tr> - <tr> - <th><fmt:message key="word.last-online"/></th> - <td> - <% if (server.getLastOnline() != null) { %> - <%= server.getLastOnline() %> - <% } else { %> - <fmt:message key="word.never"/> - <% } %> - </td> - </tr> -</table> - -<p><a href="<%= request.getContextPath() %>/"><fmt:message key="message.back-to-servers"/></a></p> - -<div style="clear: both;"></div> - -<% if (!server.getPlayers().isEmpty()) { %> - -<h2><fmt:message key="word.players"/></h2> - -<table class="thin sortable" id="players" border="1" style="min-width: 40%"> - <thead> - <tr> - <th><fmt:message key="word.nick"/></th> - <th><fmt:message key="word.team"/></th> - <th><fmt:message key="word.channel"/></th> - <th><fmt:message key="word.slot"/></th> - <th><fmt:message key="word.status"/></th> - <th><fmt:message key="word.tetrinet-client"/></th> - </tr> - </thead> - <tbody> -<% for (PlayerInfo player : server.getPlayers()) { %> - <tr> - <td<%= player.getAuthenticationLevel() > 1 ? " style=\"font-weight: bold\"" : "" %>><a style="text-decoration: none; color: black" href="player.jsp?id=<%= player.getNick() %>"><%= StyleUtils.toHTML(player.getNick()) %></a></td> - <td><%= StyleUtils.toHTML(player.getTeam()) %></td> - <td><%= player.getChannel() %></td> - <td><%= player.getSlot() %></td> - <td style="color: <%= player.isPlaying() ? "green" : "inherit" %>"> - <% if (player.isPlaying()) { %> - <fmt:message key="word.playing"/> - <% } else { %> - <fmt:message key="word.idle"/> - <% } %> - </td> - <td><%= player.getVersion() %></td> - </tr> -<% } %> - </tbody> -</table> - -<% } %> - - -<% if (!server.getChannels().isEmpty()) { %> - -<h2><fmt:message key="word.channels"/></h2> - -<table class="thin sortable" id="channels" border="1" style="min-width: 40%"> - <thead> - <tr> - <th><fmt:message key="word.name"/></th> - <th><fmt:message key="word.description"/></th> - <th><fmt:message key="word.players"/></th> - <th><fmt:message key="word.status"/></th> -<% if (viewable) { %> - <th><fmt:message key="word.action"/></th> -<% } %> - </tr> - </thead> - <tbody> -<% for (ChannelInfo channel : server.getChannels()) { %> - <tr> - <td><%= channel.getName() %></td> - <td><%= StyleUtils.toHTML(channel.getDescription()) %></td> - <td><%= channel.getPlayernum() %> / <%= channel.getPlayermax() %></td> - <td style="color: green; font-weight: bold"> - <% if (channel.isPlaying()) { %> - <fmt:message key="word.ingame"/> - <% } %> - </td> -<% if (viewable) { %> - <td align="center"> -<% if (channel.getPlayernum() > 0) { %> - <a href="spec.jsp?id=<%= server.getId() %>&channel=<%= URLEncoder.encode(channel.getName()) %>">View</a> -<% } %> - </td> -<% } %> - </tr> -<% } %> - </tbody> -</table> - -<% } %> - -</body> -</html> +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> +<%@ page import="java.util.Locale" %> +<%@ page import="org.springframework.web.context.ContextLoader" %> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="net.jetrix.agent.ChannelInfo" %> +<%@ page import="net.jetrix.agent.PlayerInfo" %> +<%@ page import="net.jetrix.monitor.ServerInfo" %> +<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> +<%@ page import="net.jetrix.monitor.StyleUtils" %> +<%@ page import="java.net.URLEncoder" %> +<% + WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); + + ServerInfo server = dao.getServer(Long.parseLong(request.getParameter("id"))); + + String countryName = "Unknown"; + String localizedCountryName = "Unknown"; + String countryFlag = "United Nations"; + + if (server.getCountry() != null) { + Locale locale = new Locale("en", server.getCountry()); + countryName = locale.getDisplayCountry(Locale.ENGLISH); + localizedCountryName = locale.getDisplayCountry(request.getLocale()); + countryFlag = countryName; + } + + boolean viewable = server.isSpectate() && server.getSpectatorPassword() != null; +%> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <title> + <fmt:message key="title.server"> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> + </title> + <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> + <link rel="Shorcut Icon" href="favicon.ico"> + <script type="text/javascript" src="scripts/sortable.js"></script> +</head> +<body> + +<h1> + <fmt:message key="title.server"> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> +</h1> + +<% if (server.getMaxPlayerCount() > 0) { %> +<div style="float: right"> + <img src="images/graphs/server-<%= server.getId() %>.png" alt="<fmt:message key="word.activity-graph"/>"> +</div> +<% } %> + +<table class="thin" border="1" cellspacing="0" style="min-width: 40%"> + <tr> + <th width="25%"><fmt:message key="word.website"/></th> + <td> +<% if (server.getWebsite() != null) { %> + <a href="<%= server.getWebsite() %>"><%= server.getWebsite() %></a> +<% } %> + </td> + </tr> + <tr> + <th><fmt:message key="word.description"/></th> + <td><%= server.getDescription() != null ? server.getDescription() : "" %></td> + </tr> + <tr> + <th><fmt:message key="word.version"/></th> + <td><%= server.getVersion() != null ? server.getVersion() : "" %></td> + </tr> + <tr> + <th><fmt:message key="word.country"/></th> + <td> + <table border="0" cellpadding="0" cellspacing="0"> + <tr> + <td><img src="images/flags/24/<%= countryFlag %>.png" alt="<%= localizedCountryName%>"></td> + <td><%= localizedCountryName%></td> + </tr> + </table> + </td> + </tr> + <tr> + <th><fmt:message key="word.players"/></th> + <td> + <%= server.getStats().getPlayerCount() %> +<% if (server.getStats().getActivePlayerCount() > 0) { %> + (<%= server.getStats().getActivePlayerCount() %> <fmt:message key="word.active"/>) +<% } %> + </td> + </tr> +<% if (server.getMaxPlayerCount() != 0 && server.getMaxActivePlayerCount() != 0) { %> + <tr> + <th><fmt:message key="word.peak"/></th> + <td> + <fmt:message key="message.peak.players"> + <fmt:param><%= server.getMaxPlayerCount() %></fmt:param> + <fmt:param><%= server.getMaxPlayerDate() %></fmt:param> + </fmt:message> + <br> + <fmt:message key="message.peak.active-players"> + <fmt:param><%= server.getMaxActivePlayerCount() %></fmt:param> + <fmt:param><%= server.getMaxActivePlayerDate() %></fmt:param> + </fmt:message> + </td> + </tr> +<% } %> + <tr> + <th><fmt:message key="word.channels"/></th> + <td><%= server.getStats().getChannelCount() %></td> + </tr> + <tr> + <th><fmt:message key="word.tspec-access"/></th> + <td style="color: <%= server.isSpectate() ? "green" : "red" %>"> + <% if (server.isSpectate()) { %> + <fmt:message key="word.yes"/> + <% } else { %> + <fmt:message key="word.no"/> + <% } %> + </td> + </tr> + <tr> + <th><fmt:message key="word.ping"/></th> + <td><%= server.getStats().getPing() %> ms</td> + </tr> + <tr> + <th><fmt:message key="word.date-added"/></th> + <td><%= server.getDateAdded() %></td> + </tr> + <tr> + <th><fmt:message key="word.last-online"/></th> + <td> + <% if (server.getLastOnline() != null) { %> + <%= server.getLastOnline() %> + <% } else { %> + <fmt:message key="word.never"/> + <% } %> + </td> + </tr> +</table> + +<p><a href="<%= request.getContextPath() %>/"><fmt:message key="message.back-to-servers"/></a></p> + +<div style="clear: both;"></div> + +<% if (!server.getPlayers().isEmpty()) { %> + +<h2><fmt:message key="word.players"/></h2> + +<table class="thin sortable" id="players" border="1" style="min-width: 40%"> + <thead> + <tr> + <th><fmt:message key="word.nick"/></th> + <th><fmt:message key="word.team"/></th> + <th><fmt:message key="word.channel"/></th> + <th><fmt:message key="word.slot"/></th> + <th><fmt:message key="word.status"/></th> + <th><fmt:message key="word.tetrinet-client"/></th> + </tr> + </thead> + <tbody> +<% for (PlayerInfo player : server.getPlayers()) { %> + <tr> + <td<%= player.getAuthenticationLevel() > 1 ? " style=\"font-weight: bold\"" : "" %>><a style="text-decoration: none; color: black" href="player.jsp?id=<%= player.getNick() %>"><%= StyleUtils.toHTML(player.getNick()) %></a></td> + <td><%= StyleUtils.toHTML(player.getTeam()) %></td> + <td><%= player.getChannel() %></td> + <td><%= player.getSlot() %></td> + <td style="color: <%= player.isPlaying() ? "green" : "inherit" %>"> + <% if (player.isPlaying()) { %> + <fmt:message key="word.playing"/> + <% } else { %> + <fmt:message key="word.idle"/> + <% } %> + </td> + <td><%= player.getVersion() %></td> + </tr> +<% } %> + </tbody> +</table> + +<% } %> + + +<% if (!server.getChannels().isEmpty()) { %> + +<h2><fmt:message key="word.channels"/></h2> + +<table class="thin sortable" id="channels" border="1" style="min-width: 40%"> + <thead> + <tr> + <th><fmt:message key="word.name"/></th> + <th><fmt:message key="word.description"/></th> + <th><fmt:message key="word.players"/></th> + <th><fmt:message key="word.status"/></th> +<% if (viewable) { %> + <th><fmt:message key="word.action"/></th> +<% } %> + </tr> + </thead> + <tbody> +<% for (ChannelInfo channel : server.getChannels()) { %> + <tr> + <td><%= channel.getName() %></td> + <td><%= StyleUtils.toHTML(channel.getDescription()) %></td> + <td><%= channel.getPlayernum() %> / <%= channel.getPlayermax() %></td> + <td style="color: green; font-weight: bold"> + <% if (channel.isPlaying()) { %> + <fmt:message key="word.ingame"/> + <% } %> + </td> +<% if (viewable) { %> + <td align="center"> +<% if (channel.getPlayernum() > 0) { %> + <a href="spec.jsp?id=<%= server.getId() %>&channel=<%= URLEncoder.encode(channel.getName()) %>">View</a> +<% } %> + </td> +<% } %> + </tr> +<% } %> + </tbody> +</table> + +<% } %> + +</body> +</html> Property changes on: monitor/trunk/src/main/webapp/server.jsp ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/servers-xml.jsp =================================================================== --- monitor/trunk/src/main/webapp/servers-xml.jsp 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/servers-xml.jsp 2009-02-17 19:10:59 UTC (rev 795) @@ -1,46 +1,46 @@ -<?xml version="1.0"?> -<%@ page import="java.util.List" %> -<%@ page import="java.util.Locale" %> -<%@ page import="org.apache.commons.lang.StringEscapeUtils" %> -<%@ page import="org.springframework.web.context.ContextLoader" %> -<%@ page import="org.springframework.web.context.WebApplicationContext" %> -<%@ page import="net.jetrix.monitor.ServerInfo" %> -<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> -<%@ page contentType="text/xml" pageEncoding="UTF-8" %> -<% - WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); - ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); - - List<ServerInfo> servers = dao.getServers(); -%> -<tetrinet-servers> -<% for (ServerInfo server : servers) { - // skip offline servers - if (!server.isOnline()) { - continue; - } -%> - <server - id="<%= server.getId() %>" - name="<%= server.getHostname() %>" -<% if (server.getVersion() != null) { %> - version="<%= StringEscapeUtils.escapeXml(server.getVersion()) %>" -<% } %> -<% if (server.getDescription() != null) { %> - description="<%= StringEscapeUtils.escapeXml(server.getDescription()) %>" -<% } %> - spec="<%= server.isSpectate() ? "true" : "false" %>" -<% if (server.getCountry() != null) { - Locale locale = new Locale("en", server.getCountry()); -%> - country="<%= server.getCountry() %>" - countryName="<%= locale.getDisplayCountry(Locale.ENGLISH) %>" -<% } %> - ping="<%= server.getStats().getPing() %>" - players="<%= server.getStats().getPlayerCount() %>" - activePlayers="<%= server.getStats().getActivePlayerCount() %>" - channels="<%= server.getStats().getChannelCount() %>" - activeChannels="<%= server.getStats().getActiveChannelCount() %>" - /> -<% } %> -</tetrinet-servers> +<?xml version="1.0"?> +<%@ page import="java.util.List" %> +<%@ page import="java.util.Locale" %> +<%@ page import="org.apache.commons.lang.StringEscapeUtils" %> +<%@ page import="org.springframework.web.context.ContextLoader" %> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="net.jetrix.monitor.ServerInfo" %> +<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> +<%@ page contentType="text/xml" pageEncoding="UTF-8" %> +<% + WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); + + List<ServerInfo> servers = dao.getServers(); +%> +<tetrinet-servers> +<% for (ServerInfo server : servers) { + // skip offline servers + if (!server.isOnline()) { + continue; + } +%> + <server + id="<%= server.getId() %>" + name="<%= server.getHostname() %>" +<% if (server.getVersion() != null) { %> + version="<%= StringEscapeUtils.escapeXml(server.getVersion()) %>" +<% } %> +<% if (server.getDescription() != null) { %> + description="<%= StringEscapeUtils.escapeXml(server.getDescription()) %>" +<% } %> + spec="<%= server.isSpectate() ? "true" : "false" %>" +<% if (server.getCountry() != null) { + Locale locale = new Locale("en", server.getCountry()); +%> + country="<%= server.getCountry() %>" + countryName="<%= locale.getDisplayCountry(Locale.ENGLISH) %>" +<% } %> + ping="<%= server.getStats().getPing() %>" + players="<%= server.getStats().getPlayerCount() %>" + activePlayers="<%= server.getStats().getActivePlayerCount() %>" + channels="<%= server.getStats().getChannelCount() %>" + activeChannels="<%= server.getStats().getActiveChannelCount() %>" + /> +<% } %> +</tetrinet-servers> Property changes on: monitor/trunk/src/main/webapp/servers-xml.jsp ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/spec.jsp =================================================================== --- monitor/trunk/src/main/webapp/spec.jsp 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/spec.jsp 2009-02-17 19:10:59 UTC (rev 795) @@ -1,47 +1,47 @@ -<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> -<%@ page import="org.springframework.web.context.ContextLoader" %> -<%@ page import="org.springframework.web.context.WebApplicationContext" %> -<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> -<%@ page import="net.jetrix.monitor.ServerInfo" %> -<% - WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); - ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); - - ServerInfo server = dao.getServer(Long.parseLong(request.getParameter("id"))); - - String channel = request.getParameter("channel"); -%> -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<head> - <title> - <fmt:message key="title.channel"> - <fmt:param><%= channel %></fmt:param> - <fmt:param><%= server.getHostname() %></fmt:param> - </fmt:message> - </title> - <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> - <link rel="Shorcut Icon" href="favicon.ico"> -</head> -<body> - -<h1> - <fmt:message key="title.channel"> - <fmt:param><%= channel %></fmt:param> - <fmt:param><%= server.getHostname() %></fmt:param> - </fmt:message> -</h1> - -<div align="center"> -<applet code="net.jetrix.spectator.SpectatorApplet" archive="webspec-0.1-SNAPSHOT.jar,jetrix-0.3-SNAPSHOT.jar" width="640" height="480"> - <param name="hostname" value="<%= server.getHostname() %>"> - <param name="password" value="<%= server.getSpectatorPassword() %>"> - <param name="menu" value="false"> - <param name="channel" value="#<%= channel %>"> -</applet> -</div> - -<a href="server.jsp?id=<%= server.getId() %>"><fmt:message key="message.back-to-server-info"/></a> - -</body> -</html> +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> +<%@ page import="org.springframework.web.context.ContextLoader" %> +<%@ page import="org.springframework.web.context.WebApplicationContext" %> +<%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> +<%@ page import="net.jetrix.monitor.ServerInfo" %> +<% + WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + ServerInfoDao dao = (ServerInfoDao) context.getBean("serverInfoDao"); + + ServerInfo server = dao.getServer(Long.parseLong(request.getParameter("id"))); + + String channel = request.getParameter("channel"); +%> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> + <title> + <fmt:message key="title.channel"> + <fmt:param><%= channel %></fmt:param> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> + </title> + <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> + <link rel="Shorcut Icon" href="favicon.ico"> +</head> +<body> + +<h1> + <fmt:message key="title.channel"> + <fmt:param><%= channel %></fmt:param> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> +</h1> + +<div align="center"> +<applet code="net.jetrix.spectator.SpectatorApplet" archive="webspec-0.1-SNAPSHOT.jar,jetrix-0.3-SNAPSHOT.jar" width="640" height="480"> + <param name="hostname" value="<%= server.getHostname() %>"> + <param name="password" value="<%= server.getSpectatorPassword() %>"> + <param name="menu" value="false"> + <param name="channel" value="#<%= channel %>"> +</applet> +</div> + +<a href="server.jsp?id=<%= server.getId() %>"><fmt:message key="message.back-to-server-info"/></a> + +</body> +</html> Property changes on: monitor/trunk/src/main/webapp/spec.jsp ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/stylesheets/style.css =================================================================== --- monitor/trunk/src/main/webapp/stylesheets/style.css 2009-02-17 19:08:39 UTC (rev 794) +++ monitor/trunk/src/main/webapp/stylesheets/style.css 2009-02-17 19:10:59 UTC (rev 795) @@ -1,38 +1,38 @@ -body { - font-family: sans-serif; - width: 75%; - margin-left: auto; - margin-right: auto; - border: 1px solid #d3d3d3; - padding: 0 1em 1em 1em; - -moz-border-radius: 10px; - font-size: 80%; -} - -img { - border: 0; -} - -.thin { - border-collapse: collapse; - border-width: 1px; - border-color: black; -} - -.thin th { - background-color: #dddddd; -} - -.thin th, .thin td { - padding: .3em; - border-color: black; -} - -.thin th a { - text-decoration: none; - color: black; -} - -.sortarrow { - display: none; -} +body { + font-family: sans-serif; + width: 75%; + margin-left: auto; + margin-right: auto; + border: 1px solid #d3d3d3; + padding: 0 1em 1em 1em; + -moz-border-radius: 10px; + font-size: 80%; +} + +img { + border: 0; +} + +.thin { + border-collapse: collapse; + border-width: 1px; + border-color: black; +} + +.thin th { + background-color: #dddddd; +} + +.thin th, .thin td { + padding: .3em; + border-color: black; +} + +.thin th a { + text-decoration: none; + color: black; +} + +.sortarrow { + display: none; +} Property changes on: monitor/trunk/src/main/webapp/stylesheets/style.css ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-17 19:08:46
|
Revision: 794 http://jetrix.svn.sourceforge.net/jetrix/?rev=794&view=rev Author: smanux Date: 2009-02-17 19:08:39 +0000 (Tue, 17 Feb 2009) Log Message: ----------- Updated the svn:keywords and svn:eol-style properties Property Changed: ---------------- jetrix/trunk/build.xml jetrix/trunk/doc/changelog.txt jetrix/trunk/doc/javadoc-stylesheet.css jetrix/trunk/doc/license.txt jetrix/trunk/doc/todo.txt jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ChannelAction.java jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/PrecompiledPagesFilter.java jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/SettingsAction.java jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/UserAction.java jetrix/trunk/src/admin/WEB-INF/web.xml jetrix/trunk/src/admin/channel.jsp jetrix/trunk/src/admin/field.jsp jetrix/trunk/src/admin/images/blocks/halfcross.png jetrix/trunk/src/admin/images/blocks/leftl.png jetrix/trunk/src/admin/images/blocks/leftz.png jetrix/trunk/src/admin/images/blocks/line.png jetrix/trunk/src/admin/images/blocks/rightl.png jetrix/trunk/src/admin/images/blocks/rightz.png jetrix/trunk/src/admin/images/blocks/square.png jetrix/trunk/src/admin/images/delete16.png jetrix/trunk/src/admin/images/specials/a.png jetrix/trunk/src/admin/images/specials/b.png jetrix/trunk/src/admin/images/specials/c.png jetrix/trunk/src/admin/images/specials/g.png jetrix/trunk/src/admin/images/specials/n.png jetrix/trunk/src/admin/images/specials/o.png jetrix/trunk/src/admin/images/specials/q.png jetrix/trunk/src/admin/images/specials/r.png jetrix/trunk/src/admin/images/specials/s.png jetrix/trunk/src/admin/images/tiny/0.png jetrix/trunk/src/admin/images/tiny/1.png jetrix/trunk/src/admin/images/tiny/2.png jetrix/trunk/src/admin/images/tiny/3.png jetrix/trunk/src/admin/images/tiny/4.png jetrix/trunk/src/admin/images/tiny/5.png jetrix/trunk/src/admin/images/tiny/a.png jetrix/trunk/src/admin/images/tiny/b.png jetrix/trunk/src/admin/images/tiny/background.png jetrix/trunk/src/admin/images/tiny/c.png jetrix/trunk/src/admin/images/tiny/g.png jetrix/trunk/src/admin/images/tiny/n.png jetrix/trunk/src/admin/images/tiny/o.png jetrix/trunk/src/admin/images/tiny/q.png jetrix/trunk/src/admin/images/tiny/r.png jetrix/trunk/src/admin/images/tiny/s.png jetrix/trunk/src/admin/index.html jetrix/trunk/src/admin/javascript/server.js jetrix/trunk/src/admin/javascript/settings.js jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.active.png jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.css jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.hover.png jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.png jetrix/trunk/src/admin/javascript/tabpane/js/tabpane.js jetrix/trunk/src/admin/javascript/xloadtree/images/blank.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/I.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/L.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Lminus.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Lplus.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/T.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Tminus.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Tplus.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/file.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/folder.png jetrix/trunk/src/admin/javascript/xloadtree/images/xp/openfolder.png jetrix/trunk/src/admin/javascript/xloadtree/xloadtree.js jetrix/trunk/src/admin/javascript/xloadtree/xmlextras.js jetrix/trunk/src/admin/javascript/xloadtree/xtree.css jetrix/trunk/src/admin/javascript/xloadtree/xtree.js jetrix/trunk/src/admin/navigation.jsp jetrix/trunk/src/admin/navigationChannels.jsp jetrix/trunk/src/admin/navigationUsers.jsp jetrix/trunk/src/admin/server.jsp jetrix/trunk/src/admin/settings.jsp jetrix/trunk/src/admin/style.css jetrix/trunk/src/admin/top.html jetrix/trunk/src/admin/user.jsp jetrix/trunk/src/admin/winlist.jsp jetrix/trunk/src/etc/conf/channels.xml jetrix/trunk/src/etc/conf/server.xml jetrix/trunk/src/etc/icons/jetrix-16x16.png jetrix/trunk/src/etc/icons/jetrix-32x32.png jetrix/trunk/src/etc/icons/jetrix-64x64.png jetrix/trunk/src/java/net/jetrix/AccessLevel.java jetrix/trunk/src/java/net/jetrix/Banlist.java jetrix/trunk/src/java/net/jetrix/Channel.java jetrix/trunk/src/java/net/jetrix/ChannelManager.java jetrix/trunk/src/java/net/jetrix/Client.java jetrix/trunk/src/java/net/jetrix/ClientRepository.java jetrix/trunk/src/java/net/jetrix/Destination.java jetrix/trunk/src/java/net/jetrix/Field.java jetrix/trunk/src/java/net/jetrix/GameState.java jetrix/trunk/src/java/net/jetrix/Language.java jetrix/trunk/src/java/net/jetrix/Launcher.java jetrix/trunk/src/java/net/jetrix/Listener.java jetrix/trunk/src/java/net/jetrix/LogManager.java jetrix/trunk/src/java/net/jetrix/Message.java jetrix/trunk/src/java/net/jetrix/Protocol.java jetrix/trunk/src/java/net/jetrix/ProtocolManager.java jetrix/trunk/src/java/net/jetrix/Server.java jetrix/trunk/src/java/net/jetrix/Service.java jetrix/trunk/src/java/net/jetrix/SystemSignal.java jetrix/trunk/src/java/net/jetrix/SystrayManager.java jetrix/trunk/src/java/net/jetrix/User.java jetrix/trunk/src/java/net/jetrix/agent/Agent.java jetrix/trunk/src/java/net/jetrix/agent/ChannelInfo.java jetrix/trunk/src/java/net/jetrix/agent/PlayerInfo.java jetrix/trunk/src/java/net/jetrix/agent/QueryAgent.java jetrix/trunk/src/java/net/jetrix/agent/QueryInfo.java jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java jetrix/trunk/src/java/net/jetrix/clients/ConsoleClient.java jetrix/trunk/src/java/net/jetrix/clients/IRCClient.java jetrix/trunk/src/java/net/jetrix/clients/QueryClient.java jetrix/trunk/src/java/net/jetrix/clients/TSpecClient.java jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java jetrix/trunk/src/java/net/jetrix/clients/package.html jetrix/trunk/src/java/net/jetrix/commands/AbstractCommand.java jetrix/trunk/src/java/net/jetrix/commands/AwayCommand.java jetrix/trunk/src/java/net/jetrix/commands/BroadcastCommand.java jetrix/trunk/src/java/net/jetrix/commands/Command.java jetrix/trunk/src/java/net/jetrix/commands/CommandManager.java jetrix/trunk/src/java/net/jetrix/commands/ConfigCommand.java jetrix/trunk/src/java/net/jetrix/commands/EmoteCommand.java jetrix/trunk/src/java/net/jetrix/commands/GotoCommand.java jetrix/trunk/src/java/net/jetrix/commands/HelpCommand.java jetrix/trunk/src/java/net/jetrix/commands/IgnoreCommand.java jetrix/trunk/src/java/net/jetrix/commands/IpCommand.java jetrix/trunk/src/java/net/jetrix/commands/JoinCommand.java jetrix/trunk/src/java/net/jetrix/commands/KickCommand.java jetrix/trunk/src/java/net/jetrix/commands/LanguageCommand.java jetrix/trunk/src/java/net/jetrix/commands/ListCommand.java jetrix/trunk/src/java/net/jetrix/commands/ModeCommand.java jetrix/trunk/src/java/net/jetrix/commands/MotdCommand.java jetrix/trunk/src/java/net/jetrix/commands/MoveCommand.java jetrix/trunk/src/java/net/jetrix/commands/OperatorCommand.java jetrix/trunk/src/java/net/jetrix/commands/ParameterCommand.java jetrix/trunk/src/java/net/jetrix/commands/PauseCommand.java jetrix/trunk/src/java/net/jetrix/commands/PetitionCommand.java jetrix/trunk/src/java/net/jetrix/commands/PingCommand.java jetrix/trunk/src/java/net/jetrix/commands/RandomCommand.java jetrix/trunk/src/java/net/jetrix/commands/ReplyCommand.java jetrix/trunk/src/java/net/jetrix/commands/SpecListCommand.java jetrix/trunk/src/java/net/jetrix/commands/StartCommand.java jetrix/trunk/src/java/net/jetrix/commands/StopCommand.java jetrix/trunk/src/java/net/jetrix/commands/SummonCommand.java jetrix/trunk/src/java/net/jetrix/commands/TeamMessageCommand.java jetrix/trunk/src/java/net/jetrix/commands/TeleportCommand.java jetrix/trunk/src/java/net/jetrix/commands/TellCommand.java jetrix/trunk/src/java/net/jetrix/commands/TimeCommand.java jetrix/trunk/src/java/net/jetrix/commands/VersionCommand.java jetrix/trunk/src/java/net/jetrix/commands/WhoCommand.java jetrix/trunk/src/java/net/jetrix/commands/package.html jetrix/trunk/src/java/net/jetrix/config/Block.java jetrix/trunk/src/java/net/jetrix/config/ChannelConfig.java jetrix/trunk/src/java/net/jetrix/config/ChannelsRuleSet.java jetrix/trunk/src/java/net/jetrix/config/Configuration.java jetrix/trunk/src/java/net/jetrix/config/FilterConfig.java jetrix/trunk/src/java/net/jetrix/config/Puzzle.java jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java jetrix/trunk/src/java/net/jetrix/config/Settings.java jetrix/trunk/src/java/net/jetrix/config/Special.java jetrix/trunk/src/java/net/jetrix/config/Statistics.java jetrix/trunk/src/java/net/jetrix/config/WinlistConfig.java jetrix/trunk/src/java/net/jetrix/config/package.html jetrix/trunk/src/java/net/jetrix/filter/AmplifierFilter.java jetrix/trunk/src/java/net/jetrix/filter/CommandFilter.java jetrix/trunk/src/java/net/jetrix/filter/DownstackPuzzleGenerator.java jetrix/trunk/src/java/net/jetrix/filter/FilenameComparator.java jetrix/trunk/src/java/net/jetrix/filter/FilterException.java jetrix/trunk/src/java/net/jetrix/filter/FilterManager.java jetrix/trunk/src/java/net/jetrix/filter/FloodFilter.java jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java jetrix/trunk/src/java/net/jetrix/filter/LogoFilter.java jetrix/trunk/src/java/net/jetrix/filter/MessageFilter.java jetrix/trunk/src/java/net/jetrix/filter/PingFilter.java jetrix/trunk/src/java/net/jetrix/filter/PuzzleFilter.java jetrix/trunk/src/java/net/jetrix/filter/PuzzleGenerator.java jetrix/trunk/src/java/net/jetrix/filter/RandomFilter.java jetrix/trunk/src/java/net/jetrix/filter/StartFilter.java jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java jetrix/trunk/src/java/net/jetrix/filter/SuddenDeathFilter.java jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java jetrix/trunk/src/java/net/jetrix/filter/TetrisFilter.java jetrix/trunk/src/java/net/jetrix/filter/package.html jetrix/trunk/src/java/net/jetrix/listeners/ClientListener.java jetrix/trunk/src/java/net/jetrix/listeners/HttpListener.java jetrix/trunk/src/java/net/jetrix/listeners/IRCListener.java jetrix/trunk/src/java/net/jetrix/listeners/TSpecListener.java jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/AccessInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/ClientInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/ClientValidationException.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/MotdInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/NameCheckInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/OnlineUsersInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/interceptor/ServerStatsInterceptor.java jetrix/trunk/src/java/net/jetrix/listeners/package.html jetrix/trunk/src/java/net/jetrix/messages/AddLineMessage.java jetrix/trunk/src/java/net/jetrix/messages/AddPlayerMessage.java jetrix/trunk/src/java/net/jetrix/messages/BlockBombMessage.java jetrix/trunk/src/java/net/jetrix/messages/BlockQuakeMessage.java jetrix/trunk/src/java/net/jetrix/messages/ChannelMessage.java jetrix/trunk/src/java/net/jetrix/messages/ClearLineMessage.java jetrix/trunk/src/java/net/jetrix/messages/ClearSpecialsMessage.java jetrix/trunk/src/java/net/jetrix/messages/ClientInfoMessage.java jetrix/trunk/src/java/net/jetrix/messages/CommandMessage.java jetrix/trunk/src/java/net/jetrix/messages/DisconnectedMessage.java jetrix/trunk/src/java/net/jetrix/messages/EndGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/FieldMessage.java jetrix/trunk/src/java/net/jetrix/messages/FourLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/GmsgMessage.java jetrix/trunk/src/java/net/jetrix/messages/GravityMessage.java jetrix/trunk/src/java/net/jetrix/messages/IngameMessage.java jetrix/trunk/src/java/net/jetrix/messages/JoinMessage.java jetrix/trunk/src/java/net/jetrix/messages/LeaveMessage.java jetrix/trunk/src/java/net/jetrix/messages/LevelMessage.java jetrix/trunk/src/java/net/jetrix/messages/NewGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/NoConnectingMessage.java jetrix/trunk/src/java/net/jetrix/messages/NoopMessage.java jetrix/trunk/src/java/net/jetrix/messages/NukeFieldMessage.java jetrix/trunk/src/java/net/jetrix/messages/OneLineAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/PauseMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerLostMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerNumMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerSwitchMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlayerWonMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlineActMessage.java jetrix/trunk/src/java/net/jetrix/messages/PlineMessage.java jetrix/trunk/src/java/net/jetrix/messages/RandomClearMessage.java jetrix/trunk/src/java/net/jetrix/messages/ResumeMessage.java jetrix/trunk/src/java/net/jetrix/messages/ShutdownMessage.java jetrix/trunk/src/java/net/jetrix/messages/SmsgMessage.java jetrix/trunk/src/java/net/jetrix/messages/SpecialMessage.java jetrix/trunk/src/java/net/jetrix/messages/SpectatorListMessage.java jetrix/trunk/src/java/net/jetrix/messages/StartGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/StopGameMessage.java jetrix/trunk/src/java/net/jetrix/messages/SwitchFieldsMessage.java jetrix/trunk/src/java/net/jetrix/messages/TeamMessage.java jetrix/trunk/src/java/net/jetrix/messages/TextMessage.java jetrix/trunk/src/java/net/jetrix/messages/TwoLinesAddedMessage.java jetrix/trunk/src/java/net/jetrix/messages/WinlistMessage.java jetrix/trunk/src/java/net/jetrix/messages/package.html jetrix/trunk/src/java/net/jetrix/package.html jetrix/trunk/src/java/net/jetrix/protocols/AbstractProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/ConsoleProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/IRCCommand.java jetrix/trunk/src/java/net/jetrix/protocols/IRCMessage.java jetrix/trunk/src/java/net/jetrix/protocols/IRCProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/IRCReply.java jetrix/trunk/src/java/net/jetrix/protocols/QueryProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TetrifastProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/TspecProtocol.java jetrix/trunk/src/java/net/jetrix/protocols/package.html jetrix/trunk/src/java/net/jetrix/services/AbstractService.java jetrix/trunk/src/java/net/jetrix/services/CronService.java jetrix/trunk/src/java/net/jetrix/services/GhostbusterService.java jetrix/trunk/src/java/net/jetrix/services/PublishingService.java jetrix/trunk/src/java/net/jetrix/services/ScheduledService.java jetrix/trunk/src/java/net/jetrix/services/VersionService.java jetrix/trunk/src/java/net/jetrix/tools/patcher/JetrixUpdate.java jetrix/trunk/src/java/net/jetrix/tools/patcher/UpdateList.java jetrix/trunk/src/java/net/jetrix/tools/patcher/package.html jetrix/trunk/src/java/net/jetrix/winlist/GamePlayer.java jetrix/trunk/src/java/net/jetrix/winlist/GameResult.java jetrix/trunk/src/java/net/jetrix/winlist/Score.java jetrix/trunk/src/java/net/jetrix/winlist/ScoreComparator.java jetrix/trunk/src/java/net/jetrix/winlist/SimpleWinlist.java jetrix/trunk/src/java/net/jetrix/winlist/TetrixWinlist.java jetrix/trunk/src/java/net/jetrix/winlist/Winlist.java jetrix/trunk/src/java/net/jetrix/winlist/WinlistManager.java jetrix/trunk/src/lang/jetrix.properties jetrix/trunk/src/lang/jetrix_de.properties jetrix/trunk/src/lang/jetrix_en.properties jetrix/trunk/src/lang/jetrix_es.properties jetrix/trunk/src/lang/jetrix_fr.properties jetrix/trunk/src/lang/jetrix_it.properties jetrix/trunk/src/lang/jetrix_nl.properties jetrix/trunk/src/lang/jetrix_pt.properties jetrix/trunk/src/site/images/arch1.png jetrix/trunk/src/site/images/command-guide1.png jetrix/trunk/src/site/images/command-guide2.png jetrix/trunk/src/site/images/done.png jetrix/trunk/src/site/images/jetrix-logo.png jetrix/trunk/src/site/images/opensource-110x95.png jetrix/trunk/src/site/images/opensource-75x65.png jetrix/trunk/src/site/images/partial.png jetrix/trunk/src/site/images/planned.png jetrix/trunk/src/site/style.css jetrix/trunk/src/test/net/jetrix/BanlistTest.java jetrix/trunk/src/test/net/jetrix/ChannelManagerTest.java jetrix/trunk/src/test/net/jetrix/ClientRepositoryTest.java jetrix/trunk/src/test/net/jetrix/FieldTest.java jetrix/trunk/src/test/net/jetrix/LanguageTest.java jetrix/trunk/src/test/net/jetrix/MessageTest.java jetrix/trunk/src/test/net/jetrix/ProtocolManagerTest.java jetrix/trunk/src/test/net/jetrix/agent/QueryAgentTest.java jetrix/trunk/src/test/net/jetrix/agent/TSpecAgentTest.java jetrix/trunk/src/test/net/jetrix/commands/CommandManagerTest.java jetrix/trunk/src/test/net/jetrix/config/ChannelConfigTest.java jetrix/trunk/src/test/net/jetrix/config/ConfigurationTest.java jetrix/trunk/src/test/net/jetrix/config/ServerConfigTest.java jetrix/trunk/src/test/net/jetrix/config/SettingsTest.java jetrix/trunk/src/test/net/jetrix/filter/DownstackPuzzleGeneratorTest.java jetrix/trunk/src/test/net/jetrix/messages/CommandMessageTest.java jetrix/trunk/src/test/net/jetrix/protocols/IRCMessageTest.java jetrix/trunk/src/test/net/jetrix/protocols/QueryProtocolTest.java jetrix/trunk/src/test/net/jetrix/protocols/TSpecProtocolTest.java jetrix/trunk/src/test/net/jetrix/protocols/TetrifastProtocolTest.java jetrix/trunk/src/test/net/jetrix/protocols/TetrinetProtocolTest.java jetrix/trunk/src/test/net/jetrix/winlist/GameResultTest.java jetrix/trunk/src/test/net/jetrix/winlist/ScoreComparatorTest.java jetrix/trunk/src/test/net/jetrix/winlist/ScoreTest.java jetrix/trunk/src/test/net/jetrix/winlist/SimpleWinlistTest.java jetrix/trunk/src/test/net/jetrix/winlist/TetrixWinlistTest.java jetrix/trunk/src/test/net/jetrix/winlist/WinlistManagerTest.java Property changes on: jetrix/trunk/build.xml ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/doc/changelog.txt ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/doc/javadoc-stylesheet.css ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/doc/license.txt ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/doc/todo.txt ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ChannelAction.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/PrecompiledPagesFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/ServerAction.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/SettingsAction.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/WEB-INF/classes/net/jetrix/servlets/UserAction.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/WEB-INF/web.xml ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/channel.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/field.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/images/blocks/halfcross.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/blocks/leftl.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/blocks/leftz.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/blocks/line.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/blocks/rightl.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/blocks/rightz.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/blocks/square.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/delete16.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/a.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/b.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/c.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/g.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/n.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/o.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/q.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/r.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/specials/s.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/0.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/1.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/2.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/3.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/4.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/5.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/a.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/b.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/background.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/c.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/g.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/n.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/o.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/q.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/r.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/images/tiny/s.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/index.html ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/server.js ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/settings.js ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.active.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.css ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.hover.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/tabpane/css/luna/tab.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/tabpane/js/tabpane.js ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/blank.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/I.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/L.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Lminus.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Lplus.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/T.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Tminus.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/Tplus.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/file.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/folder.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/images/xp/openfolder.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/xloadtree.js ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/xmlextras.js ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/xtree.css ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/javascript/xloadtree/xtree.js ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/navigation.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/navigationChannels.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/navigationUsers.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/server.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/settings.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/style.css ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/top.html ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/user.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/admin/winlist.jsp ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/etc/conf/channels.xml ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/etc/conf/server.xml ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/etc/icons/jetrix-16x16.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/etc/icons/jetrix-32x32.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/etc/icons/jetrix-64x64.png ___________________________________________________________________ Modified: svn:mime-type - application/octet-stream + image/png Property changes on: jetrix/trunk/src/java/net/jetrix/AccessLevel.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Banlist.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Channel.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/ChannelManager.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Client.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/ClientRepository.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Destination.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Field.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/GameState.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Language.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Launcher.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Listener.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/LogManager.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Message.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Protocol.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/ProtocolManager.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Server.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/Service.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/SystemSignal.java ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Property changes on: jetrix/trunk/src/java/net/jetrix/SystrayManager.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/User.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/agent/Agent.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/agent/ChannelInfo.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/agent/PlayerInfo.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/agent/QueryAgent.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/agent/QueryInfo.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/clients/ConsoleClient.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/clients/IRCClient.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/clients/QueryClient.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/clients/TSpecClient.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/clients/package.html ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/AbstractCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/AwayCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/BroadcastCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/Command.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/CommandManager.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/ConfigCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/EmoteCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/GotoCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/HelpCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/IgnoreCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/IpCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/JoinCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/KickCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/LanguageCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/ListCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/ModeCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/MotdCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/MoveCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/OperatorCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/ParameterCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/PauseCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/PetitionCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/PingCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/RandomCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/ReplyCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/SpecListCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/StartCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/StopCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/SummonCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/TeamMessageCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/TeleportCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/TellCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/TimeCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/VersionCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/WhoCommand.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/commands/package.html ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/Block.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/ChannelConfig.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/ChannelsRuleSet.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/Configuration.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/FilterConfig.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/Puzzle.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/Settings.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/Special.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/Statistics.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/WinlistConfig.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/config/package.html ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/AmplifierFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/CommandFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/DownstackPuzzleGenerator.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/FilenameComparator.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/FilterException.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/FilterManager.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/FloodFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/GenericFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/LogoFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/MessageFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/PingFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/PuzzleFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/PuzzleGenerator.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/RandomFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/StartFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/StatsFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/SuddenDeathFilter.java ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Date Author Id Revision HeadURL Property changes on: jetrix/trunk/src/java/net/jetrix/filter/SurvivalFilter.java ___________________________________________________... [truncated message content] |
From: <sm...@us...> - 2009-02-16 20:46:55
|
Revision: 793 http://jetrix.svn.sourceforge.net/jetrix/?rev=793&view=rev Author: smanux Date: 2009-02-16 20:46:51 +0000 (Mon, 16 Feb 2009) Log Message: ----------- Updated jdeb to fix an issue on uninstalling the debian package Modified Paths: -------------- jetrix/trunk/build.xml Added Paths: ----------- jetrix/trunk/lib/build/jdeb-0.8-SNAPSHOT.jar Removed Paths: ------------- jetrix/trunk/lib/build/jdeb-0.7-SNAPSHOT.jar Modified: jetrix/trunk/build.xml =================================================================== --- jetrix/trunk/build.xml 2009-02-16 15:17:02 UTC (rev 792) +++ jetrix/trunk/build.xml 2009-02-16 20:46:51 UTC (rev 793) @@ -230,7 +230,7 @@ <fileset dir="src/etc/deb/control"/> </copy> - <taskdef name="deb" classname="org.vafer.jdeb.ant.DebAntTask" classpath="lib/build/jdeb-0.7-SNAPSHOT.jar"/> + <taskdef name="deb" classname="org.vafer.jdeb.ant.DebAntTask" classpath="lib/build/jdeb-0.8-SNAPSHOT.jar"/> <deb destfile="${dist}/bin/jetrix-${version}.deb" control="${build}/control" compression="bzip2"> <fileset dir="src/etc/deb/data"/> Deleted: jetrix/trunk/lib/build/jdeb-0.7-SNAPSHOT.jar =================================================================== (Binary files differ) Added: jetrix/trunk/lib/build/jdeb-0.8-SNAPSHOT.jar =================================================================== (Binary files differ) Property changes on: jetrix/trunk/lib/build/jdeb-0.8-SNAPSHOT.jar ___________________________________________________________________ Added: svn:mime-type + application/octet-stream This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-16 15:17:10
|
Revision: 792 http://jetrix.svn.sourceforge.net/jetrix/?rev=792&view=rev Author: smanux Date: 2009-02-16 15:17:02 +0000 (Mon, 16 Feb 2009) Log Message: ----------- Simplification and speed up of the Linux packaging Modified Paths: -------------- jetrix/trunk/build.xml Added Paths: ----------- jetrix/trunk/src/etc/deb/data/usr/ jetrix/trunk/src/etc/deb/data/usr/share/ jetrix/trunk/src/etc/deb/data/usr/share/jetrix/ Property Changed: ---------------- jetrix/trunk/src/bin/jetrix jetrix/trunk/src/bin/update Modified: jetrix/trunk/build.xml =================================================================== --- jetrix/trunk/build.xml 2009-02-13 15:43:28 UTC (rev 791) +++ jetrix/trunk/build.xml 2009-02-16 15:17:02 UTC (rev 792) @@ -165,89 +165,63 @@ <target name="dist" depends="pack"> - <!-- Replace the tokens in the scripts --> - <mkdir dir="${build}/bin"/> - <copy todir="${build}/bin" filtering="on"> - <fileset dir="${src}/bin" includes="**/*"/> + <mkdir dir="${build}/dist"/> + + <copy todir="${build}/dist" filtering="on"> + <fileset dir="${src}/bin" includes="**/*" excludes="**/*.nsi"/> </copy> - <fixcrlf srcdir="${build}/bin" eol="lf" eof="remove"> - <include name="jetrix"/> - <include name="update"/> - </fixcrlf> + <copy todir="${build}/dist"> + <fileset dir="${src}/etc"> + <include name="LICENSE" /> + <include name="README" /> + <include name="conf/*" /> + <include name="data/**" /> + <include name="log/**" /> + </fileset> + <fileset dir="${build}"> + <include name="lib/*.pack" /> + </fileset> + <fileset dir="${dist}"> + <include name="lib/jetrix-${version}.jar.pack" /> + <include name="lib/jetrix-launcher-${version}.jar" /> + </fileset> + <fileset dir="${src}"> + <include name="lang/*.properties" /> + </fileset> + </copy> + <copy todir="${build}/dist/lib"> + <fileset dir="${dist}/webapp/"> + <include name="*.war.pack" /> + </fileset> + </copy> <!-- Create the distribution directory --> <mkdir dir="${dist}/bin"/> <!-- Create the Windows distribution --> <zip zipfile="${dist}/bin/jetrix-${version}.zip"> - <zipfileset prefix="jetrix-${version}/" dir="${src}/etc/"> - <include name="LICENSE" /> - <include name="README" /> - <include name="conf/*" /> - <include name="data/**" /> + <zipfileset prefix="jetrix-${version}" dir="${build}/dist" filemode="755"> + <include name="jetrix"/> + <include name="update"/> </zipfileset> - <zipfileset prefix="jetrix-${version}/" dir="${build}/bin/"> - <include name="jetrix.bat" /> - <include name="update.bat" /> + <zipfileset prefix="jetrix-${version}" dir="${build}/dist"> + <exclude name="jetrix"/> + <exclude name="update"/> </zipfileset> - <zipfileset prefix="jetrix-${version}/" dir="${build}/bin/" filemode="755"> - <include name="jetrix" /> - <include name="update" /> - </zipfileset> - <zipfileset prefix="jetrix-${version}/lib" dir="${build}/lib"> - <include name="*.pack" /> - </zipfileset> - <zipfileset prefix="jetrix-${version}/lib/" dir="${dist}/lib/"> - <include name="jetrix-${version}.jar.pack" /> - <include name="jetrix-launcher-${version}.jar" /> - </zipfileset> - <zipfileset prefix="jetrix-${version}/lib/" dir="${dist}/webapp/"> - <include name="*.war.pack" /> - </zipfileset> - <zipfileset prefix="jetrix-${version}/lang/" dir="${src}/lang/"> - <include name="*.properties" /> - </zipfileset> - <zipfileset prefix="jetrix-${version}/log/" dir="${src}/etc/log/"/> </zip> <!-- Create the Unix distribution --> - <tar destfile="${dist}/bin/jetrix-${version}.tar"> - <tarfileset prefix="jetrix-${version}/" dir="${src}/etc/"> - <include name="LICENSE" /> - <include name="README" /> - <include name="conf/*" /> - <include name="data/**" /> + <tar destfile="${dist}/bin/jetrix-${version}.tar.bz2" compression="bzip2"> + <tarfileset prefix="jetrix-${version}" dir="${build}/dist" filemode="755"> + <include name="jetrix"/> + <include name="update"/> </tarfileset> - <tarfileset prefix="jetrix-${version}/" dir="${build}/bin/"> - <include name="jetrix.bat" /> - <include name="update.bat" /> + <tarfileset prefix="jetrix-${version}" dir="${build}/dist"> + <exclude name="jetrix"/> + <exclude name="update"/> </tarfileset> - <tarfileset prefix="jetrix-${version}/" dir="${build}/bin/" mode="755"> - <include name="jetrix" /> - <include name="update" /> - </tarfileset> - <tarfileset prefix="jetrix-${version}" dir="${build}" includes="lib"/> - <tarfileset prefix="jetrix-${version}/lib" dir="${build}/lib"> - <include name="*.pack" /> - </tarfileset> - <tarfileset prefix="jetrix-${version}/lib/" dir="${dist}/lib/"> - <include name="jetrix-${version}.jar.pack" /> - <include name="jetrix-launcher-${version}.jar" /> - </tarfileset> - <tarfileset prefix="jetrix-${version}/lib/" dir="${dist}/webapp/"> - <include name="*.war.pack" /> - </tarfileset> - <tarfileset prefix="jetrix-${version}" dir="${src}" includes="lang"/> - <tarfileset prefix="jetrix-${version}/lang/" dir="${src}/lang/"> - <include name="*.properties" /> - </tarfileset> - <tarfileset prefix="jetrix-${version}" dir="${src}/etc" includes="log"/> - <tarfileset prefix="jetrix-${version}/log/" dir="${src}/etc/log/"/> </tar> - <bzip2 zipfile="${dist}/bin/jetrix-${version}.tar.bz2" src="${dist}/bin/jetrix-${version}.tar"/> - <delete file="${dist}/bin/jetrix-${version}.tar"/> - </target> <target name="dist.linux" depends="dist" description="Build the Linux installer"> @@ -255,16 +229,19 @@ <copy todir="${build}/control" filtering="true" > <fileset dir="src/etc/deb/control"/> </copy> - + <taskdef name="deb" classname="org.vafer.jdeb.ant.DebAntTask" classpath="lib/build/jdeb-0.7-SNAPSHOT.jar"/> <deb destfile="${dist}/bin/jetrix-${version}.deb" control="${build}/control" compression="bzip2"> - <data src="${dist}/bin/jetrix-${version}.tar.bz2"> - <mapper type="prefix" strip="1" prefix="/usr/share/jetrix"/> - <exclude name="**/*.bat"/> - <exclude name="**/update"/> - </data> <fileset dir="src/etc/deb/data"/> + <tarfileset prefix="/usr/share/jetrix" dir="${build}/dist" username="root" group="root" filemode="755"> + <include name="jetrix"/> + </tarfileset> + <tarfileset prefix="/usr/share/jetrix" dir="${build}/dist" username="root" group="root"> + <exclude name="jetrix"/> + <exclude name="update"/> + <exclude name="*.bat"/> + </tarfileset> </deb> </target> Property changes on: jetrix/trunk/src/bin/jetrix ___________________________________________________________________ Modified: svn:eol-style - native + LF Property changes on: jetrix/trunk/src/bin/update ___________________________________________________________________ Modified: svn:eol-style - native + LF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-13 15:43:36
|
Revision: 791 http://jetrix.svn.sourceforge.net/jetrix/?rev=791&view=rev Author: smanux Date: 2009-02-13 15:43:28 +0000 (Fri, 13 Feb 2009) Log Message: ----------- Set the EOL to LF for the Unix files Modified Paths: -------------- jetrix/trunk/src/etc/deb/control/prerm jetrix/trunk/src/etc/deb/data/etc/default/jetrix Property Changed: ---------------- jetrix/trunk/src/etc/deb/control/prerm jetrix/trunk/src/etc/deb/data/etc/default/jetrix jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix Modified: jetrix/trunk/src/etc/deb/control/prerm =================================================================== --- jetrix/trunk/src/etc/deb/control/prerm 2009-02-13 14:38:29 UTC (rev 790) +++ jetrix/trunk/src/etc/deb/control/prerm 2009-02-13 15:43:28 UTC (rev 791) @@ -1,17 +1,17 @@ -#!/bin/sh -# -# Pre removal script for Jetrix -# - -set -e - -# stop the server -if [ -x "/etc/init.d/jetrix" ]; then - if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then - invoke-rc.d jetrix stop || exit $? - else - /etc/init.d/jetrix stop || exit $? - fi -fi - -exit 0 +#!/bin/sh +# +# Pre removal script for Jetrix +# + +set -e + +# stop the server +if [ -x "/etc/init.d/jetrix" ]; then + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d jetrix stop || exit $? + else + /etc/init.d/jetrix stop || exit $? + fi +fi + +exit 0 Property changes on: jetrix/trunk/src/etc/deb/control/prerm ___________________________________________________________________ Added: svn:eol-style + LF Modified: jetrix/trunk/src/etc/deb/data/etc/default/jetrix =================================================================== --- jetrix/trunk/src/etc/deb/data/etc/default/jetrix 2009-02-13 14:38:29 UTC (rev 790) +++ jetrix/trunk/src/etc/deb/data/etc/default/jetrix 2009-02-13 15:43:28 UTC (rev 791) @@ -1,5 +1,5 @@ -# Defaults for jetrix initscript - -# Master system-wide jetrix switch. The initscript -# will not run if it is not set to yes. -RUN="yes" +# Defaults for jetrix initscript + +# Master system-wide jetrix switch. The initscript +# will not run if it is not set to yes. +RUN="yes" Property changes on: jetrix/trunk/src/etc/deb/data/etc/default/jetrix ___________________________________________________________________ Added: svn:eol-style + LF Property changes on: jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix ___________________________________________________________________ Modified: svn:eol-style - native + LF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-13 14:38:34
|
Revision: 790 http://jetrix.svn.sourceforge.net/jetrix/?rev=790&view=rev Author: smanux Date: 2009-02-13 14:38:29 +0000 (Fri, 13 Feb 2009) Log Message: ----------- Daemonization for Debian Modified Paths: -------------- jetrix/trunk/build.xml jetrix/trunk/src/etc/deb/control/conffiles jetrix/trunk/src/etc/deb/control/postinst jetrix/trunk/src/etc/deb/control/postrm jetrix/trunk/src/etc/deb/control/preinst Added Paths: ----------- jetrix/trunk/src/etc/deb/ jetrix/trunk/src/etc/deb/control/ jetrix/trunk/src/etc/deb/control/prerm jetrix/trunk/src/etc/deb/data/ jetrix/trunk/src/etc/deb/data/etc/ jetrix/trunk/src/etc/deb/data/etc/default/ jetrix/trunk/src/etc/deb/data/etc/default/jetrix jetrix/trunk/src/etc/deb/data/etc/init.d/ jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix Removed Paths: ------------- jetrix/trunk/src/etc/control/ Modified: jetrix/trunk/build.xml =================================================================== --- jetrix/trunk/build.xml 2009-02-13 14:30:13 UTC (rev 789) +++ jetrix/trunk/build.xml 2009-02-13 14:38:29 UTC (rev 790) @@ -253,7 +253,7 @@ <target name="dist.linux" depends="dist" description="Build the Linux installer"> <mkdir dir="${build}/control"/> <copy todir="${build}/control" filtering="true" > - <fileset dir="${src}/etc/control"/> + <fileset dir="src/etc/deb/control"/> </copy> <taskdef name="deb" classname="org.vafer.jdeb.ant.DebAntTask" classpath="lib/build/jdeb-0.7-SNAPSHOT.jar"/> @@ -262,7 +262,9 @@ <data src="${dist}/bin/jetrix-${version}.tar.bz2"> <mapper type="prefix" strip="1" prefix="/usr/share/jetrix"/> <exclude name="**/*.bat"/> + <exclude name="**/update"/> </data> + <fileset dir="src/etc/deb/data"/> </deb> </target> Modified: jetrix/trunk/src/etc/deb/control/conffiles =================================================================== --- jetrix/trunk/src/etc/control/conffiles 2009-02-12 16:11:42 UTC (rev 785) +++ jetrix/trunk/src/etc/deb/control/conffiles 2009-02-13 14:38:29 UTC (rev 790) @@ -1,2 +1,4 @@ +/etc/default/jetrix +/etc/init.d/jetrix /etc/jetrix/server.xml /etc/jetrix/channels.xml Modified: jetrix/trunk/src/etc/deb/control/postinst =================================================================== --- jetrix/trunk/src/etc/control/postinst 2009-02-12 16:11:42 UTC (rev 785) +++ jetrix/trunk/src/etc/deb/control/postinst 2009-02-13 14:38:29 UTC (rev 790) @@ -1,13 +1,56 @@ #!/bin/sh +# +# Post installation script for Jetrix +# +set -e + +# summary of how this script can be called: +# * <postinst> `configure' <most-recently-configured-version> +# * <old-postinst> `abort-upgrade' <new version> +# * <conflictor's-postinst> `abort-remove' `in-favour' <package> +# <new-version> +# * <postinst> `abort-remove' +# * <deconfigured's-postinst> `abort-deconfigure' `in-favour' +# <failed-install-package> <version> `removing' +# <conflicting-package> <version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + JETRIX_HOME="/usr/share/jetrix"; -ln -s $JETRIX_HOME/jetrix /usr/games/jetrix +# create the jetrix user running the daemon +adduser --quiet --system --no-create-home --disabled-password jetrix +# add a symbolic link in /usr/games +ln -s --force $JETRIX_HOME/jetrix /usr/games/jetrix + # move the conf directory to /etc/jetrix and create a symbolic link mv $JETRIX_HOME/conf /etc/jetrix ln -s /etc/jetrix $JETRIX_HOME/conf +chown -R jetrix:nogroup /etc/jetrix # move the log directory to /var/log/jetrix and create a symbolic link mv $JETRIX_HOME/log /var/log/jetrix ln -s /var/log/jetrix $JETRIX_HOME/log +chown -R jetrix:nogroup /var/log/jetrix + +# unpack the jar files in the lib directory +for FILENAME in $(find $JETRIX_HOME/lib -name "*.pack" -print) +do + echo "Unpacking $FILENAME ..." + FILEBASE=$(dirname $FILENAME)/$(basename $FILENAME .pack) + unpack200 -r $FILENAME $FILEBASE +done + +# start Jetrix and register it to start at the end of the boot sequence +if [ -x "/etc/init.d/jetrix" ]; then + update-rc.d jetrix defaults 95 >/dev/null + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d jetrix start || exit $? + else + /etc/init.d/jetrix start || exit $? + fi +fi + +exit 0 Modified: jetrix/trunk/src/etc/deb/control/postrm =================================================================== --- jetrix/trunk/src/etc/control/postrm 2009-02-12 16:11:42 UTC (rev 785) +++ jetrix/trunk/src/etc/deb/control/postrm 2009-02-13 14:38:29 UTC (rev 790) @@ -1,3 +1,54 @@ #!/bin/sh +# +# Post removal script for Jetrix +# -rm -f /usr/games/jetrix +set -e + +# summary of how this script can be called: +# * <postrm> `remove' +# * <postrm> `purge' +# * <old-postrm> `upgrade' <new-version> +# * <new-postrm> `failed-upgrade' <old-version> +# * <new-postrm> `abort-install' +# * <new-postrm> `abort-install' <old-version> +# * <new-postrm> `abort-upgrade' <old-version> +# * <disappearer's-postrm> `disappear' <overwriter> +# <overwriter-version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + +case "$1" in + purge) + # remove the log files + rm -Rf /var/log/jetrix + + # remove the symbolic link in /usr/games + rm -f /usr/games/jetrix + + # remove the unpacked jars in the lib directory + rm /usr/share/jetrix/lib/*.jar + + # unregister Jetrix from the boot sequence + update-rc.d jetrix remove >/dev/null || exit $? + + # remove the jetrix user + if [ -x "$(command -v deluser)" ] ; then + if getent passwd|grep -q ^jetrix: ; then + deluser --quiet --system jetrix > /dev/null || true + fi + else + echo >&2 "not removing 'jetrix' system account because deluser command was not found." + fi + ;; + + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +exit 0 Modified: jetrix/trunk/src/etc/deb/control/preinst =================================================================== --- jetrix/trunk/src/etc/control/preinst 2009-02-12 16:11:42 UTC (rev 785) +++ jetrix/trunk/src/etc/deb/control/preinst 2009-02-13 14:38:29 UTC (rev 790) @@ -1,5 +1,20 @@ #!/bin/sh +# +# Pre installation script for Jetrix +# +set -e + +# summary of how this script can be called: +# * <new-preinst> `install' +# * <new-preinst> `install' <old-version> +# * <new-preinst> `upgrade' <old-version> +# * <old-preinst> `abort-upgrade' <new-version> +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + # Create the installation directory mkdir -p /usr/share/jetrix chmod a+w /usr/share/jetrix + +exit 0 Added: jetrix/trunk/src/etc/deb/control/prerm =================================================================== --- jetrix/trunk/src/etc/deb/control/prerm (rev 0) +++ jetrix/trunk/src/etc/deb/control/prerm 2009-02-13 14:38:29 UTC (rev 790) @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Pre removal script for Jetrix +# + +set -e + +# stop the server +if [ -x "/etc/init.d/jetrix" ]; then + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d jetrix stop || exit $? + else + /etc/init.d/jetrix stop || exit $? + fi +fi + +exit 0 Added: jetrix/trunk/src/etc/deb/data/etc/default/jetrix =================================================================== --- jetrix/trunk/src/etc/deb/data/etc/default/jetrix (rev 0) +++ jetrix/trunk/src/etc/deb/data/etc/default/jetrix 2009-02-13 14:38:29 UTC (rev 790) @@ -0,0 +1,5 @@ +# Defaults for jetrix initscript + +# Master system-wide jetrix switch. The initscript +# will not run if it is not set to yes. +RUN="yes" Added: jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix =================================================================== --- jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix (rev 0) +++ jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix 2009-02-13 14:38:29 UTC (rev 790) @@ -0,0 +1,85 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: tetrinet-server jetrix +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Init script for Jetrix +### END INIT INFO + + +PATH=/sbin:/bin:/usr/sbin:/usr/bin +NAME=jetrix +DESC="Jetrix TetriNET Server" +DAEMON=/usr/share/jetrix/jetrix +USER=jetrix +GROUP=nogroup + +test -x $DAEMON || exit 0 + +CONF=/etc/jetrix/server.xml +DAEMON_OPTS="--conf $CONF" +RUN="no" + +# Include jetrix defaults if available +if [ -f /etc/default/$NAME ] ; then + . /etc/default/$NAME +fi + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +case "$1" in + start) + if [ "$RUN" != "yes" ] ; then + log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME" + exit 0 + fi + + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + + start-stop-daemon --start --quiet --user $USER --chuid $USER:$GROUP --exec $DAEMON -- $DAEMON_OPTS + + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $USER + + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + + restart) + [ "$VERBOSE" != no ] && log_daemon_msg "Restarting $DESC" "$NAME" + + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $USER + + case "$?" in + 0|1) + start-stop-daemon --start --quiet --user $USER --chuid $USER:$GROUP --exec $DAEMON -- start $DAEMON_OPTS + + case "$?" in + 0) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + *) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + *) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + esac + ;; + + *) + echo "Usage: /etc/init.d/$NAME {start|stop|restart}" >&2 + exit 3 + ;; +esac + +exit 0 Property changes on: jetrix/trunk/src/etc/deb/data/etc/init.d/jetrix ___________________________________________________________________ Added: svn:executable + * Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-13 14:30:21
|
Revision: 789 http://jetrix.svn.sourceforge.net/jetrix/?rev=789&view=rev Author: smanux Date: 2009-02-13 14:30:13 +0000 (Fri, 13 Feb 2009) Log Message: ----------- Intercept the INT and TERM signals to shutdown gracefully the server Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/Server.java Added Paths: ----------- jetrix/trunk/src/java/net/jetrix/SystemSignal.java Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-13 12:53:56 UTC (rev 788) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-13 14:30:13 UTC (rev 789) @@ -52,7 +52,7 @@ private Server() { // add the stop hook - Runtime.getRuntime().addShutdownHook(new Thread("StopHook") + Thread hook = new Thread("StopHook") { public void run() { @@ -62,7 +62,18 @@ instance.stop(); } } - }); + }; + Runtime.getRuntime().addShutdownHook(hook); + + try + { + SystemSignal.handle("INT", hook); + SystemSignal.handle("TERM", hook); + } + catch (Throwable e) + { + log.warning("Unable to hook the system signals: " + e.getMessage()); + } } /** Added: jetrix/trunk/src/java/net/jetrix/SystemSignal.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/SystemSignal.java (rev 0) +++ jetrix/trunk/src/java/net/jetrix/SystemSignal.java 2009-02-13 14:30:13 UTC (rev 789) @@ -0,0 +1,49 @@ +/** + * Jetrix TetriNET Server + * Copyright (C) 2009 Emmanuel Bourg + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +package net.jetrix; + +import sun.misc.Signal; +import sun.misc.SignalHandler; + +/** + * Wrapper around the sun.misc.Signal class to prevent linkage errors. + * + * @author Emmanuel Bourg + * @version $Revision$, $Date$ + */ +class SystemSignal +{ + /** + * Intercepts a system signal and executes the specified hook. + * + * @param signal the signal to be intercepted (INT, KILL, HUP...) + * @param hook the code to be executed + */ + public static void handle(String signal, final Runnable hook) + { + Signal.handle(new Signal(signal), new SignalHandler() + { + public void handle(Signal signal) + { + hook.run(); + } + }); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-13 13:22:36
|
Revision: 787 http://jetrix.svn.sourceforge.net/jetrix/?rev=787&view=rev Author: smanux Date: 2009-02-13 12:22:35 +0000 (Fri, 13 Feb 2009) Log Message: ----------- Proper disconnection from the console to prevent hanging at the end of the shutdown sequence on Windows Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/clients/ConsoleClient.java Modified: jetrix/trunk/src/java/net/jetrix/clients/ConsoleClient.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/clients/ConsoleClient.java 2009-02-13 11:11:50 UTC (rev 786) +++ jetrix/trunk/src/java/net/jetrix/clients/ConsoleClient.java 2009-02-13 12:22:35 UTC (rev 787) @@ -87,7 +87,7 @@ if (closed) { - log.info("Input stream closed, shutting down the console..."); + log.info("Standard input closed, shutting down the console..."); } } @@ -169,6 +169,14 @@ public void disconnect() { + try + { + System.in.close(); + } + catch (IOException e) + { + log.warning("Unable to close the standard input : " + e.getMessage()); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-13 12:54:05
|
Revision: 788 http://jetrix.svn.sourceforge.net/jetrix/?rev=788&view=rev Author: smanux Date: 2009-02-13 12:53:56 +0000 (Fri, 13 Feb 2009) Log Message: ----------- Removed the "message not processed" message when the server is stopped Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/Server.java Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-13 12:22:35 UTC (rev 787) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-13 12:53:56 UTC (rev 788) @@ -56,9 +56,9 @@ { public void run() { - log.info("Shutdown command received from the system"); - if (config != null) + if (config != null && config.isRunning()) { + log.info("Shutdown command received from the system"); instance.stop(); } } @@ -188,7 +188,7 @@ ChannelManager.getInstance().closeAll(); // stop the server thread - queue.add(new ShutdownMessage()); + send(new ShutdownMessage()); } /** @@ -255,7 +255,7 @@ { CommandManager.getInstance().execute((CommandMessage) message); } - else + else if (!(message instanceof ShutdownMessage)) { log.info("[server] Message not processed " + message); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-13 11:11:54
|
Revision: 786 http://jetrix.svn.sourceforge.net/jetrix/?rev=786&view=rev Author: smanux Date: 2009-02-13 11:11:50 +0000 (Fri, 13 Feb 2009) Log Message: ----------- Log message when Jetrix is stopped by the shutdown hook Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/Server.java jetrix/trunk/src/java/net/jetrix/listeners/ShutdownListener.java Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-12 16:11:42 UTC (rev 785) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-13 11:11:50 UTC (rev 786) @@ -56,6 +56,7 @@ { public void run() { + log.info("Shutdown command received from the system"); if (config != null) { instance.stop(); Modified: jetrix/trunk/src/java/net/jetrix/listeners/ShutdownListener.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/listeners/ShutdownListener.java 2009-02-12 16:11:42 UTC (rev 785) +++ jetrix/trunk/src/java/net/jetrix/listeners/ShutdownListener.java 2009-02-13 11:11:50 UTC (rev 786) @@ -78,7 +78,7 @@ DatagramPacket packet = new DatagramPacket(new byte[length], length); socket.receive(packet); - if (packet != null && new String(packet.getData(), "UTF8").equals(SHUTDOWN_COMMAND)) + if (new String(packet.getData(), "UTF8").equals(SHUTDOWN_COMMAND)) { log.info("Shutdown command received"); Server.getInstance().stop(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 16:11:45
|
Revision: 785 http://jetrix.svn.sourceforge.net/jetrix/?rev=785&view=rev Author: smanux Date: 2009-02-12 16:11:42 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Added a --conf startup parameter to specify the path of the server configuration file (conf/server.xml by default) The path of the channels configuration file (channels.xml) is now defined in the server configuration file Modified Paths: -------------- jetrix/trunk/build.xml jetrix/trunk/src/bin/jetrix jetrix/trunk/src/etc/conf/server.xml jetrix/trunk/src/etc/tetrinet-server.dtd jetrix/trunk/src/java/net/jetrix/Launcher.java jetrix/trunk/src/java/net/jetrix/Server.java jetrix/trunk/src/java/net/jetrix/config/ChannelsRuleSet.java jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java jetrix/trunk/src/test/net/jetrix/config/ServerConfigTest.java Modified: jetrix/trunk/build.xml =================================================================== --- jetrix/trunk/build.xml 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/build.xml 2009-02-12 16:11:42 UTC (rev 785) @@ -339,6 +339,8 @@ <target name="run" depends="deploy"> <java dir="${deploy}/jetrix-${version}" jar="${deploy}/jetrix-${version}/lib/jetrix-launcher-${version}.jar" fork="true"> <sysproperty key="jetrix.debug" value="true"/> + <arg value="--conf"/> + <arg value="conf/server.xml"/> </java> </target> Modified: jetrix/trunk/src/bin/jetrix =================================================================== --- jetrix/trunk/src/bin/jetrix 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/bin/jetrix 2009-02-12 16:11:42 UTC (rev 785) @@ -92,7 +92,9 @@ else - echo "Usage: jetrix.sh ( commands ... )" + echo "Jetrix TetriNET Server" + echo "" + echo "Usage: jetrix ( commands ... )" echo "commands:" echo " run Start Jetrix in the current window" echo " start Start Jetrix in a separate window" Modified: jetrix/trunk/src/etc/conf/server.xml =================================================================== --- jetrix/trunk/src/etc/conf/server.xml 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/etc/conf/server.xml 2009-02-12 16:11:42 UTC (rev 785) @@ -33,6 +33,9 @@ <!-- Error Log, where errors are logged to --> <error-log path="log/error%g.log" /> + <!-- Path to the channels descriptor file (relative to the current configuration file) --> + <channels path="channels.xml"/> + <!-- Client listeners --> <listeners> <listener class="net.jetrix.listeners.TetrinetListener"/> Modified: jetrix/trunk/src/etc/tetrinet-server.dtd =================================================================== --- jetrix/trunk/src/etc/tetrinet-server.dtd 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/etc/tetrinet-server.dtd 2009-02-12 16:11:42 UTC (rev 785) @@ -1,6 +1,6 @@ <!-- Jetrix TetriNET Server -Copyright (C) 2001-2005 Emmanuel Bourg +Copyright (C) 2001-2009 Emmanuel Bourg This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -23,7 +23,7 @@ <!ELEMENT tetrinet-server (name?, language?, timeout?, max-channels?, max-players?, max-connections?, op-password, admin-password, access-log, - error-log, listeners, services?, commands, ban?, datasource?)> + error-log, channels?, listeners, services?, commands, ban?, datasource?)> <!ATTLIST tetrinet-server host CDATA #IMPLIED> <!ELEMENT name (#PCDATA)> @@ -41,6 +41,9 @@ <!ELEMENT error-log EMPTY> <!ATTLIST error-log path CDATA #REQUIRED> +<!ELEMENT channels EMPTY> +<!ATTLIST channels path CDATA #REQUIRED> + <!ELEMENT commands (command*)> <!ELEMENT command EMPTY> <!ATTLIST command class CDATA #REQUIRED> Modified: jetrix/trunk/src/java/net/jetrix/Launcher.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Launcher.java 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/java/net/jetrix/Launcher.java 2009-02-12 16:11:42 UTC (rev 785) @@ -81,7 +81,7 @@ /** * Unpack the pack200 files in the specified directory * - * @param directory + * @param directory the directory containing the files to be unpacked */ private static void unpack(File directory) throws IOException { @@ -111,7 +111,7 @@ * Build a classloader including the jar and zip files in the specified * directories. The directories are also included in the classpath. * - * @param directories + * @param directories the directories containing the jars to be mounted in the classpath */ private static ClassLoader createClassLoader(File... directories) throws Exception { @@ -122,12 +122,12 @@ // add the jar and zip files in the directory to the classpath File[] files = directory.listFiles(); - for (int i = 0; i < files.length; i++) + for (File file : files) { - String filename = files[i].getAbsolutePath(); + String filename = file.getAbsolutePath(); if (filename.endsWith(".jar") || filename.endsWith(".zip")) { - urls.add(files[i].toURI().toURL()); + urls.add(file.toURI().toURL()); } } Modified: jetrix/trunk/src/java/net/jetrix/Server.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/java/net/jetrix/Server.java 2009-02-12 16:11:42 UTC (rev 785) @@ -1,6 +1,6 @@ /** * Jetrix TetriNET Server - * Copyright (C) 2001-2004 Emmanuel Bourg + * Copyright (C) 2001-2009 Emmanuel Bourg * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -19,6 +19,8 @@ package net.jetrix; +import java.io.*; +import java.util.*; import java.util.concurrent.*; import java.util.logging.*; @@ -30,7 +32,7 @@ import net.jetrix.listeners.ShutdownListener; /** - * Main class, starts server components. + * Main class, starts the server components and handle the server level messages. * * @author Emmanuel Bourg * @version $Revision$, $Date$ @@ -39,19 +41,18 @@ { private static Server instance; + private Logger log = Logger.getLogger("net.jetrix"); + + private File configFile; private ServerConfig config; - private BlockingQueue<Message> queue; + private BlockingQueue<Message> queue = new LinkedBlockingQueue<Message>(); private ChannelManager channelManager; - private Logger log = Logger.getLogger("net.jetrix"); private Client console; private Server() { - // spawn the server message queue - queue = new LinkedBlockingQueue<Message>(); - // add the stop hook - Runtime.getRuntime().addShutdownHook(new Thread() + Runtime.getRuntime().addShutdownHook(new Thread("StopHook") { public void run() { @@ -61,8 +62,6 @@ } } }); - - config = new ServerConfig(); } /** @@ -84,7 +83,8 @@ private void init() { // read the server configuration - config.load(); + config = new ServerConfig(); + config.load(configFile); config.setRunning(true); // prepare the loggers @@ -286,14 +286,37 @@ } /** + * Set the server configuration file. + */ + public void setConfigFile(File configFile) + { + this.configFile = configFile; + } + + /** * Server entry point. * * @param args start parameters */ public static void main(String[] args) { - System.out.println("Jetrix TetriNET Server " + ServerConfig.VERSION + ", Copyright (C) 2001-2008 Emmanuel Bourg\n"); + System.out.println("Jetrix TetriNET Server " + ServerConfig.VERSION + ", Copyright (C) 2001-2009 Emmanuel Bourg\n"); + Server server = Server.getInstance(); + + List<String> params = Arrays.asList(args); + + // read the path of the server configuration file + int p = params.indexOf("--conf"); + if (p != -1 && p + 1 < params.size()) + { + server.setConfigFile(new File(params.get(p + 1))); + } + else + { + server.setConfigFile(new File("conf/server.xml")); + } + server.start(); } Modified: jetrix/trunk/src/java/net/jetrix/config/ChannelsRuleSet.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ChannelsRuleSet.java 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/java/net/jetrix/config/ChannelsRuleSet.java 2009-02-12 16:11:42 UTC (rev 785) @@ -29,7 +29,7 @@ * @author Emmanuel Bourg * @version $Revision$, $Date$ */ -public class ChannelsRuleSet extends RuleSetBase +class ChannelsRuleSet extends RuleSetBase { public void addRuleInstances(Digester digester) Modified: jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/java/net/jetrix/config/ServerConfig.java 2009-02-12 16:11:42 UTC (rev 785) @@ -43,8 +43,15 @@ */ public class ServerConfig { + private static Logger log = Logger.getLogger("net.jetrix"); + public static final String ENCODING = "ISO-8859-1"; + public static final String VERSION = "@version@"; + + public static final int STATUS_OPENED = 0; + public static final int STATUS_LOCKED = 1; + private String name; private InetAddress host; private int timeout; @@ -55,17 +62,18 @@ private String adminPassword; private String accesslogPath; private String errorlogPath; + private String channelsFile = "channels.xml"; private String motd; private Locale locale; // private List bans; - private List<ChannelConfig> channels; - private List<FilterConfig> globalFilters; - private List<Listener> listeners; - private List<Service> services; + private List<ChannelConfig> channels = new ArrayList<ChannelConfig>(); + private List<FilterConfig> globalFilters = new ArrayList<FilterConfig>(); + private List<Listener> listeners = new ArrayList<Listener>(); + private List<Service> services = new ArrayList<Service>(); private boolean running; private int status; - private Statistics statistics; + private Statistics statistics = new Statistics(); // datasource configuration private DataSourceConfig datasourceConfig; @@ -73,66 +81,54 @@ private URL serverConfigURL; private URL channelsConfigURL; - public static final int STATUS_OPENED = 0; - public static final int STATUS_LOCKED = 1; - - public static final String VERSION = "@version@"; - - private static Logger log = Logger.getLogger("net.jetrix"); - /** - * Constructor declaration + * Load the configuration */ - public ServerConfig() + public void load(File file) { - channels = new ArrayList<ChannelConfig>(); - globalFilters = new ArrayList<FilterConfig>(); - listeners = new ArrayList<Listener>(); - services = new ArrayList<Service>(); - statistics = new Statistics(); + try + { + load(file.toURI().toURL()); + } + catch (MalformedURLException e) + { + log.log(Level.SEVERE, "Unable to load the configuration", e); + } } /** * Load the configuration. */ - public void load() + public void load(URL serverConfigURL) { + this.serverConfigURL = serverConfigURL; + try { + // parse the server configuration Digester digester = new Digester(); - - // register the Jetrix server configuration file DTD - URL url = findResource("tetrinet-server.dtd"); - digester.register("-//LFJR//Jetrix TetriNET Server//EN", url.toString()); - - // register the Jetrix channels configuration file DTD - url = findResource("tetrinet-channels.dtd"); - digester.register("-//LFJR//Jetrix Channels//EN", url.toString()); - - // enable the document validation + digester.register("-//LFJR//Jetrix TetriNET Server//EN", findResource("tetrinet-server.dtd").toString()); digester.setValidating(true); - - // add the rule sets digester.addRuleSet(new ServerRuleSet()); - digester.addRuleSet(new ChannelsRuleSet()); - - // parse the server configuration digester.push(this); - serverConfigURL = findResource("conf/server.xml"); Reader reader = new InputStreamReader(serverConfigURL.openStream(), ENCODING); digester.parse(new InputSource(reader)); reader.close(); // parse the channel configuration + digester = new Digester(); + digester.register("-//LFJR//Jetrix Channels//EN", findResource("tetrinet-channels.dtd").toString()); + digester.setValidating(true); + digester.addRuleSet(new ChannelsRuleSet()); digester.push(this); - channelsConfigURL = findResource("conf/channels.xml"); + channelsConfigURL = new URL(serverConfigURL, channelsFile); reader = new InputStreamReader(channelsConfigURL.openStream(), ENCODING); digester.parse(new InputSource(reader)); reader.close(); } catch (Exception e) { - log.log(Level.SEVERE, e.getMessage(), e); + log.log(Level.SEVERE, "Unable to load the configuration", e); } } @@ -191,6 +187,9 @@ out.println(" <!-- Error Log, where errors are logged to -->"); out.println(" <error-log path=\"" + getErrorLogPath() + "\" />"); out.println(); + out.println(" <!-- Path to the channels descriptor file (relative to the current configuration file) -->"); + out.println(" <channels path=\"" + getChannelsFile() + "\"/>"); + out.println(); out.println(" <!-- Client listeners -->"); out.println(" <listeners>"); for (Listener listener : getListeners()) @@ -248,7 +247,7 @@ { Command command = commands.next(); String hidden = command.isHidden() ? " hidden=\"true\"" : ""; - Command command2 = (Command) command.getClass().newInstance(); + Command command2 = command.getClass().newInstance(); String level = command2.getAccessLevel() != command.getAccessLevel() ? " access-level=\"" + command.getAccessLevel() + "\"" : ""; out.println(" <command class=\"" + command.getClass().getName() + "\"" + hidden + level + "/>"); } @@ -667,7 +666,7 @@ if (url == null) { File file = new File(name); - url = file.toURL(); + url = file.toURI().toURL(); } return url; @@ -808,6 +807,16 @@ this.errorlogPath = errorlogPath; } + public String getChannelsFile() + { + return channelsFile; + } + + public void setChannelsFile(String channelsFile) + { + this.channelsFile = channelsFile; + } + public String getMessageOfTheDay() { return motd; Modified: jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/java/net/jetrix/config/ServerRuleSet.java 2009-02-12 16:11:42 UTC (rev 785) @@ -28,7 +28,7 @@ * @author Emmanuel Bourg * @version $Revision$, $Date$ */ -public class ServerRuleSet extends RuleSetBase +class ServerRuleSet extends RuleSetBase { public void addRuleInstances(Digester digester) @@ -48,6 +48,8 @@ digester.addCallParam("tetrinet-server/access-log", 0, "path"); digester.addCallMethod("tetrinet-server/error-log", "setErrorLogPath", 1); digester.addCallParam("tetrinet-server/error-log", 0, "path"); + digester.addCallMethod("tetrinet-server/channels", "setChannelsFile", 1); + digester.addCallParam("tetrinet-server/channels", 0, "path"); // command definitions digester.addObjectCreate("*/command", null, "class"); Modified: jetrix/trunk/src/test/net/jetrix/config/ServerConfigTest.java =================================================================== --- jetrix/trunk/src/test/net/jetrix/config/ServerConfigTest.java 2009-02-12 15:56:40 UTC (rev 784) +++ jetrix/trunk/src/test/net/jetrix/config/ServerConfigTest.java 2009-02-12 16:11:42 UTC (rev 785) @@ -19,6 +19,8 @@ package net.jetrix.config; +import java.net.URL; + import junit.framework.*; import net.jetrix.ChannelManager; @@ -30,12 +32,14 @@ */ public class ServerConfigTest extends TestCase { + private URL serverConfigURL = getClass().getResource("/conf/server.xml"); + public void testGetInstance() { try { ServerConfig config = new ServerConfig(); - config.load(); + config.load(serverConfigURL); } catch (Throwable e) { @@ -47,7 +51,7 @@ { // load... ServerConfig config = new ServerConfig(); - config.load(); + config.load(serverConfigURL); // create the channels for (ChannelConfig cc : config.getChannels()) @@ -61,7 +65,7 @@ // and load again ! ServerConfig config2 = new ServerConfig(); - config2.load(); + config2.load(serverConfigURL); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 15:56:50
|
Revision: 784 http://jetrix.svn.sourceforge.net/jetrix/?rev=784&view=rev Author: smanux Date: 2009-02-12 15:56:40 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Fixed the deploy task to make the jetrix shell script executable Modified Paths: -------------- jetrix/trunk/build.xml Property Changed: ---------------- jetrix/trunk/src/bin/jetrix jetrix/trunk/src/bin/update Modified: jetrix/trunk/build.xml =================================================================== --- jetrix/trunk/build.xml 2009-02-12 14:48:21 UTC (rev 783) +++ jetrix/trunk/build.xml 2009-02-12 15:56:40 UTC (rev 784) @@ -332,6 +332,8 @@ <delete dir="${deploy}"/> <mkdir dir="${deploy}"/> <unzip src="${dist}/bin/jetrix-${version}.zip" dest="${deploy}" /> + <chmod file="${deploy}/jetrix-${version}/jetrix" perm="+x"/> + <chmod file="${deploy}/jetrix-${version}/update" perm="+x"/> </target> <target name="run" depends="deploy"> Property changes on: jetrix/trunk/src/bin/jetrix ___________________________________________________________________ Added: svn:executable + * Property changes on: jetrix/trunk/src/bin/update ___________________________________________________________________ Added: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 14:48:24
|
Revision: 783 http://jetrix.svn.sourceforge.net/jetrix/?rev=783&view=rev Author: smanux Date: 2009-02-12 14:48:21 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Fixed the version of the JRE reported in the 'System' tab Modified Paths: -------------- jetrix/trunk/src/admin/server.jsp Modified: jetrix/trunk/src/admin/server.jsp =================================================================== --- jetrix/trunk/src/admin/server.jsp 2009-02-12 14:41:07 UTC (rev 782) +++ jetrix/trunk/src/admin/server.jsp 2009-02-12 14:48:21 UTC (rev 783) @@ -467,7 +467,7 @@ <th>Java Runtime Environment</th> <td> <%= System.getProperty("java.runtime.name") %> - (build <%= System.getProperty("java.vm.version") %>) + <%= System.getProperty("java.version") %> </td> </tr> <tr> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 14:41:09
|
Revision: 782 http://jetrix.svn.sourceforge.net/jetrix/?rev=782&view=rev Author: smanux Date: 2009-02-12 14:41:07 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Removed unused imports Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/SystrayManager.java Modified: jetrix/trunk/src/java/net/jetrix/SystrayManager.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/SystrayManager.java 2009-02-12 13:52:52 UTC (rev 781) +++ jetrix/trunk/src/java/net/jetrix/SystrayManager.java 2009-02-12 14:41:07 UTC (rev 782) @@ -20,9 +20,6 @@ package net.jetrix; import java.awt.*; -import java.awt.image.ImageObserver; -import java.awt.image.ImageProducer; -import java.awt.image.BufferedImage; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 13:52:55
|
Revision: 781 http://jetrix.svn.sourceforge.net/jetrix/?rev=781&view=rev Author: smanux Date: 2009-02-12 13:52:52 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Fixed TetrinetAgent on systems with non latin charset Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java Modified: jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-12 13:37:16 UTC (rev 780) +++ jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-12 13:52:52 UTC (rev 781) @@ -75,11 +75,13 @@ return; } + this.hostname = hostname; + socket = new Socket(hostname, port); socket.setSoTimeout(15000); - this.hostname = hostname; - in = new BufferedReader(new InputStreamReader(socket.getInputStream())); - out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); + + in = new BufferedReader(new InputStreamReader(socket.getInputStream(), "ISO-8859-1")); + out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "ISO-8859-1")); send(TetrinetProtocol.encode(name, version, socket.getInetAddress().getAddress(), false)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 13:37:21
|
Revision: 780 http://jetrix.svn.sourceforge.net/jetrix/?rev=780&view=rev Author: smanux Date: 2009-02-12 13:37:16 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Removed the ServerDirectory class (obsolete) Removed Paths: ------------- jetrix/trunk/src/java/net/jetrix/tools/ServerDirectory.java jetrix/trunk/src/test/net/jetrix/tools/ServerDirectoryTest.java Deleted: jetrix/trunk/src/java/net/jetrix/tools/ServerDirectory.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/tools/ServerDirectory.java 2009-02-12 13:20:49 UTC (rev 779) +++ jetrix/trunk/src/java/net/jetrix/tools/ServerDirectory.java 2009-02-12 13:37:16 UTC (rev 780) @@ -1,145 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2005 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.tools; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.MalformedURLException; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.*; - -/** - * A utility class that fetches a list of tetrinet servers from online - * directories like tetrinet.org and tsrv.com. - * - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - * @since 0.2 - */ -public class ServerDirectory -{ - /** - * Return the list of registered servers. - */ - public static Collection<String> getServers() - { - Collection<String> servers = new TreeSet<String>(); - - try - { - servers.addAll(extractServers(new URL("http://slummy.tetrinet.org/grav/slummy_grav.html"), "<TD><font size=\"+0\"><font face=\"helvetica,arial\">", "<")); - servers.addAll(extractServers(new URL("http://dieterdhoker.mine.nu:8280/cgi-bin/TSRV/servers.htm"), "serverhost=", "\"")); - } - catch (MalformedURLException e) - { - e.printStackTrace(); - } - - return getDistinctServers(servers); - } - - /** - * Extract a list of server from a web page. There must be one server by line only - * - * @since 0.3 - * - * @param url the URL of the page containing the list of servers - * @param startString the string right before the server name - * @param endString the string to find right after the server name - */ - private static Collection<String> extractServers(URL url, String startString, String endString) - { - Collection<String> servers = new TreeSet<String>(); - BufferedReader in = null; - - try - { - in = new BufferedReader(new InputStreamReader(url.openStream())); - - String line = null; - - while ((line = in.readLine()) != null) - { - if (line.contains(startString)) - { - int i = line.indexOf(startString) + startString.length(); - servers.add(line.substring(i, line.indexOf(endString, i)).toLowerCase()); - } - } - } - catch (Exception e) - { - e.printStackTrace(); - } - finally - { - if (in != null) - { - try - { - in.close(); - } - catch (IOException e) - { - e.printStackTrace(); - } - } - } - - return servers; - } - - /** - * Return the distinct hosts from the specified list of servers. - * Host names (i.e tetrinet.fr) are prefered over host addresses - * (i.e 194.117.194.68). - * - * @since 0.3 - */ - private static Set<String> getDistinctServers(Collection<String> servers) - { - Map<String, String> map = new HashMap<String, String>(); - - for (String server : servers) - { - try - { - // get the address of the server - InetAddress address = InetAddress.getByName(server); - - // check if the server is missing from the map, or registered under a numerical form - String hostname = map.get(address.getHostAddress()); - if (hostname == null || hostname.equals(address.getHostAddress())) - { - map.put(address.getHostAddress(), server); - } - } - catch (UnknownHostException e) - { - // ignored - } - } - - return new HashSet<String>(map.values()); - } -} Deleted: jetrix/trunk/src/test/net/jetrix/tools/ServerDirectoryTest.java =================================================================== --- jetrix/trunk/src/test/net/jetrix/tools/ServerDirectoryTest.java 2009-02-12 13:20:49 UTC (rev 779) +++ jetrix/trunk/src/test/net/jetrix/tools/ServerDirectoryTest.java 2009-02-12 13:37:16 UTC (rev 780) @@ -1,66 +0,0 @@ -/** - * Jetrix TetriNET Server - * Copyright (C) 2005 Emmanuel Bourg - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -package net.jetrix.tools; - -import java.io.IOException; -import java.util.Collection; - -import junit.framework.TestCase; -import net.jetrix.agent.QueryAgent; - -/** - * @author Emmanuel Bourg - * @version $Revision$, $Date$ - */ -public class ServerDirectoryTest extends TestCase -{ - public void testGetServers() throws Exception - { - Collection<String> servers = ServerDirectory.getServers(); - - assertNotNull("null list", servers); - assertFalse("empty list", servers.isEmpty()); - assertTrue("missing server tetrinet.org", servers.contains("tetrinet.org")); - } - - public void testShowVersions() throws Exception - { - Collection<String> servers = ServerDirectory.getServers(); - - for (String server : servers) - { - try - { - QueryAgent agent = new QueryAgent(); - agent.connect(server); - String version = agent.getVersion(); - agent.disconnect(); - - System.out.println(server + "\t\t" + version); - } - catch (IOException e) - { - System.err.println("Error connecting to " + server + " ("+e.getMessage()+")"); - e.printStackTrace(); - } - } - } - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2009-02-12 13:20:58
|
Revision: 779 http://jetrix.svn.sourceforge.net/jetrix/?rev=779&view=rev Author: smanux Date: 2009-02-12 13:20:49 +0000 (Thu, 12 Feb 2009) Log Message: ----------- Added a timeout in the connect() method of TetrinetAgent Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java Modified: jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2008-11-16 23:47:28 UTC (rev 778) +++ jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2009-02-12 13:20:49 UTC (rev 779) @@ -76,6 +76,7 @@ } socket = new Socket(hostname, port); + socket.setSoTimeout(15000); this.hostname = hostname; in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); @@ -93,6 +94,8 @@ } running = true; + + socket.setSoTimeout(0); // start the message listener new MessageListener().start(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-11-16 23:47:49
|
Revision: 778 http://jetrix.svn.sourceforge.net/jetrix/?rev=778&view=rev Author: smanux Date: 2008-11-16 23:47:28 +0000 (Sun, 16 Nov 2008) Log Message: ----------- Internationalization support and french translation Modified Paths: -------------- monitor/trunk/pom.xml monitor/trunk/src/main/webapp/WEB-INF/web.xml monitor/trunk/src/main/webapp/index.jsp monitor/trunk/src/main/webapp/player.jsp monitor/trunk/src/main/webapp/server-add.jsp monitor/trunk/src/main/webapp/server.jsp monitor/trunk/src/main/webapp/spec.jsp Added Paths: ----------- monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties Modified: monitor/trunk/pom.xml =================================================================== --- monitor/trunk/pom.xml 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/pom.xml 2008-11-16 23:47:28 UTC (rev 778) @@ -127,6 +127,18 @@ <scope>provided</scope> </dependency> + <dependency> + <groupId>taglibs</groupId> + <artifactId>standard</artifactId> + <version>1.1.2</version> + </dependency> + + <dependency> + <groupId>jstl</groupId> + <artifactId>jstl</artifactId> + <version>1.1.2</version> + </dependency> + <!-- Needed for testing --> <dependency> <groupId>junit</groupId> Added: monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties =================================================================== --- monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties (rev 0) +++ monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties 2008-11-16 23:47:28 UTC (rev 778) @@ -0,0 +1,48 @@ +word.server = Server +word.country = Country +word.player = Player +word.players = Players +word.channel = Channel +word.channels = Channels +word.version = Version +word.team = Team +word.nick = Nick +word.status = Status +word.action = Action +word.name = Name +word.description = Description +word.website = Website +word.unknown = Unknown +word.ping = Ping +word.add = Add +word.yes = Yes +word.no = No +word.peak = Peak +word.date-added = Date Added +word.last-online = Last Online +word.never = Never +word.tetrinet-client = Client +word.slot = Slot +word.last-seen = Last Seen +word.last-played = Last Played +word.first-seen = First Seen +word.active = active +word.tspec-access= TSpec Access +word.playing = Playing +word.idle = Idle +word.ingame = INGAME +word.activity-graph = Activity Graph + +message.intro = This is a list of the public TetriNET servers. The list is refreshed every {0} minutes. Feel free to add your favorite server if it's not in the list. This list is also available in <a href="servers-xml.jsp">XML</a> and can be freely integrated with an application or a website. Feedback and suggestions can be mailed to <a href="mailto:{1}">{1}</a>. +message.global-status = There are currently <b>{0}</b> players online on <b>{1}</b> servers. +message.last-checked = The servers were last checked on {0}. +message.add-server = Add a new server +message.back-to-servers = Back to the server list +message.back-to-server-info = Back to the server info +message.peak.players = {0} players reached on {1} +message.peak.active-players = {0} active players reached on {1} + +title.servers = TetriNET Servers Listing +title.server = TetriNET Server - {0} +title.player = TetriNET Player - {0} +title.channel = TetriNET Channel - {0} on {1} Property changes on: monitor/trunk/src/main/webapp/WEB-INF/classes/messages.properties ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Added: monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties =================================================================== --- monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties (rev 0) +++ monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties 2008-11-16 23:47:28 UTC (rev 778) @@ -0,0 +1,48 @@ +word.server = Serveur +word.country = Pays +word.player = Joueur +word.players = Joueurs +word.channel = Channel +word.channels = Channels +word.version = Version +word.team = \xC9quipe +word.nick = Pseudo +word.status = Statut +word.action = Action +word.name = Nom +word.description = Description +word.website = Site web +word.unknown = Inconnu +word.ping = Latence +word.add = Ajouter +word.yes = Oui +word.no = Non +word.peak = Pointe +word.date-added = Date d'ajout +word.last-online = Derniere V\xE9rification +word.never = Jamais +word.tetrinet-client = Client +word.slot = Place +word.last-seen = Derni\xE8re Apparition +word.last-played = Derni\xE8re Partie +word.first-seen = Premi\xE8re Apparition +word.active = actifs +word.tspec-access= Acc\xE8s Spectateur +word.playing = En jeu +word.idle = En attente +word.ingame = EN COURS +word.activity-graph = Graphique d'activit\xE9 + +message.intro = Voici la liste des serveurs TetriNET publics. Cette liste est actualis\xE9e toutes les {0} minutes. N''h\xE9sitez pas \xE0 ajouter votre serveur pr\xE9f\xE9r\xE9 s''il n''apparait pas dans la liste. Cette liste est \xE9galement disponible au format <a href="servers-xml.jsp">XML</a> et peut \xEAtre librement int\xE9gr\xE9e dans une application ou un site internet. Envoyez vos commentaires et suggestions \xE0 <a href="mailto:{1}">{1}</a>. +message.global-status = Il y a actuellement <b>{0}</b> joueurs en ligne sur <b>{1}</b> serveurs. +message.last-checked = Les serveurs ont \xE9t\xE9 v\xE9rifi\xE9s pour la derni\xE8re fois le {0}. +message.add-server = Ajouter un serveur +message.back-to-servers = Retour \xE0 la liste des serveurs +message.back-to-server-info = Retour aux infos du serveur +message.peak.players = {0} joueurs atteints le {1} +message.peak.active-players = {0} joueurs actifs atteints le {1} + +title.servers = Liste des serveurs TetriNET +title.server = Serveur TetriNET - {0} +title.player = Joueur TetriNET - {0} +title.channel = Channel TetriNET - {0} sur {1} Property changes on: monitor/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties ___________________________________________________________________ Added: svn:keywords + Date Author Id Revision HeadURL Added: svn:eol-style + native Modified: monitor/trunk/src/main/webapp/WEB-INF/web.xml =================================================================== --- monitor/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/src/main/webapp/WEB-INF/web.xml 2008-11-16 23:47:28 UTC (rev 778) @@ -12,6 +12,11 @@ <param-value>/WEB-INF/classes/*Context.xml</param-value> </context-param> + <context-param> + <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> + <param-value>messages</param-value> + </context-param> + <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> Modified: monitor/trunk/src/main/webapp/index.jsp =================================================================== --- monitor/trunk/src/main/webapp/index.jsp 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/src/main/webapp/index.jsp 2008-11-16 23:47:28 UTC (rev 778) @@ -1,3 +1,4 @@ +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> <%@ page import="java.util.Date" %> <%@ page import="java.util.List" %> <%@ page import="java.util.Locale" %> @@ -25,37 +26,47 @@ lastChecked = server.getLastChecked(); } } - %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> - <title>TetriNET Servers Listing</title> + <title><fmt:message key="title.servers"/></title> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <link rel="Shorcut Icon" href="favicon.ico"> <script type="text/javascript" src="scripts/sortable.js"></script> </head> <body> -<h1>TetriNET Servers Listing</h1> +<h1><fmt:message key="title.servers"/></h1> -<p>This is a list of the public TetriNET servers. The list is refreshed every 5 minutes. Feel free to add your favorite -server if it's not in the list.</p> +<p> +<fmt:message key="message.intro"> + <fmt:param>5</fmt:param> + <fmt:param>sm...@lf...</fmt:param> +</fmt:message> +</p> -<p>There are currently <b><%= totalPlayerCount %></b> players online on <b><%= serverCount %></b> servers. The -servers were last checked on <%= lastChecked %>.</p> +<p> +<fmt:message key="message.global-status"> + <fmt:param><%= totalPlayerCount %></fmt:param> + <fmt:param><%= serverCount %></fmt:param> +</fmt:message> +<fmt:message key="message.last-checked"> + <fmt:param><%= lastChecked %></fmt:param> +</fmt:message> +</p> <table class="thin sortable" id="serverlist" border="1" align="center"> <thead> <tr> - <th>Server</th> - <th>Country</th> - <th>Players</th> - <th>Channels</th> - <th>Version</th> - <th>Ping <small>(ms)</small></th> - <th>Spec</th> + <th><fmt:message key="word.server"/></th> + <th><fmt:message key="word.country"/></th> + <th><fmt:message key="word.players"/></th> + <th><fmt:message key="word.channels"/></th> + <th><fmt:message key="word.version"/></th> + <th><fmt:message key="word.ping"/> <small>(ms)</small></th> + <th>TSpec</th> </tr> </thead> <tbody> @@ -72,10 +83,11 @@ <% Locale locale = new Locale("en", server.getCountry()); String countryName = locale.getDisplayCountry(Locale.ENGLISH); + String localizedCountryName = locale.getDisplayCountry(request.getLocale()); %> - <img src="images/flags/24/<%= countryName %>.png" alt="<%= countryName%>" title="<%= countryName%>"> + <img src="images/flags/24/<%= countryName %>.png" alt="<%= localizedCountryName%>" title="<%= localizedCountryName%>"> <% } else { %> - <img src="images/flags/24/United Nations.png" alt="Unknown" title="Unknown"> + <img src="images/flags/24/United Nations.png" alt="<fmt:message key="word.unknown"/>" title="<fmt:message key="word.unknown"/>"> <% } %> </td> <td align="right" style="font-weight: bold; <%= server.getStats().getActivePlayerCount() > 0 ? "color: green" : "" %>"> @@ -84,28 +96,36 @@ <td align="right"><%= server.getStats().getChannelCount() %></td> <td><%= server.getVersion() != null ? server.getVersion() : "" %></td> <td align="right"><%= server.getStats().getPing() %></td> - <td align="center" style="color: <%= server.isSpectate() ? "green" : "red" %>"><%= server.isSpectate() ? "Yes" : "No" %></td> + <td align="center" style="color: <%= server.isSpectate() ? "green" : "red" %>"> + <% if (server.isSpectate()) { %> + <fmt:message key="word.yes"/> + <% } else { %> + <fmt:message key="word.no"/> + <% } %> + </td> </tr> <% } %> </tbody> </table> <fieldset style="margin: 1em auto; width: 200px; -moz-border-radius: 6px"> - <legend>Add a new server</legend> + <legend><fmt:message key="message.add-server"/></legend> <form action="server-add.jsp"> <input type="text" name="hostname"> - <input type="submit" value="Add"> + <input type="submit" value="<fmt:message key="word.add"/>"> <br> - (<tt>tetrinet.fr</tt> or <tt>194.117.194.68</tt>) + (i.e. <tt>tetrinet.fr</tt>, <tt>194.117.194.68</tt>) </form> </fieldset> <hr> -<p>This list is also available in <a href="servers-xml.jsp">XML</a> and can be freely integrated with an application -or a website. Flags icons are made by www.icondrawer.com.</p> +<div style="font-size: smaller; float: left"> + Powered by <a href="http://jetrix.sourceforge.net">Jetrix Monitor</a><br> +</div> +<div style="font-size: smaller; text-align: right"> + Flags icons are made by <a href="http://www.icondrawer.com">www.icondrawer.com</a> +</div> -<p>Feedback and suggestions can be mailed to <a href="mailto:sm...@lf...">sm...@lf...</a></p> - </body> </html> Modified: monitor/trunk/src/main/webapp/player.jsp =================================================================== --- monitor/trunk/src/main/webapp/player.jsp 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/src/main/webapp/player.jsp 2008-11-16 23:47:28 UTC (rev 778) @@ -1,3 +1,4 @@ +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> <%@ page import="org.springframework.web.context.ContextLoader" %> <%@ page import="org.springframework.web.context.WebApplicationContext" %> <%@ page import="net.jetrix.monitor.PlayerStats" %> @@ -13,37 +14,47 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> - <title>TetriNET Player - <%= StyleUtils.strip(player.getName()) %></title> + <title> + <fmt:message key="title.player"> + <fmt:param><%= StyleUtils.strip(player.getName()) %></fmt:param> + </fmt:message> + </title> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <link rel="Shorcut Icon" href="favicon.ico"> </head> <body> -<h1>TetriNET Player - <%= StyleUtils.strip(player.getName()) %></h1> + +<h1> + <fmt:message key="title.player"> + <fmt:param><%= StyleUtils.strip(player.getName()) %></fmt:param> + </fmt:message> +</h1> + <table class="thin" border="1" cellspacing="0" style="min-width: 40%"> <tr> - <th width="25%">First Seen</th> + <th width="25%"><fmt:message key="word.first-seen"/></th> <td><%= player.getFirstSeen() %></td> </tr> <tr> - <th>Last Seen</th> + <th><fmt:message key="word.last-seen"/></th> <td><%= player.getLastSeen() %></td> </tr> <tr> - <th>Last Played</th> + <th><fmt:message key="word.last-played"/></th> <td><%= player.getLastPlayed() != null ? player.getLastPlayed() : "-" %></td> </tr> <tr> - <th>Server</th> + <th><fmt:message key="word.server"/></th> <td><a href="server.jsp?id=<%= player.getLastServer().getId() %>"><%= player.getLastServer().getHostname() %></a></td> </tr> <tr> - <th>Channel</th> + <th><fmt:message key="word.channel"/></th> <td><%= player.getChannel() != null ? player.getChannel() : "" %></td> </tr> <tr> - <th>Team</th> + <th><fmt:message key="word.team"/></th> <td><%= player.getTeam() != null ? player.getTeam() : "" %></td> </tr> </table> Modified: monitor/trunk/src/main/webapp/server-add.jsp =================================================================== --- monitor/trunk/src/main/webapp/server-add.jsp 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/src/main/webapp/server-add.jsp 2008-11-16 23:47:28 UTC (rev 778) @@ -3,8 +3,6 @@ <%@ page import="java.net.InetSocketAddress" %> <%@ page import="java.net.Socket" %> <%@ page import="java.util.Date" %> -<%@ page import="java.util.List" %> -<%@ page import="java.util.Locale" %> <%@ page import="org.springframework.web.context.ContextLoader" %> <%@ page import="org.springframework.web.context.WebApplicationContext" %> <%@ page import="net.jetrix.monitor.ServerInfo" %> Modified: monitor/trunk/src/main/webapp/server.jsp =================================================================== --- monitor/trunk/src/main/webapp/server.jsp 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/src/main/webapp/server.jsp 2008-11-16 23:47:28 UTC (rev 778) @@ -1,3 +1,4 @@ +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> <%@ page import="java.util.Locale" %> <%@ page import="org.springframework.web.context.ContextLoader" %> <%@ page import="org.springframework.web.context.WebApplicationContext" %> @@ -14,11 +15,13 @@ ServerInfo server = dao.getServer(Long.parseLong(request.getParameter("id"))); String countryName = "Unknown"; + String localizedCountryName = "Unknown"; String countryFlag = "United Nations"; if (server.getCountry() != null) { Locale locale = new Locale("en", server.getCountry()); countryName = locale.getDisplayCountry(Locale.ENGLISH); + localizedCountryName = locale.getDisplayCountry(request.getLocale()); countryFlag = countryName; } @@ -27,24 +30,32 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> - <title>TetriNET Server - <%= server.getHostname() %></title> + <title> + <fmt:message key="title.server"> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> + </title> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <link rel="Shorcut Icon" href="favicon.ico"> <script type="text/javascript" src="scripts/sortable.js"></script> </head> <body> -<h1>TetriNET Server - <%= server.getHostname() %></h1> +<h1> + <fmt:message key="title.server"> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> +</h1> <% if (server.getMaxPlayerCount() > 0) { %> <div style="float: right"> - <img src="images/graphs/server-<%= server.getId() %>.png" alt="Activity graph"> + <img src="images/graphs/server-<%= server.getId() %>.png" alt="<fmt:message key="word.activity-graph"/>"> </div> <% } %> <table class="thin" border="1" cellspacing="0" style="min-width: 40%"> <tr> - <th width="25%">Website</th> + <th width="25%"><fmt:message key="word.website"/></th> <td> <% if (server.getWebsite() != null) { %> <a href="<%= server.getWebsite() %>"><%= server.getWebsite() %></a> @@ -52,81 +63,100 @@ </td> </tr> <tr> - <th>Description</th> + <th><fmt:message key="word.description"/></th> <td><%= server.getDescription() != null ? server.getDescription() : "" %></td> </tr> <tr> - <th>Version</th> + <th><fmt:message key="word.version"/></th> <td><%= server.getVersion() != null ? server.getVersion() : "" %></td> </tr> <tr> - <th>Country</th> + <th><fmt:message key="word.country"/></th> <td> <table border="0" cellpadding="0" cellspacing="0"> <tr> - <td><img src="images/flags/24/<%= countryFlag %>.png" alt="<%= countryName%>" title="<%= countryName%>"></td> - <td><%= countryName%></td> + <td><img src="images/flags/24/<%= countryFlag %>.png" alt="<%= localizedCountryName%>"></td> + <td><%= localizedCountryName%></td> </tr> </table> </td> </tr> <tr> - <th>Players</th> + <th><fmt:message key="word.players"/></th> <td> <%= server.getStats().getPlayerCount() %> <% if (server.getStats().getActivePlayerCount() > 0) { %> - (<%= server.getStats().getActivePlayerCount() %> active) + (<%= server.getStats().getActivePlayerCount() %> <fmt:message key="word.active"/>) <% } %> </td> </tr> <% if (server.getMaxPlayerCount() != 0 && server.getMaxActivePlayerCount() != 0) { %> <tr> - <th>Peak</th> + <th><fmt:message key="word.peak"/></th> <td> - <%= server.getMaxPlayerCount() %> players reached on <%= server.getMaxPlayerDate() %><br> - <%= server.getMaxActivePlayerCount() %> active players reached on <%= server.getMaxActivePlayerDate() %> + <fmt:message key="message.peak.players"> + <fmt:param><%= server.getMaxPlayerCount() %></fmt:param> + <fmt:param><%= server.getMaxPlayerDate() %></fmt:param> + </fmt:message> + <br> + <fmt:message key="message.peak.active-players"> + <fmt:param><%= server.getMaxActivePlayerCount() %></fmt:param> + <fmt:param><%= server.getMaxActivePlayerDate() %></fmt:param> + </fmt:message> </td> </tr> <% } %> <tr> - <th>Channels</th> + <th><fmt:message key="word.channels"/></th> <td><%= server.getStats().getChannelCount() %></td> </tr> <tr> - <th>TSpec Access</th> - <td style="color: <%= server.isSpectate() ? "green" : "red" %>"><%= server.isSpectate() ? "Yes" : "No" %></td> + <th><fmt:message key="word.tspec-access"/></th> + <td style="color: <%= server.isSpectate() ? "green" : "red" %>"> + <% if (server.isSpectate()) { %> + <fmt:message key="word.yes"/> + <% } else { %> + <fmt:message key="word.no"/> + <% } %> + </td> </tr> <tr> - <th>Ping</th> + <th><fmt:message key="word.ping"/></th> <td><%= server.getStats().getPing() %> ms</td> </tr> <tr> - <th>Date Added</th> + <th><fmt:message key="word.date-added"/></th> <td><%= server.getDateAdded() %></td> </tr> <tr> - <th>Last Online</th> - <td><%= server.getLastOnline() != null ? server.getLastOnline() : "Never" %></td> + <th><fmt:message key="word.last-online"/></th> + <td> + <% if (server.getLastOnline() != null) { %> + <%= server.getLastOnline() %> + <% } else { %> + <fmt:message key="word.never"/> + <% } %> + </td> </tr> </table> -<p><a href="<%= request.getContextPath() %>/">Back to the server list</a></p> +<p><a href="<%= request.getContextPath() %>/"><fmt:message key="message.back-to-servers"/></a></p> <div style="clear: both;"></div> <% if (!server.getPlayers().isEmpty()) { %> -<h2>Players</h2> +<h2><fmt:message key="word.players"/></h2> <table class="thin sortable" id="players" border="1" style="min-width: 40%"> <thead> <tr> - <th>Nick</th> - <th>Team</th> - <th>Channel</th> - <th>Slot</th> - <th>Status</th> - <th>Client</th> + <th><fmt:message key="word.nick"/></th> + <th><fmt:message key="word.team"/></th> + <th><fmt:message key="word.channel"/></th> + <th><fmt:message key="word.slot"/></th> + <th><fmt:message key="word.status"/></th> + <th><fmt:message key="word.tetrinet-client"/></th> </tr> </thead> <tbody> @@ -136,7 +166,13 @@ <td><%= StyleUtils.toHTML(player.getTeam()) %></td> <td><%= player.getChannel() %></td> <td><%= player.getSlot() %></td> - <td style="color: <%= player.isPlaying() ? "green" : "inherit" %>"><%= player.isPlaying() ? "Playing" : "Idle" %></td> + <td style="color: <%= player.isPlaying() ? "green" : "inherit" %>"> + <% if (player.isPlaying()) { %> + <fmt:message key="word.playing"/> + <% } else { %> + <fmt:message key="word.idle"/> + <% } %> + </td> <td><%= player.getVersion() %></td> </tr> <% } %> @@ -148,17 +184,17 @@ <% if (!server.getChannels().isEmpty()) { %> -<h2>Channels</h2> +<h2><fmt:message key="word.channels"/></h2> <table class="thin sortable" id="channels" border="1" style="min-width: 40%"> <thead> <tr> - <th>Name</th> - <th>Description</th> - <th>Players</th> - <th>Status</th> + <th><fmt:message key="word.name"/></th> + <th><fmt:message key="word.description"/></th> + <th><fmt:message key="word.players"/></th> + <th><fmt:message key="word.status"/></th> <% if (viewable) { %> - <th>Action</th> + <th><fmt:message key="word.action"/></th> <% } %> </tr> </thead> @@ -168,7 +204,11 @@ <td><%= channel.getName() %></td> <td><%= StyleUtils.toHTML(channel.getDescription()) %></td> <td><%= channel.getPlayernum() %> / <%= channel.getPlayermax() %></td> - <td style="color: green; font-weight: bold"><%= channel.isPlaying() ? "INGAME" : "" %></td> + <td style="color: green; font-weight: bold"> + <% if (channel.isPlaying()) { %> + <fmt:message key="word.ingame"/> + <% } %> + </td> <% if (viewable) { %> <td align="center"> <% if (channel.getPlayernum() > 0) { %> Modified: monitor/trunk/src/main/webapp/spec.jsp =================================================================== --- monitor/trunk/src/main/webapp/spec.jsp 2008-11-16 21:29:26 UTC (rev 777) +++ monitor/trunk/src/main/webapp/spec.jsp 2008-11-16 23:47:28 UTC (rev 778) @@ -1,8 +1,6 @@ +<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> <%@ page import="org.springframework.web.context.ContextLoader" %> <%@ page import="org.springframework.web.context.WebApplicationContext" %> -<%@ page import="net.jetrix.monitor.PlayerStats" %> -<%@ page import="net.jetrix.monitor.dao.PlayerStatsDao" %> -<%@ page import="net.jetrix.monitor.StyleUtils" %> <%@ page import="net.jetrix.monitor.dao.ServerInfoDao" %> <%@ page import="net.jetrix.monitor.ServerInfo" %> <% @@ -16,13 +14,23 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> - <title>TetriNET Player - <%= channel %> on <%= server.getHostname() %></title> + <title> + <fmt:message key="title.channel"> + <fmt:param><%= channel %></fmt:param> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> + </title> <link rel="stylesheet" type="text/css" href="stylesheets/style.css"> <link rel="Shorcut Icon" href="favicon.ico"> </head> <body> -<h1>TetriNET Player - <%= channel %> on <%= server.getHostname() %></h1> +<h1> + <fmt:message key="title.channel"> + <fmt:param><%= channel %></fmt:param> + <fmt:param><%= server.getHostname() %></fmt:param> + </fmt:message> +</h1> <div align="center"> <applet code="net.jetrix.spectator.SpectatorApplet" archive="webspec-0.1-SNAPSHOT.jar,jetrix-0.3-SNAPSHOT.jar" width="640" height="480"> @@ -33,7 +41,7 @@ </applet> </div> -<a href="server.jsp?id=<%= server.getId() %>">Back to the server info</a> +<a href="server.jsp?id=<%= server.getId() %>"><fmt:message key="message.back-to-server-info"/></a> </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-11-16 21:29:31
|
Revision: 777 http://jetrix.svn.sourceforge.net/jetrix/?rev=777&view=rev Author: smanux Date: 2008-11-16 21:29:26 +0000 (Sun, 16 Nov 2008) Log Message: ----------- Work around a Hibernate issue when the channels are updated Modified Paths: -------------- monitor/trunk/src/main/java/net/jetrix/monitor/job/ServerSurveyJob.java Modified: monitor/trunk/src/main/java/net/jetrix/monitor/job/ServerSurveyJob.java =================================================================== --- monitor/trunk/src/main/java/net/jetrix/monitor/job/ServerSurveyJob.java 2008-11-16 21:27:36 UTC (rev 776) +++ monitor/trunk/src/main/java/net/jetrix/monitor/job/ServerSurveyJob.java 2008-11-16 21:29:26 UTC (rev 777) @@ -160,7 +160,17 @@ server.getStats().update(info); server.setVersion(info.getVersion()); server.setLastOnline(server.getLastChecked()); - server.setChannels(info.getChannels()); + + if (server.getChannels() == null) + { + server.setChannels(info.getChannels()); + } + else + { + server.getChannels().clear(); + server.getChannels().addAll(info.getChannels()); + } + server.setPlayers(info.getPlayers()); if (server.getStats().getActivePlayerCount() > server.getMaxActivePlayerCount()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-11-16 21:27:59
|
Revision: 776 http://jetrix.svn.sourceforge.net/jetrix/?rev=776&view=rev Author: smanux Date: 2008-11-16 21:27:36 +0000 (Sun, 16 Nov 2008) Log Message: ----------- Flush the SQL database once the RRD file is updated Modified Paths: -------------- monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerStatsDao.java monitor/trunk/src/main/java/net/jetrix/monitor/job/GraphGenerationJob.java Modified: monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerStatsDao.java =================================================================== --- monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerStatsDao.java 2008-11-16 21:24:58 UTC (rev 775) +++ monitor/trunk/src/main/java/net/jetrix/monitor/dao/ServerStatsDao.java 2008-11-16 21:27:36 UTC (rev 776) @@ -20,6 +20,7 @@ package net.jetrix.monitor.dao; import java.util.List; +import java.util.Date; import org.hibernate.Query; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; @@ -44,4 +45,19 @@ { getSession().saveOrUpdate(stats); } + + /** + * Delete the server stats up to the specified date. + * + * @param serverId + * @param date + */ + public void delete(long serverId, Date date) + { + Query query = getSession().createQuery("DELETE FROM ServerStats WHERE serverId=:id AND date <= :date"); + query.setParameter("id", serverId); + query.setParameter("date", date); + + query.executeUpdate(); + } } Modified: monitor/trunk/src/main/java/net/jetrix/monitor/job/GraphGenerationJob.java =================================================================== --- monitor/trunk/src/main/java/net/jetrix/monitor/job/GraphGenerationJob.java 2008-11-16 21:24:58 UTC (rev 775) +++ monitor/trunk/src/main/java/net/jetrix/monitor/job/GraphGenerationJob.java 2008-11-16 21:27:36 UTC (rev 776) @@ -45,6 +45,8 @@ import net.jetrix.monitor.dao.ServerStatsDao; /** + * Job updating the graphs. + * * @author Emmanuel Bourg * @version $Revision$, $Date$ */ @@ -52,7 +54,10 @@ { public static final String DEFAULT_DATAPATH = System.getProperty("user.home") + "/.jetrix"; + /** The directory where the RRD files are stored. */ private String dataPath = DEFAULT_DATAPATH; + + /** The directory where the images are generated. */ private String outpoutPath = DEFAULT_DATAPATH; public void setDataPath(String dataPath) @@ -85,6 +90,15 @@ { List<ServerStats> stats = serverStatsDao.getStats(server.getId()); generateGraph(server, stats); + + /** + * Remove the stats from the SQL database + */ + if (!stats.isEmpty()) + { + ServerStats lastStats = stats.get(stats.size() - 1); + serverStatsDao.delete(server.getId(), lastStats.getDate()); + } } catch (Exception e) { @@ -100,7 +114,7 @@ protected void generateGraph(ServerInfo server, List<ServerStats> stats) throws RrdException, IOException { - boolean update= updateDatabase(server,stats); + boolean update= updateDatabase(server, stats); if (update) { generateGraph(server, 1); @@ -156,7 +170,7 @@ def.addDatasource("players", "GAUGE", 600, 0, Double.NaN); def.addDatasource("activePlayers", "GAUGE", 600, 0, Double.NaN); - def.addArchive("AVERAGE", 0.5, 1, 1000000); + def.addArchive("AVERAGE", 0.5, 1, 500000); RrdDb rrdDb = new RrdDb(def); rrdDb.close(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |