Author: chathura
Date: Thu Dec 20 23:27:55 2007
New Revision: 11637

Log:


Implemented the in-process persistance database support.
Database will be created on first run.
This can be used to populate sample data.



Added:
   branches/registry/0_1/modules/webapps/src/main/resources/
   branches/registry/0_1/modules/webapps/src/main/resources/sample/
   branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.log
   
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.properties
   
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.script
Modified:
   
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/config/RegistryConfiguration.java
   
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/servlet/registry.xml
   
branches/registry/0_1/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
   
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/actions/SignOutAction.java

Modified: 
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/config/RegistryConfiguration.java
==============================================================================
--- 
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/config/RegistryConfiguration.java
        (original)
+++ 
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/config/RegistryConfiguration.java
        Thu Dec 20 23:27:55 2007
@@ -23,6 +23,9 @@
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.wso2.registry.RegistryException;
+import org.wso2.registry.secure.HSQLDBInitializer;
+import org.wso2.registry.jdbc.hsql.DBUtils;
+import org.wso2.registry.jdbc.utils.RegistryDataSource;
 import org.wso2.registry.i18n.Messages;
 
 import javax.servlet.ServletConfig;
@@ -31,9 +34,12 @@
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.InputStream;
+import java.io.File;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.sql.Connection;
+import java.sql.SQLException;
 
 public class RegistryConfiguration {
 
@@ -86,31 +92,64 @@
                     }
                     dataBaseConfiguration.setConfigName(dbName);
 
-                    OMElement dataSource = dbconfig.getFirstChildWithName(new 
QName("dataSource"));
-                    if (dataSource != null) {
-                        
dataBaseConfiguration.setDataSourceName(dataSource.getText());
+                    if (dbName.equals("sample")) {
 
-                    } else {
-
-                        OMElement userName = 
dbconfig.getFirstChildWithName(new QName("userName"));
-                        if (userName != null) {
-                            
dataBaseConfiguration.setUserName(userName.getText());
+                        
dataBaseConfiguration.setDbUrl(getDBURL(servletConfig));
+                        
dataBaseConfiguration.setDriverName("org.hsqldb.jdbcDriver");
+                        dataBaseConfiguration.setUserName("sa");
+                        dataBaseConfiguration.setPassWord("");
+
+                        // create the in-process database
+
+                        RegistryDataSource dataSource = null;
+                        try {
+                            dataSource = new RegistryDataSource(
+                                    dataBaseConfiguration.getDbUrl(),
+                                    dataBaseConfiguration.getDriverName(),
+                                    dataBaseConfiguration.getUserName(),
+                                    dataBaseConfiguration.getPassWord());
+
+                            DBUtils dbUtils = new DBUtils();
+                            Connection conn = dataSource.getConnection();
+                            dbUtils.initializeDatabase(conn);
+                            conn.close();
+
+                            HSQLDBInitializer dbInitializer = new 
HSQLDBInitializer();
+                            dbInitializer.createHSQLTables(dataSource);
+
+                        } catch (SQLException e) {
+                            String msg = "Create sample in-process database.";
+                            throw new RegistryException(msg);
                         }
 
-                        OMElement password = 
dbconfig.getFirstChildWithName(new QName("password"));
-                        if (password != null) {
-                            
dataBaseConfiguration.setPassWord(password.getText());
-                        }
-
-                        OMElement url = dbconfig.getFirstChildWithName(new 
QName("url"));
-                        if (url != null) {
-                            dataBaseConfiguration.setDbUrl(url.getText());
-                        }
+                    } else {
 
-                        OMElement driverName =
-                                dbconfig.getFirstChildWithName(new 
QName("driverName"));
-                        if (driverName != null) {
-                            
dataBaseConfiguration.setDriverName(driverName.getText());
+                        OMElement dataSource = 
dbconfig.getFirstChildWithName(new QName("dataSource"));
+                        if (dataSource != null) {
+                            
dataBaseConfiguration.setDataSourceName(dataSource.getText());
+
+                        } else {
+
+                            OMElement userName = 
dbconfig.getFirstChildWithName(new QName("userName"));
+                            if (userName != null) {
+                                
dataBaseConfiguration.setUserName(userName.getText());
+                            }
+
+                            OMElement password = 
dbconfig.getFirstChildWithName(new QName("password"));
+                            if (password != null) {
+                                
dataBaseConfiguration.setPassWord(password.getText());
+                            }
+
+                            OMElement url = dbconfig.getFirstChildWithName(new 
QName("url"));
+                            if (url != null) {
+                                dataBaseConfiguration.setDbUrl(url.getText());
+                            }
+
+                            OMElement driverName =
+                                    dbconfig.getFirstChildWithName(new 
QName("driverName"));
+                            if (driverName != null) {
+                                
dataBaseConfiguration.setDriverName(driverName.getText());
+                            }
                         }
                     }
 
@@ -191,4 +230,11 @@
     public Map getDbconfgigMap() {
         return dbconfgigMap;
     }
+
+    private String getDBURL(ServletConfig config) {
+
+        String webinf = config.getServletContext().getRealPath("/WEB-INF");
+        String dbURL = "jdbc:hsqldb:" + webinf + 
"/sample/sample-db;shutdown=true";
+        return dbURL;
+    }
 }

Modified: 
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/servlet/registry.xml
==============================================================================
--- 
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/servlet/registry.xml
     (original)
+++ 
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/servlet/registry.xml
     Thu Dec 20 23:27:55 2007
@@ -6,10 +6,6 @@
     </dbconfig>
 
     <dbconfig name="sample">
-        
<url>jdbc:hsqldb:/home/chathura/temp/reghsql/sample-db;shutdown=true</url>
-        <userName>sa</userName>
-        <password></password>
-        <driverName>org.hsqldb.jdbcDriver</driverName>
     </dbconfig>
 
     <dbconfig name="registry-connection">

Modified: 
branches/registry/0_1/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
==============================================================================
--- 
branches/registry/0_1/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
       (original)
+++ 
branches/registry/0_1/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
       Thu Dec 20 23:27:55 2007
@@ -56,7 +56,7 @@
 
         try {
             RegistryDataSource dataSource = new RegistryDataSource(
-                    
"jdbc:hsqldb:file:/home/chathura/temp/reghsql/sample-db;shutdown=true", 
"org.hsqldb.jdbcDriver", "sa", "");
+                    
"jdbc:hsqldb:file:/home/chathura/temp/sample/sample-db;shutdown=true", 
"org.hsqldb.jdbcDriver", "sa", "");
 
             DBUtils dbUtils = new DBUtils();
             Connection conn = dataSource.getConnection();

Modified: 
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/actions/SignOutAction.java
==============================================================================
--- 
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/actions/SignOutAction.java
        (original)
+++ 
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/actions/SignOutAction.java
        Thu Dec 20 23:27:55 2007
@@ -40,6 +40,8 @@
 
         request.getSession().setAttribute(ConsoleConstants.USER_REGISTRY, 
secureRegistry);
 
+        request.getSession().invalidate();
+
         return SUCCESS;
     }
 }

