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