diff -r 9f0b95aafaa3 -r ed84c8bdd87b org/sonews/Main.java
--- a/org/sonews/Main.java Sun Aug 29 17:04:25 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-/*
- * SONEWS News Server
- * see AUTHORS for the list of contributors
- *
- * 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 3 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, see .
- */
-
-package org.sonews;
-
-import java.sql.Driver;
-import java.sql.DriverManager;
-import java.util.Enumeration;
-import java.util.Date;
-import java.util.logging.Level;
-import org.sonews.config.Config;
-import org.sonews.daemon.ChannelLineBuffers;
-import org.sonews.daemon.CommandSelector;
-import org.sonews.daemon.Connections;
-import org.sonews.daemon.NNTPDaemon;
-import org.sonews.feed.FeedManager;
-import org.sonews.mlgw.MailPoller;
-import org.sonews.storage.StorageBackendException;
-import org.sonews.storage.StorageManager;
-import org.sonews.storage.StorageProvider;
-import org.sonews.util.Log;
-import org.sonews.util.Purger;
-import org.sonews.util.io.Resource;
-
-/**
- * Startup class of the daemon.
- * @author Christian Lins
- * @since sonews/0.5.0
- */
-public final class Main
-{
-
- private Main()
- {
- }
-
- /** Version information of the sonews daemon */
- public static final String VERSION = "sonews/1.1.0";
- public static final Date STARTDATE = new Date();
-
- /**
- * The main entrypoint.
- * @param args
- * @throws Exception
- */
- public static void main(String[] args) throws Exception
- {
- System.out.println(VERSION);
- Thread.currentThread().setName("Mainthread");
-
- // Command line arguments
- boolean feed = false; // Enable feeding?
- boolean mlgw = false; // Enable Mailinglist gateway?
- int port = -1;
-
- for(int n = 0; n < args.length; n++)
- {
- if(args[n].equals("-c") || args[n].equals("-config"))
- {
- Config.inst().set(Config.LEVEL_CLI, Config.CONFIGFILE, args[++n]);
- System.out.println("Using config file " + args[n]);
- }
- else if(args[n].equals("-dumpjdbcdriver"))
- {
- System.out.println("Available JDBC drivers:");
- Enumeration drvs = DriverManager.getDrivers();
- while(drvs.hasMoreElements())
- {
- System.out.println(drvs.nextElement());
- }
- return;
- }
- else if(args[n].equals("-feed"))
- {
- feed = true;
- }
- else if(args[n].equals("-h") || args[n].equals("-help"))
- {
- printArguments();
- return;
- }
- else if(args[n].equals("-mlgw"))
- {
- mlgw = true;
- }
- else if(args[n].equals("-p"))
- {
- port = Integer.parseInt(args[++n]);
- }
- else if(args[n].equals("-plugin"))
- {
- System.out.println("Warning: -plugin-storage is not implemented!");
- }
- else if(args[n].equals("-plugin-command"))
- {
- try
- {
- CommandSelector.addCommandHandler(args[++n]);
- }
- catch(Exception ex)
- {
- Log.get().warning("Could not load command plugin: " + args[n]);
- Log.get().log(Level.INFO, "Main.java", ex);
- }
- }
- else if(args[n].equals("-plugin-storage"))
- {
- System.out.println("Warning: -plugin-storage is not implemented!");
- }
- else if(args[n].equals("-v") || args[n].equals("-version"))
- {
- // Simply return as the version info is already printed above
- return;
- }
- }
-
- // Try to load the JDBCDatabase;
- // Do NOT USE BackendConfig or Log classes before this point because they require
- // a working JDBCDatabase connection.
- try
- {
- StorageProvider sprov =
- StorageManager.loadProvider("org.sonews.storage.impl.JDBCDatabaseProvider");
- StorageManager.enableProvider(sprov);
-
- // Make sure some elementary groups are existing
- if(!StorageManager.current().isGroupExisting("control"))
- {
- StorageManager.current().addGroup("control", 0);
- Log.get().info("Group 'control' created.");
- }
- }
- catch(StorageBackendException ex)
- {
- ex.printStackTrace();
- System.err.println("Database initialization failed with " + ex.toString());
- System.err.println("Make sure you have specified the correct database" +
- " settings in sonews.conf!");
- return;
- }
-
- ChannelLineBuffers.allocateDirect();
-
- // Add shutdown hook
- Runtime.getRuntime().addShutdownHook(new ShutdownHook());
-
- // Start the listening daemon
- if(port <= 0)
- {
- port = Config.inst().get(Config.PORT, 119);
- }
- final NNTPDaemon daemon = NNTPDaemon.createInstance(port);
- daemon.start();
-
- // Start Connections purger thread...
- Connections.getInstance().start();
-
- // Start mailinglist gateway...
- if(mlgw)
- {
- new MailPoller().start();
- }
-
- // Start feeds
- if(feed)
- {
- FeedManager.startFeeding();
- }
-
- Purger purger = new Purger();
- purger.start();
-
- // Wait for main thread to exit (setDaemon(false))
- daemon.join();
- }
-
- private static void printArguments()
- {
- String usage = Resource.getAsString("helpers/usage", true);
- System.out.println(usage);
- }
-
-}