You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2012/12/14 21:33:17 UTC

svn commit: r1422068 - in /airavata/trunk/modules: commons/utils/ commons/utils/src/main/java/org/apache/airavata/common/utils/ integration-tests/ registry/airavata-registry-test/src/test/java/org/apache/airavata/registry/api/test/util/ rest/service/ r...

Author: lahiru
Date: Fri Dec 14 20:33:05 2012
New Revision: 1422068

URL: http://svn.apache.org/viewvc?rev=1422068&view=rev
Log:
Fixing AIRAVATA-673. Also cleaned up integration tests bit. Thanks Amila

Added:
    airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DatabaseTestCases.java
    airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DerbyUtil.java
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCAuthenticatorTests.java
      - copied, changed from r1421802, airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPAuthenticatorTest.java
      - copied, changed from r1421802, airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPUserStoreTest.java
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBAuthenticatorTest.java
      - copied, changed from r1421802, airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java
Removed:
    airavata/trunk/modules/integration-tests/derby-start.txt
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPUserStoreTest.java
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java
    airavata/trunk/modules/rest/service/src/test/resources/testdb/
    airavata/trunk/modules/security/src/test/resources/testdb/
Modified:
    airavata/trunk/modules/commons/utils/pom.xml
    airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DBUtil.java
    airavata/trunk/modules/integration-tests/pom.xml
    airavata/trunk/modules/registry/airavata-registry-test/src/test/java/org/apache/airavata/registry/api/test/util/Initialize.java
    airavata/trunk/modules/rest/service/pom.xml
    airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/services/registry/rest/security/local/LocalUserStoreTest.java
    airavata/trunk/modules/rest/service/src/test/resources/jdbc-authenticator.xml
    airavata/trunk/modules/rest/service/src/test/resources/session-authenticator.xml
    airavata/trunk/modules/security/pom.xml
    airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/userstore/JDBCUserStore.java
    airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java
    airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java
    airavata/trunk/modules/security/src/test/resources/jdbc-authenticator.xml
    airavata/trunk/modules/security/src/test/resources/session-authenticator.xml

Modified: airavata/trunk/modules/commons/utils/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/pom.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/commons/utils/pom.xml (original)
+++ airavata/trunk/modules/commons/utils/pom.xml Fri Dec 14 20:33:05 2012
@@ -71,6 +71,27 @@
 			<artifactId>slf4j-api</artifactId>
 		</dependency>
 
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbyclient</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbynet</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbytools</artifactId>
+            <version>${derby.version}</version>
+        </dependency>
+
 		<!-- Testing -->
 		<dependency>
 			<groupId>junit</groupId>

Modified: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DBUtil.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DBUtil.java?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DBUtil.java (original)
+++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DBUtil.java Fri Dec 14 20:33:05 2012
@@ -110,6 +110,35 @@ public class DBUtil {
         return null;
     }
 
+    /**
+     * Create table utility method.
+     * @param sql SQL to be executed.
+     * @throws SQLException If an error occurred while creating the table.
+     */
+    public void executeSQL(String sql) throws SQLException {
+
+        Connection connection = getConnection();
+
+        PreparedStatement ps = connection.prepareStatement(sql);
+
+        try {
+            ps.executeUpdate();
+            connection.commit();
+        } finally {
+            try {
+                if (ps != null) {
+                    ps.close();
+                }
+
+                connection.close();
+
+            } catch (Exception ignore) {
+                log.error("An error occurred while closing database connections ", ignore);
+            }
+        }
+
+    }
+
     private void loadDriver() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
         Class.forName(driverName).newInstance();
     }