Added: 
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.log
==============================================================================
--- (empty file)
+++ 
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.log   
    Thu Dec 20 23:27:55 2007
@@ -0,0 +1,4 @@
+/*C3*/SET SCHEMA PUBLIC
+CONNECT USER SA
+/*C4*/SET SCHEMA PUBLIC
+CONNECT USER SA

Added: 
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.properties
==============================================================================
--- (empty file)
+++ 
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.properties
        Thu Dec 20 23:27:55 2007
@@ -0,0 +1,17 @@
+#HSQL Database Engine 1.8.0.8
+#Fri Dec 21 12:49:47 LKT 2007
+hsqldb.script_format=0
+runtime.gc_interval=0
+sql.enforce_strict_size=false
+hsqldb.cache_size_scale=8
+readonly=false
+hsqldb.nio_data_file=true
+hsqldb.cache_scale=14
+version=1.8.0
+hsqldb.default_table_type=memory
+hsqldb.cache_file_scale=1
+hsqldb.log_size=200
+modified=yes
+hsqldb.cache_version=1.7.0
+hsqldb.original_version=1.8.0
+hsqldb.compatible_version=1.8.0

Added: 
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.script
==============================================================================
--- (empty file)
+++ 
branches/registry/0_1/modules/webapps/src/main/resources/sample/sample-db.script
    Thu Dec 20 23:27:55 2007
