Attempt to create a main class
authorGeorgios Gousios <gousiosg@gmail.com>
Thu, 15 Dec 2011 12:31:17 +0000 (14:31 +0200)
committerGeorgios Gousios <gousiosg@gmail.com>
Thu, 15 Dec 2011 12:37:36 +0000 (14:37 +0200)
logic/src/main/scala/gr/grnet/aquarium/Main.scala [new file with mode: 0644]

diff --git a/logic/src/main/scala/gr/grnet/aquarium/Main.scala b/logic/src/main/scala/gr/grnet/aquarium/Main.scala
new file mode 100644 (file)
index 0000000..94bf175
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2011 GRNET S.A. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or
+ * without modification, are permitted provided that the following
+ * conditions are met:
+ *
+ *   1. Redistributions of source code must retain the above
+ *      copyright notice, this list of conditions and the following
+ *      disclaimer.
+ *
+ *   2. Redistributions in binary form must reproduce the above
+ *      copyright notice, this list of conditions and the following
+ *      disclaimer in the documentation and/or other materials
+ *      provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and
+ * documentation are those of the authors and should not be
+ * interpreted as representing official policies, either expressed
+ * or implied, of GRNET S.A.
+ */
+
+package gr.grnet.aquarium
+
+import util.Loggable
+
+/**
+ * Main method for Aquarium
+ *
+ * @author Georgios Gousios <gousiosg@gmail.com>
+ */
+object Main extends Loggable {
+
+  def main(args: Array[String]) = {
+
+    logger.info("Starting Aquarium")
+
+    MasterConf.MasterConf.startServices()
+
+    addShutdownHook
+
+    logger.info("Started Aquarium")
+  }
+  
+  def addShutdownHook(): Unit = {
+    Runtime.getRuntime.addShutdownHook(new Thread(new Runnable {
+      def run = {
+        logger.info("Shutting down Aquarium")
+        MasterConf.MasterConf.stopServices()
+      }
+    }))
+  }
+}
\ No newline at end of file