Author: simoneg
Date: Thu Nov 27 08:21:19 2008
New Revision: 721226

URL: http://svn.apache.org/viewvc?rev=721226&view=rev
Log:
LABS-242 : Basic API for initial startup.

Added:
    labs/magma/trunk/foundation-startup/pom.xml
    labs/magma/trunk/foundation-startup/src/
    labs/magma/trunk/foundation-startup/src/main/
    labs/magma/trunk/foundation-startup/src/main/java/
    labs/magma/trunk/foundation-startup/src/main/java/org/
    labs/magma/trunk/foundation-startup/src/main/java/org/apache/
    labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/
    labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/startup/
    
labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/startup/Startup.java
    labs/magma/trunk/foundation-startup/src/main/resources/
    labs/magma/trunk/foundation-startup/src/test/
    labs/magma/trunk/foundation-startup/src/test/java/
    labs/magma/trunk/foundation-startup/src/test/resources/

Added: labs/magma/trunk/foundation-startup/pom.xml
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-startup/pom.xml?rev=721226&view=auto
==============================================================================
--- labs/magma/trunk/foundation-startup/pom.xml (added)
+++ labs/magma/trunk/foundation-startup/pom.xml Thu Nov 27 08:21:19 2008
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+  <parent>
+    <artifactId>magma-parent</artifactId>
+    <groupId>org.apache.magma</groupId>
+    <version>1</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.magma</groupId>
+  <artifactId>foundation-startup</artifactId>
+  <name>Magma Foundation Startup</name>
+  <version>0.0.1-SNAPSHOT</version>
+  <description/>
+  <packaging>magma</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>foundation-basics</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: 
labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/startup/Startup.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/startup/Startup.java?rev=721226&view=auto
==============================================================================
--- 
labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/startup/Startup.java
 (added)
+++ 
labs/magma/trunk/foundation-startup/src/main/java/org/apache/magma/startup/Startup.java
 Thu Nov 27 08:21:19 2008
@@ -0,0 +1,51 @@
+package org.apache.magma.startup;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+public class Startup {
+
+       private static Startup started = null;
+       
+       public static synchronized Startup start() {
+               if (started == null) {
+                       started = new Startup();
+                       started.globalSetup();
+               }
+               return started;
+       }
+       
+       public static synchronized void stop() {
+               if (started == null) return;
+               started.globalTearDown();
+       }
+       
+       private void globalSetup() {
+               Method[] methods = Startup.class.getDeclaredMethods();
+               for (Method method : methods) {
+                       if (method.getName().toLowerCase().startsWith("setup") 
&& method.getParameterTypes().length == 0) {
+                               try {
+                                       method.invoke(this);
+                               } catch (Exception e) {
+                                       // TODO log this instead
+                                       e.printStackTrace();
+                               }
+                       }
+               }
+       }
+       
+       private void globalTearDown() {
+               Method[] methods = Startup.class.getDeclaredMethods();
+               for (Method method : methods) {
+                       if 
(method.getName().toLowerCase().startsWith("teardown") && 
method.getParameterTypes().length == 0) {
+                               try {
+                                       method.invoke(this);
+                               } catch (Exception e) {
+                                       // TODO log this instead
+                                       e.printStackTrace();
+                               }
+                       }
+               }               
+       }
+       
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to