Added: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DatabaseTestCases.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DatabaseTestCases.java?rev=1422068&view=auto
==============================================================================
--- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DatabaseTestCases.java (added)
+++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DatabaseTestCases.java Fri Dec 14 20:33:05 2012
@@ -0,0 +1,84 @@
+package org.apache.airavata.common.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+/**
+ * An abstraction for database specific test classes. This will create a database and provides
+ * methods to execute SQLs.
+ */
+public class DatabaseTestCases {
+
+    private static final Logger logger = LoggerFactory.getLogger(DatabaseTestCases.class);
+
+
+    protected static String hostAddress = "localhost";
+    protected static int port = 20000;
+    protected static String userName = "admin";
+    protected static String password = "admin";
+    protected static String driver = "org.apache.derby.jdbc.ClientDriver";
+
+
+    public static String getHostAddress() {
+        return hostAddress;
+    }
+
+    public static int getPort() {
+        return port;
+    }
+
+    public static String getUserName() {
+        return userName;
+    }
+
+    public static String getPassword() {
+        return password;
+    }
+
+    public static String getDriver() {
+        return driver;
+    }
+
+    public static String getJDBCUrl() {
+        return new StringBuilder().append("jdbc:derby://").append(getHostAddress()).append(":").append(getPort()).
+                append("/persistent_data;create=true;user=").append(getUserName()).
+                append(";password=").append(getPassword()).toString();
+    }
+
+    public static void waitTillServerStarts() {
+        DBUtil dbUtil = new DBUtil(getJDBCUrl(), getUserName(), getPassword(), getDriver());
+
+        Connection connection = null;
+        try {
+           connection = dbUtil.getConnection();
+        } catch (SQLException e) {
+            // ignore
+        }
+
+        while (connection == null) {
+            try {
+                Thread.sleep(1000);
+                try {
+                    connection = dbUtil.getConnection();
+                } catch (SQLException e) {
+                    // ignore
+                }
+            } catch (InterruptedException e) {
+                //ignore
+            }
+        }
+
+
+    }
+
+
+
+    public static void executeSQL(String sql) throws Exception {
+        DBUtil dbUtil = new DBUtil(getJDBCUrl(), getUserName(), getPassword(), getDriver());
+        dbUtil.executeSQL(sql);
+    }
+
+}

Added: airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DerbyUtil.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DerbyUtil.java?rev=1422068&view=auto
==============================================================================
--- airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DerbyUtil.java (added)
+++ airavata/trunk/modules/commons/utils/src/main/java/org/apache/airavata/common/utils/DerbyUtil.java Fri Dec 14 20:33:05 2012
@@ -0,0 +1,84 @@
+package org.apache.airavata.common.utils;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.net.InetAddress;
+import java.sql.DriverManager;
+import org.apache.derby.drda.NetworkServerControl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.SQLException;
+
+/**
+ * This class includes methods to start stop Derby database. Mainly user for tests.
+ */
+public class DerbyUtil {
+
+    private static NetworkServerControl server;
+
+    private static final Logger logger = LoggerFactory.getLogger(DerbyUtil.class);
+
+    public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
+
+    /**
+     * Starts new derby server instance with given configurations.
+     * @param hostAddress The host address start the server.
+     * @param port The port number which server is starting.
+     * @param user JDBC user name.
+     * @param password JDBC password.
+     * @throws Exception If an error occurred while starting the server.
+     */
+    public static void startDerbyInServerMode(String hostAddress, int port, String user, String password)
+            throws Exception {
+        PrintWriter consoleWriter = null;
+
+        try {
+            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
+            server = new NetworkServerControl(InetAddress.getByName(hostAddress),
+                    port,
+                    user, password);
+            consoleWriter = new PrintWriter(System.out, true);
+            server.start(consoleWriter);
+
+        } catch (IOException e) {
+            logger.error("Unable to start Apache derby in the server mode! Check whether " +
+                    "specified port is available", e);
+            throw e;
+        } catch (Exception e) {
+            logger.error("Unable to start Apache derby in the server mode! Check whether " +
+                    "specified port is available", e);
+            throw e;
+        } finally {
+
+            if (consoleWriter != null) {
+                consoleWriter.close();
+            }
+
+        }
+
+    }
+
+    /**
+     * Starts derby server in embedded mode.
+     * @throws ClassNotFoundException If specified driver not found in the class path.
+     * @throws SQLException  If an error occurred while creat
+     */
+    public static void startDerbyInEmbeddedMode() throws ClassNotFoundException, SQLException {
+        Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
+        DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close();
+    }
+
+    /**
+     * Shuts down the server.
+     * @throws Exception If an error occurred while shutting down.
+     */
+    public static void stopDerbyServer() throws Exception {
+        try {
+            server.shutdown();
+        } catch (Exception e) {
+            logger.error("Error shutting down derby server.", e);
+            throw e;
+        }
+    }
+}

Modified: airavata/trunk/modules/integration-tests/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/integration-tests/pom.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/integration-tests/pom.xml (original)
+++ airavata/trunk/modules/integration-tests/pom.xml Fri Dec 14 20:33:05 2012
@@ -24,33 +24,6 @@
     
     <build>
         <plugins>