@@ -0,0 +1,28 @@
+CREATE SCHEMA PUBLIC AUTHORIZATION DBA
+CREATE MEMORY TABLE ARTIFACTS(AID INTEGER GENERATED BY DEFAULT AS 
IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,PATH VARCHAR(500) NOT 
NULL,MEDIA_TYPE VARCHAR(500),DIRECTORY INTEGER NOT NULL,STATE INTEGER,AUTHOR 
VARCHAR(500),CREATED_TIME TIMESTAMP,LAST_UPDATER VARCHAR(500),LAST_UPDATED_TIME 
TIMESTAMP,DESCRIPTION VARCHAR(500),CONTENT BINARY,CONSTRAINT SYS_CT_46 
UNIQUE(PATH))
+CREATE MEMORY TABLE PROPERTIES(P_ID INTEGER GENERATED BY DEFAULT AS 
IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,AID INTEGER NOT NULL,PKEY 
VARCHAR(100) NOT NULL,PVALUE VARCHAR(500) NOT NULL,CONSTRAINT SYS_CT_50 
UNIQUE(AID,PKEY),CONSTRAINT SYS_FK_51 FOREIGN KEY(AID) REFERENCES 
ARTIFACTS(AID))
+CREATE MEMORY TABLE CHILDREN(CID INTEGER GENERATED BY DEFAULT AS 
IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,PARENT_ID INTEGER NOT NULL,CHILD_ID 
INTEGER NOT NULL,CONSTRAINT SYS_CT_57 UNIQUE(PARENT_ID,CHILD_ID),CONSTRAINT 
SYS_FK_58 FOREIGN KEY(PARENT_ID) REFERENCES ARTIFACTS(AID),CONSTRAINT SYS_FK_59 
FOREIGN KEY(CHILD_ID) REFERENCES ARTIFACTS(AID))
+CREATE MEMORY TABLE TAGS(TN_ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START 
WITH 0) NOT NULL PRIMARY KEY,TAG_NAME VARCHAR(500) NOT NULL,AID INTEGER NOT 
NULL,USER_ID VARCHAR(20) NOT NULL,TAGGED_TIME TIMESTAMP NOT NULL,CONSTRAINT 
SYS_CT_67 UNIQUE(TAG_NAME,AID,USER_ID),CONSTRAINT SYS_FK_68 FOREIGN KEY(AID) 
REFERENCES ARTIFACTS(AID))
+CREATE MEMORY TABLE COMMENTS(CM_ID INTEGER GENERATED BY DEFAULT AS 
IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,AID INTEGER NOT NULL,USER_ID 
VARCHAR(20) NOT NULL,COMMENT_TEXT VARCHAR(500) NOT NULL,COMMENTED_TIME 
TIMESTAMP NOT NULL,CONSTRAINT SYS_FK_74 FOREIGN KEY(AID) REFERENCES 
ARTIFACTS(AID))
+CREATE MEMORY TABLE RATINGS(R_ID INTEGER GENERATED BY DEFAULT AS 
IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,AID INTEGER NOT NULL,USER_ID 
VARCHAR(20) NOT NULL,RATING INTEGER NOT NULL,RATED_TIME TIMESTAMP NOT 
NULL,CONSTRAINT SYS_FK_79 FOREIGN KEY(AID) REFERENCES ARTIFACTS(AID))
+CREATE MEMORY TABLE LOGS(LOG_ID INTEGER GENERATED BY DEFAULT AS IDENTITY(START 
WITH 0) NOT NULL PRIMARY KEY,RID INTEGER,USER_ID VARCHAR(20) NOT 
NULL,LOGGED_TIME TIMESTAMP NOT NULL,ACTION INTEGER NOT NULL,ACTION_DATA 
VARCHAR(500))
+CREATE MEMORY TABLE VERSIONS(AID INTEGER NOT NULL,VN INTEGER NOT NULL,CONTENT 
BINARY,AUTHOR VARCHAR(500),UPDATED_TIME TIMESTAMP,CONSTRAINT SYS_CT_86 
UNIQUE(AID,VN),CONSTRAINT SYS_FK_87 FOREIGN KEY(AID) REFERENCES ARTIFACTS(AID))
+CREATE MEMORY TABLE DEPENDENCY(AID INTEGER NOT NULL,VN INTEGER NOT NULL,DAID 
INTEGER NOT NULL,DVN INTEGER NOT NULL,CONSTRAINT SYS_CT_92 
UNIQUE(AID,VN,DAID,DVN),CONSTRAINT SYS_FK_93 FOREIGN KEY(DAID) REFERENCES 
ARTIFACTS(AID),CONSTRAINT SYS_FK_94 FOREIGN KEY(AID) REFERENCES ARTIFACTS(AID))
+CREATE MEMORY TABLE UM_USERS(ID VARCHAR(255) NOT NULL PRIMARY KEY,USER_NAME 
VARCHAR(255) NOT NULL,PASSWORD VARCHAR(255) NOT NULL,CONSTRAINT SYS_CT_101 
UNIQUE(USER_NAME))
+CREATE MEMORY TABLE UM_ROLES(ID VARCHAR(255) NOT NULL PRIMARY KEY,ROLE_NAME 
VARCHAR(255) NOT NULL,CONSTRAINT SYS_CT_105 UNIQUE(ROLE_NAME))
+CREATE MEMORY TABLE UM_USER_ATTRIBUTES(ID VARCHAR(255) NOT NULL PRIMARY 
KEY,ATTR_NAME VARCHAR(255) NOT NULL,ATTR_VALUE VARCHAR(255),USER_ID 
VARCHAR(255),CONSTRAINT SYS_FK_109 FOREIGN KEY(USER_ID) REFERENCES UM_USERS(ID) 
ON DELETE CASCADE)
+CREATE MEMORY TABLE UM_ROLE_ATTRIBUTES(ID VARCHAR(255) NOT NULL PRIMARY 
KEY,ATTR_NAME VARCHAR(255) NOT NULL,ATTR_VALUE VARCHAR(255),ROLE_ID 
VARCHAR(255),CONSTRAINT SYS_FK_114 FOREIGN KEY(ROLE_ID) REFERENCES UM_ROLES(ID) 
ON DELETE CASCADE)
+CREATE MEMORY TABLE UM_PERMISSIONS(ID VARCHAR(255) NOT NULL PRIMARY 
KEY,RESOURCE_ID VARCHAR(255) NOT NULL,ACTION VARCHAR(255) NOT NULL)
+CREATE MEMORY TABLE UM_ROLE_PERMISSIONS(ID VARCHAR(255) NOT NULL PRIMARY 
KEY,PERMISSION_ID VARCHAR(255),ROLE_ID VARCHAR(255),IS_ALLOWED SMALLINT NOT 
NULL,CONSTRAINT SYS_FK_121 FOREIGN KEY(PERMISSION_ID) REFERENCES 
UM_PERMISSIONS(ID) ON DELETE CASCADE,CONSTRAINT SYS_FK_122 FOREIGN KEY(ROLE_ID) 
REFERENCES UM_ROLES(ID) ON DELETE CASCADE)
+CREATE MEMORY TABLE UM_USER_PERMISSIONS(ID VARCHAR(255) NOT NULL PRIMARY 
KEY,IS_ALLOWED SMALLINT NOT NULL,PERMISSION_ID VARCHAR(255),USER_ID 
VARCHAR(255),CONSTRAINT SYS_FK_129 FOREIGN KEY(PERMISSION_ID) REFERENCES 
UM_PERMISSIONS(ID) ON DELETE CASCADE,CONSTRAINT SYS_FK_130 FOREIGN KEY(USER_ID) 
REFERENCES UM_USERS(ID) ON DELETE CASCADE)
+CREATE MEMORY TABLE UM_USER_ROLES(ID VARCHAR(255) NOT NULL PRIMARY KEY,ROLE_ID 
VARCHAR(255),USER_ID VARCHAR(255),CONSTRAINT SYS_FK_137 FOREIGN KEY(ROLE_ID) 
REFERENCES UM_ROLES(ID) ON DELETE CASCADE,CONSTRAINT SYS_FK_138 FOREIGN 
KEY(USER_ID) REFERENCES UM_USERS(ID) ON DELETE CASCADE)
+ALTER TABLE ARTIFACTS ALTER COLUMN AID RESTART WITH 0
+ALTER TABLE PROPERTIES ALTER COLUMN P_ID RESTART WITH 0
+ALTER TABLE CHILDREN ALTER COLUMN CID RESTART WITH 0
+ALTER TABLE TAGS ALTER COLUMN TN_ID RESTART WITH 0
+ALTER TABLE COMMENTS ALTER COLUMN CM_ID RESTART WITH 0
+ALTER TABLE RATINGS ALTER COLUMN R_ID RESTART WITH 0
+ALTER TABLE LOGS ALTER COLUMN LOG_ID RESTART WITH 0
+CREATE USER SA PASSWORD ""
+GRANT DBA TO SA
+SET WRITE_DELAY 10

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to