add request management
[jSite2.git] / src / net / pterodactylus / jsite / main / Main.java
index 383aa0c..be543eb 100644 (file)
 
 package net.pterodactylus.jsite.main;
 
+import java.io.File;
+
+import net.pterodactylus.jsite.core.CoreImpl;
+import net.pterodactylus.jsite.core.NodeManager;
+import net.pterodactylus.jsite.core.ProjectManager;
+import net.pterodactylus.jsite.core.RequestManager;
+import net.pterodactylus.jsite.gui.SwingInterface;
+import net.pterodactylus.util.logging.Logging;
+
 /**
  * Main class that is called by the VM.
  * 
@@ -34,6 +43,37 @@ public class Main {
         *            The command-line arguments
         */
        public static void main(String[] args) {
+               new Main().start();
+       }
+
+       /**
+        * Starts the core and the default {@link SwingInterface}.
+        */
+       private void start() {
+               Logging.setup("jSite");
+
+               CoreImpl core = new CoreImpl();
+
+               String configDirectory = System.getProperty("user.home") + File.separator + ".jSite";
+
+               ProjectManager projectManager = new ProjectManager(configDirectory);
+               core.setProjectManager(projectManager);
+
+               NodeManager nodeManager = new NodeManager("jSite-" + Version.getVersion(), configDirectory);
+               core.setNodeManager(nodeManager);
+               nodeManager.addNodeListener(core);
+
+               RequestManager requestManager = new RequestManager();
+               core.setRequestManager(requestManager);
+               nodeManager.addNodeListener(requestManager);
+               requestManager.setNodeManager(nodeManager);
+               requestManager.addRequestListener(core);
+
+               SwingInterface swingInterface = new SwingInterface(core, configDirectory);
+               core.addCoreListener(swingInterface);
+               Logging.addLoggingListener(swingInterface);
+
+               core.start();
        }
 
 }