-            <!--plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.4</version>
-                <inherited>false</inherited>
-                <executions>
-                    <execution>
-                        <id>unpack-tomcat</id>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>unpack</goal>
-                        </goals>
-                        <configuration>
-                            <artifactItems>
-                                <artifactItem>
-                                    <groupId>org.apache.tomcat</groupId>
-                                    <artifactId>binary-distribution</artifactId>
-                                    <version>7.0.33</version>
-                                    <type>zip</type>
-                                    <overWrite>true</overWrite>
-                                    <outputDirectory>target/tests</outputDirectory>
-                                </artifactItem>
-                            </artifactItems>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin-->
             <plugin>
                 <artifactId>maven-antrun-plugin</artifactId>
                 <executions>

Modified: airavata/trunk/modules/registry/airavata-registry-test/src/test/java/org/apache/airavata/registry/api/test/util/Initialize.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/registry/airavata-registry-test/src/test/java/org/apache/airavata/registry/api/test/util/Initialize.java?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/registry/airavata-registry-test/src/test/java/org/apache/airavata/registry/api/test/util/Initialize.java (original)
+++ airavata/trunk/modules/registry/airavata-registry-test/src/test/java/org/apache/airavata/registry/api/test/util/Initialize.java Fri Dec 14 20:33:05 2012
@@ -21,6 +21,7 @@
 
 package org.apache.airavata.registry.api.test.util;
 
+import org.apache.airavata.common.utils.DerbyUtil;
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
 import org.apache.airavata.persistance.registry.jpa.resources.GatewayResource;
 import org.apache.airavata.persistance.registry.jpa.resources.UserResource;
@@ -28,7 +29,6 @@ import org.apache.airavata.persistance.r
 import org.apache.airavata.persistance.registry.jpa.resources.WorkerResource;
 import org.apache.airavata.registry.api.exception.RegistrySettingsException;
 import org.apache.airavata.registry.api.util.RegistrySettings;
-import org.apache.derby.drda.NetworkServerControl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,16 +36,11 @@ import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.net.InetAddress;
-import java.net.URL;
 import java.sql.*;
-import java.util.Properties;
 import java.util.StringTokenizer;
 
 public class Initialize {
     private static final Logger logger = LoggerFactory.getLogger(Initialize.class);
-    public static final String DERBY_SERVER_MODE_SYS_PROPERTY = "derby.drda.startNetworkServer";
-    private NetworkServerControl server;
     private static final String delimiter = ";";
     public static final String PERSISTANT_DATA = "Configuration";
 
@@ -271,39 +266,29 @@ public class Initialize {
     }
 
     private void startDerbyInServerMode() {
+
         try {
-            System.setProperty(DERBY_SERVER_MODE_SYS_PROPERTY, "true");
-            server = new NetworkServerControl(InetAddress.getByName(Utils.getHost()),
-                    20000,
-                    Utils.getJDBCUser(), Utils.getJDBCUser());
-            java.io.PrintWriter consoleWriter = new java.io.PrintWriter(System.out, true);
-            server.start(consoleWriter);
-        } catch (IOException e) {
-            logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
+            DerbyUtil.startDerbyInServerMode(Utils.getHost(), 20000, Utils.getJDBCUser(), Utils.getJDBCUser());
         } catch (Exception e) {
             logger.error("Unable to start Apache derby in the server mode! Check whether " +
-                    "specified port is available");
+                    "specified port is available", e);
         }
 
     }
 
     private void startDerbyInEmbeddedMode(){
         try {
-            Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
-            DriverManager.getConnection("jdbc:derby:memory:unit-testing-jpa;create=true").close();
-        } catch (ClassNotFoundException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        } catch (SQLException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            DerbyUtil.startDerbyInEmbeddedMode();
+        } catch (Exception e) {
+            logger.error("Error occurred while starting Derby in embedded mode", e);
         }
     }
 
     public void stopDerbyServer() {
         try {
-            server.shutdown();
+            DerbyUtil.stopDerbyServer();
         } catch (Exception e) {
-            e.printStackTrace();
+            logger.error("Error occurred while stopping Derby", e);
         }
     }
 }

Modified: airavata/trunk/modules/rest/service/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/pom.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/pom.xml (original)
+++ airavata/trunk/modules/rest/service/pom.xml Fri Dec 14 20:33:05 2012
@@ -43,12 +43,6 @@
 			<artifactId>shiro-core</artifactId>
 			<version>1.2.1</version>
 		</dependency>
-		<dependency>
-			<groupId>com.h2database</groupId>
-			<artifactId>h2</artifactId>
-			<version>1.3.168</version>
-			<scope>test</scope>
-		</dependency>
 
 		<!-- Airavata -->
 		<dependency>

Copied: airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCAuthenticatorTests.java (from r1421802, airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java)
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCAuthenticatorTests.java?p2=airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCAuthenticatorTests.java&p1=airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java&r1=1421802&r2=1422068&rev=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java (original)
+++ airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/JDBCAuthenticatorTests.java Fri Dec 14 20:33:05 2012
@@ -20,22 +20,23 @@
 
 package org.apache.airavata.security.userstore;
 
-import junit.framework.TestCase;
-import org.apache.airavata.security.Authenticator;
+import org.apache.airavata.common.utils.DatabaseTestCases;
+import org.apache.airavata.common.utils.DerbyUtil;
 import org.apache.airavata.security.UserStore;
-import org.apache.airavata.security.configurations.AuthenticatorConfigurationReader;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.File;
-import java.util.List;
 
 /**
  * Test class for JDBC user store.
  */
-public class JDBCUserStoreTest extends TestCase {
+public class JDBCAuthenticatorTests extends DatabaseTestCases {
 
     /**
      * <specificConfigurations>
@@ -53,8 +54,25 @@ public class JDBCUserStoreTest extends T
      * @throws Exception
      */
 
+    @BeforeClass
+    public static void setUpDatabase() throws Exception{
+        DerbyUtil.startDerbyInServerMode(getHostAddress(), getPort(), getUserName(), getPassword());
 
+        waitTillServerStarts();
 
+        String createTable = "create table AIRAVATA_USER ( USERID varchar(255), PASSWORD varchar(255) )";
+        executeSQL(createTable);
+
+        String insertSQL = "INSERT INTO AIRAVATA_USER VALUES('amilaj', 'secret')";
+        executeSQL(insertSQL);
+    }
+
+    @AfterClass
+    public static void shutDownDatabase() throws Exception {
+        DerbyUtil.stopDerbyServer();
+    }
+
+    @Test
     public void testAuthenticate() throws Exception {
 
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
@@ -66,9 +84,9 @@ public class JDBCUserStoreTest extends T
         UserStore userStore = new JDBCUserStore();
         userStore.configure(configurations.item(0));
 
-        assertTrue(userStore.authenticate("amilaj", "secret"));
-        assertFalse(userStore.authenticate("amilaj", "1secret"));
-        assertFalse(userStore.authenticate("lahiru", "1234"));
+        Assert.assertTrue(userStore.authenticate("amilaj", "secret"));
+        Assert.assertFalse(userStore.authenticate("amilaj", "1secret"));
+        Assert.assertFalse(userStore.authenticate("lahiru", "1234"));
 
     }
 }

Copied: airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPAuthenticatorTest.java (from r1421802, airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPUserStoreTest.java)
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPAuthenticatorTest.java?p2=airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPAuthenticatorTest.java&p1=airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPUserStoreTest.java&r1=1421802&r2=1422068&rev=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPUserStoreTest.java (original)
+++ airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/LDAPAuthenticatorTest.java Fri Dec 14 20:33:05 2012
@@ -33,7 +33,7 @@ import javax.xml.parsers.DocumentBuilder
  * User store test 2
  */
 @Ignore("Need LDAP server to run these tests")
-public class LDAPUserStoreTest extends TestCase{
+public class LDAPAuthenticatorTest extends TestCase{
 
     private LDAPUserStore ldapUserStore;
 

Copied: airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBAuthenticatorTest.java (from r1421802, airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java)
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBAuthenticatorTest.java?p2=airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBAuthenticatorTest.java&p1=airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java&r1=1421802&r2=1422068&rev=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java (original)
+++ airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/security/userstore/SessionDBAuthenticatorTest.java Fri Dec 14 20:33:05 2012
@@ -21,6 +21,9 @@
 package org.apache.airavata.security.userstore;
 
 import junit.framework.TestCase;
+import org.apache.airavata.common.utils.DatabaseTestCases;
+import org.apache.airavata.common.utils.DerbyUtil;
+import org.junit.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
@@ -32,14 +35,39 @@ import java.io.InputStream;
 /**
  * Test class for session DB authenticator.
  */
-public class SessionDBUserStoreTest extends TestCase {
+public class SessionDBAuthenticatorTest extends DatabaseTestCases {
+
+    @BeforeClass
+    public static void setUpDatabase() throws Exception{
+        DerbyUtil.startDerbyInServerMode(getHostAddress(), getPort(), getUserName(), getPassword());
+
+        waitTillServerStarts();
+
+        String createTable = "create table Persons ( sessionId varchar(255) )";
+        executeSQL(createTable);
+
+        String insertSQL = "INSERT INTO Persons VALUES('1234')";
+        executeSQL(insertSQL);
+    }
+
+    @AfterClass
+    public static void shutDownDatabase() throws Exception {
+        DerbyUtil.stopDerbyServer();
+    }
+
+    @Before
+    public void setUp() throws Exception{
+
+        loadConfigurations();
+
+    }
 
     private SessionDBUserStore sessionDBUserStore = new SessionDBUserStore();
 
     private InputStream configurationFileStream
             = this.getClass().getClassLoader().getResourceAsStream("session-authenticator.xml");
 
-    public void setUp() throws Exception {
+    public void loadConfigurations() throws Exception {
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.parse(configurationFileStream);
@@ -49,12 +77,13 @@ public class SessionDBUserStoreTest exte
         sessionDBUserStore.configure(specificConfigurations.item(0));
     }
 
+    @Test
     public void testAuthenticate() throws Exception {
-        assertTrue(sessionDBUserStore.authenticate("1234"));
-
+        Assert.assertTrue(sessionDBUserStore.authenticate("1234"));
     }
 
+    @Test
     public void testAuthenticateFailure() throws Exception  {
-        assertFalse(sessionDBUserStore.authenticate("12345"));
+        Assert.assertFalse(sessionDBUserStore.authenticate("12345"));
     }
 }

Modified: airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/services/registry/rest/security/local/LocalUserStoreTest.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/services/registry/rest/security/local/LocalUserStoreTest.java?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/services/registry/rest/security/local/LocalUserStoreTest.java (original)
+++ airavata/trunk/modules/rest/service/src/test/java/org/apache/airavata/services/registry/rest/security/local/LocalUserStoreTest.java Fri Dec 14 20:33:05 2012
@@ -1,21 +1,16 @@
 package org.apache.airavata.services.registry.rest.security.local;
 
-import junit.framework.TestCase;
 import org.apache.airavata.common.utils.DBUtil;
+import org.apache.airavata.common.utils.DatabaseTestCases;
+import org.apache.airavata.common.utils.DerbyUtil;
+import org.junit.*;
 
-import java.io.File;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
 import java.util.List;
 
 /**
  * A test class for local user store.
  */
-public class LocalUserStoreTest extends TestCase {
-
-    private DBUtil dbUtil = new DBUtil("jdbc:h2:modules/airavata-rest-services/src/test/resources/testdb/test",
-            "sa", "sa", "org.h2.Driver");
+public class LocalUserStoreTest extends DatabaseTestCases {
 
     private LocalUserStore localUserStore;
 
@@ -25,88 +20,79 @@ public class LocalUserStoreTest extends 
                     "        user_name varchar(255),\n" +
                     "        password varchar(255),\n" +
                     "        PRIMARY KEY(user_name)\n" +
-                    ");";
+                    ")";
+
 
-    private static final String dropTableScript =
-            "drop table Users";
+    @BeforeClass
+    public static void setUpDatabase() throws Exception{
+        DerbyUtil.startDerbyInServerMode(getHostAddress(), getPort(), getUserName(), getPassword());
 
-    private void createTable(Connection connection, String query) {
+        waitTillServerStarts();
 
+        executeSQL(createTableScript);
+
+    }
 
-        Statement stmt = null;
-
-        try {
-            stmt = connection.createStatement();
-            stmt.executeUpdate(query);
-        }
-        catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            if (stmt != null) {
-                try {
-                    stmt.close();
-                } catch (SQLException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
+    @AfterClass
+    public static void shutDownDatabase() throws Exception {
+        DerbyUtil.stopDerbyServer();
     }
 
+    @Before
     public void setUp() throws Exception{
 
+        DBUtil dbUtil = new DBUtil(getJDBCUrl(), getUserName(), getPassword(), getDriver());
         dbUtil.init();
 
-        File f = new File(".");
-        System.out.println(f.getAbsolutePath());
-
-        Connection connection = dbUtil.getConnection();
-        createTable(connection, dropTableScript);
-        createTable(connection, createTableScript);
-
-        try {
-            connection.close();
-        } catch (SQLException e) {
-            e.printStackTrace();
-        }
-
         localUserStore = new LocalUserStore(dbUtil);
     }
 
+    @Test
     public void testAddUser() throws Exception {
 
         localUserStore.addUser("thejaka", "qwqwqw");
 
         List<String> users = localUserStore.getUsers();
-        assertEquals(1, users.size());
-        assertEquals("thejaka", users.get(0));
+        Assert.assertEquals(1, users.size());
+        Assert.assertEquals("thejaka", users.get(0));
+
+        localUserStore.deleteUser("thejaka");
+
     }
 
+    @Test
     public void testChangePassword() throws Exception {
 
         localUserStore.addUser("thejaka", "qwqwqw");
 
         localUserStore.changePassword("thejaka", "qwqwqw", "sadsad");
+
+        localUserStore.deleteUser("thejaka");
     }
 
+    @Test
     public void testChangePasswordByAdmin() throws Exception {
 
         localUserStore.addUser("thejaka", "qwqwqw");
 
         localUserStore.changePasswordByAdmin("thejaka", "sadsad");
+
+        localUserStore.deleteUser("thejaka");
     }
 
+    @Test
     public void testDeleteUser() throws Exception {
 
         localUserStore.addUser("thejaka", "qwqwqw");
 
         List<String> users = localUserStore.getUsers();
-        assertEquals(1, users.size());
-        assertEquals("thejaka", users.get(0));
+        Assert.assertEquals(1, users.size());
+        Assert.assertEquals("thejaka", users.get(0));
 
         localUserStore.deleteUser("thejaka");
 
         users = localUserStore.getUsers();
-        assertEquals(0, users.size());
+        Assert.assertEquals(0, users.size());
 
     }
 }

Modified: airavata/trunk/modules/rest/service/src/test/resources/jdbc-authenticator.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/test/resources/jdbc-authenticator.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/test/resources/jdbc-authenticator.xml (original)
+++ airavata/trunk/modules/rest/service/src/test/resources/jdbc-authenticator.xml Fri Dec 14 20:33:05 2012
@@ -26,10 +26,10 @@
         <specificConfigurations>
             <database>
                 <!--jdbcUrl>jdbc:h2:modules/commons/airavata-registry-rest/src/test/resources/testdb/test</jdbcUrl-->
-                <jdbcUrl>jdbc:h2:../../src/test/resources/testdb/test</jdbcUrl>
-                <userName>sa</userName>
-                <password>sa</password>
-                <databaseDriver>org.h2.Driver</databaseDriver>
+                <jdbcUrl>jdbc:derby://localhost:20000/persistent_data;create=true</jdbcUrl>
+                <userName>admin</userName>
+                <password>admin</password>
+                <databaseDriver>org.apache.derby.jdbc.ClientDriver</databaseDriver>
                 <userTableName>AIRAVATA_USER</userTableName>
                 <userNameColumnName>USERID</userNameColumnName>
                 <passwordColumnName>PASSWORD</passwordColumnName>

Modified: airavata/trunk/modules/rest/service/src/test/resources/session-authenticator.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/rest/service/src/test/resources/session-authenticator.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/rest/service/src/test/resources/session-authenticator.xml (original)
+++ airavata/trunk/modules/rest/service/src/test/resources/session-authenticator.xml Fri Dec 14 20:33:05 2012
@@ -28,12 +28,12 @@
             <database>
                 <!--jdbcUrl>jdbc:h2:modules/commons/airavata-registry-rest/src/test/resources/testdb/test</jdbcUrl-->
                 <!-- Points to /Users/thejaka/development/apache/airavata/trunk/modules/commons/airavata-registry-rest/target/tomcat6x/. -->
-                <jdbcUrl>jdbc:h2:../../src/test/resources/testdb/test</jdbcUrl>
+                <jdbcUrl>jdbc:derby://localhost:20000/persistent_data;create=true</jdbcUrl>
                 <!--jdbcUrl>jdbc:h2:modules/security/src/test/resources/testdb/test</jdbcUrl-->
 
-                <userName>sa</userName>
-                <password>sa</password>
-                <databaseDriver>org.h2.Driver</databaseDriver>
+                <userName>admin</userName>
+                <password>admin</password>
+                <databaseDriver>org.apache.derby.jdbc.ClientDriver</databaseDriver>
                 <sessionTable>Persons</sessionTable>
                 <sessionColumn>sessionId</sessionColumn>
                 <comparingColumn>sessionId</comparingColumn>

Modified: airavata/trunk/modules/security/pom.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/security/pom.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/security/pom.xml (original)
+++ airavata/trunk/modules/security/pom.xml Fri Dec 14 20:33:05 2012
@@ -52,12 +52,6 @@
             <version>4.7</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <version>1.3.168</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
     <build>
         <plugins>

Modified: airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/userstore/JDBCUserStore.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/userstore/JDBCUserStore.java?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/userstore/JDBCUserStore.java (original)
+++ airavata/trunk/modules/security/src/main/java/org/apache/airavata/security/userstore/JDBCUserStore.java Fri Dec 14 20:33:05 2012
@@ -60,7 +60,8 @@ public class JDBCUserStore extends Abstr
         try {
             authenticationInfo = jdbcRealm.getAuthenticationInfo(authenticationToken);
         } catch (AuthenticationException e) {
-            log.warn(e.getLocalizedMessage(), e);
+            log.warn(e.getLocalizedMessage());
+            log.debug(e.getLocalizedMessage(), e);
             return false;
         }
 

Modified: airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java (original)
+++ airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/JDBCUserStoreTest.java Fri Dec 14 20:33:05 2012
@@ -23,22 +23,20 @@
 
 package org.apache.airavata.security.userstore;
 
-import junit.framework.TestCase;
-import org.apache.airavata.security.Authenticator;
+import org.apache.airavata.common.utils.DatabaseTestCases;
+import org.apache.airavata.common.utils.DerbyUtil;
 import org.apache.airavata.security.UserStore;
-import org.apache.airavata.security.configurations.AuthenticatorConfigurationReader;
+import org.junit.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
-import java.io.File;
-import java.util.List;
 
 /**
  * Test class for JDBC user store.
  */
-public class JDBCUserStoreTest extends TestCase {
+public class JDBCUserStoreTest extends DatabaseTestCases {
 
     /**
      * <specificConfigurations>
@@ -57,7 +55,29 @@ public class JDBCUserStoreTest extends T
      */
 
 
+    @BeforeClass
+    public static void setUpDatabase() throws Exception{
+        DerbyUtil.startDerbyInServerMode(getHostAddress(), getPort(), getUserName(), getPassword());
 
+        waitTillServerStarts();
+
+        String createTable = "create table AIRAVATA_USER ( USERID varchar(255), PASSWORD varchar(255) )";
+        executeSQL(createTable);
+
+        String insertSQL = "INSERT INTO AIRAVATA_USER VALUES('amilaj', 'secret')";
+        executeSQL(insertSQL);
+    }
+
+    @AfterClass
+    public static void shutDownDatabase() throws Exception {
+        DerbyUtil.stopDerbyServer();
+    }
+
+    @Before
+    public void setUp() throws Exception{
+    }
+
+    @Test
     public void testAuthenticate() throws Exception {
 
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
@@ -69,9 +89,9 @@ public class JDBCUserStoreTest extends T
         UserStore userStore = new JDBCUserStore();
         userStore.configure(configurations.item(0));
 
-        assertTrue(userStore.authenticate("amilaj", "secret"));
-        assertFalse(userStore.authenticate("amilaj", "1secret"));
-        assertFalse(userStore.authenticate("lahiru", "1234"));
+        Assert.assertTrue(userStore.authenticate("amilaj", "secret"));
+        Assert.assertFalse(userStore.authenticate("amilaj", "1secret"));
+        Assert.assertFalse(userStore.authenticate("lahiru", "1234"));
 
     }
 }

Modified: airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java (original)
+++ airavata/trunk/modules/security/src/test/java/org/apache/airavata/security/userstore/SessionDBUserStoreTest.java Fri Dec 14 20:33:05 2012
@@ -24,6 +24,9 @@
 package org.apache.airavata.security.userstore;
 
 import junit.framework.TestCase;
+import org.apache.airavata.common.utils.DatabaseTestCases;
+import org.apache.airavata.common.utils.DerbyUtil;
+import org.junit.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.NodeList;
 
@@ -35,14 +38,40 @@ import java.io.InputStream;
 /**
  * Test class for session DB authenticator.
  */
-public class SessionDBUserStoreTest extends TestCase {
+
+public class SessionDBUserStoreTest extends DatabaseTestCases {
+
+    @BeforeClass
+    public static void setUpDatabase() throws Exception{
+        DerbyUtil.startDerbyInServerMode(getHostAddress(), getPort(), getUserName(), getPassword());
+
+        waitTillServerStarts();
+
+        String createTable = "create table Persons ( sessionId varchar(255) )";
+        executeSQL(createTable);
+
+        String insertSQL = "INSERT INTO Persons VALUES('1234')";
+        executeSQL(insertSQL);
+    }
+
+    @AfterClass
+    public static void shutDownDatabase() throws Exception {
+        DerbyUtil.stopDerbyServer();
+    }
+
+    @Before
+    public void setUp() throws Exception{
+
+        loadConfigurations();
+
+    }
 
     private SessionDBUserStore sessionDBUserStore = new SessionDBUserStore();
 
     private InputStream configurationFileStream
             = this.getClass().getClassLoader().getResourceAsStream("session-authenticator.xml");
 
-    public void setUp() throws Exception {
+    private void loadConfigurations () throws Exception {
         DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.parse(configurationFileStream);
@@ -52,12 +81,14 @@ public class SessionDBUserStoreTest exte
         sessionDBUserStore.configure(specificConfigurations.item(0));
     }
 
+    @Test
     public void testAuthenticate() throws Exception {
-        assertTrue(sessionDBUserStore.authenticate("1234"));
+        Assert.assertTrue(sessionDBUserStore.authenticate("1234"));
 
     }
 
+    @Test
     public void testAuthenticateFailure() throws Exception  {
-        assertFalse(sessionDBUserStore.authenticate("12345"));
+        Assert.assertFalse(sessionDBUserStore.authenticate("12345"));
     }
 }

Modified: airavata/trunk/modules/security/src/test/resources/jdbc-authenticator.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/security/src/test/resources/jdbc-authenticator.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/security/src/test/resources/jdbc-authenticator.xml (original)
+++ airavata/trunk/modules/security/src/test/resources/jdbc-authenticator.xml Fri Dec 14 20:33:05 2012
@@ -26,10 +26,10 @@
         <specificConfigurations>
             <database>
                 <!--jdbcUrl>jdbc:h2:modules/commons/airavata-registry-rest/src/test/resources/testdb/test</jdbcUrl-->
-                <jdbcUrl>jdbc:h2:../../src/test/resources/testdb/test</jdbcUrl>
-                <userName>sa</userName>
-                <password>sa</password>
-                <databaseDriver>org.h2.Driver</databaseDriver>
+                <jdbcUrl>jdbc:derby://localhost:20000/persistent_data;create=true</jdbcUrl>
+                <userName>admin</userName>
+                <password>admin</password>
+                <databaseDriver>org.apache.derby.jdbc.ClientDriver</databaseDriver>
                 <userTableName>AIRAVATA_USER</userTableName>
                 <userNameColumnName>USERID</userNameColumnName>
                 <passwordColumnName>PASSWORD</passwordColumnName>

Modified: airavata/trunk/modules/security/src/test/resources/session-authenticator.xml
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/security/src/test/resources/session-authenticator.xml?rev=1422068&r1=1422067&r2=1422068&view=diff
==============================================================================
--- airavata/trunk/modules/security/src/test/resources/session-authenticator.xml (original)
+++ airavata/trunk/modules/security/src/test/resources/session-authenticator.xml Fri Dec 14 20:33:05 2012
@@ -28,12 +28,13 @@
             <database>
                 <!--jdbcUrl>jdbc:h2:modules/commons/airavata-registry-rest/src/test/resources/testdb/test</jdbcUrl-->
                 <!-- Points to /Users/thejaka/development/apache/airavata/trunk/modules/commons/airavata-registry-rest/target/tomcat6x/. -->
-                <jdbcUrl>jdbc:h2:../../src/test/resources/testdb/test</jdbcUrl>
+                <jdbcUrl>jdbc:derby://localhost:20000/persistent_data;create=true</jdbcUrl>
+
                 <!--jdbcUrl>jdbc:h2:modules/security/src/test/resources/testdb/test</jdbcUrl-->
 
-                <userName>sa</userName>
-                <password>sa</password>
-                <databaseDriver>org.h2.Driver</databaseDriver>
+                <userName>admin</userName>
+                <password>admin</password>
+                <databaseDriver>org.apache.derby.jdbc.ClientDriver</databaseDriver>
                 <sessionTable>Persons</sessionTable>
                 <sessionColumn>sessionId</sessionColumn>
                 <comparingColumn>sessionId</comparingColumn>