Author: chathura
Date: Thu Dec 20 09:06:37 2007
New Revision: 11613
Log:
Added complete database script for derby by combining registry + user manager
scripts.
Added a separate versions page for displaying versions.
Fixed the restore version link.
Added:
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-complete.sql
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-registry.sql
- copied, changed from r11598,
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-script.sql
branches/registry/0_1/modules/core/src/main/resources/database-scripts/hsql-registry.sql
branches/registry/0_1/modules/core/src/main/resources/database-scripts/mysql-registry.sql
- copied, changed from r11598,
branches/registry/0_1/modules/core/src/main/resources/database-scripts/mysql-script.sql
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/beans/VersionsBean.java
branches/registry/0_1/modules/webapps/src/main/webapp/admin/versions.jsp
Removed:
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-script.sql
branches/registry/0_1/modules/core/src/main/resources/database-scripts/mysql-script.sql
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/jdbc/hsql/DBUtils.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/conf/web.xml
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/utils/ResourcesUtil.java
branches/registry/0_1/modules/webapps/src/main/webapp/admin/advanced-search.jsp
branches/registry/0_1/modules/webapps/src/main/webapp/admin/registry-resources.jsp
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 09:06:37 2007
@@ -67,7 +67,7 @@
}
if (in == null) {
throw new
RegistryException(Messages.getMessage("inputstream.null",
-
"org/wso2/servlet/registry.xml"));
+ "org/wso2/servlet/registry.xml"));
}
}
try {
Modified:
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/jdbc/hsql/DBUtils.java
==============================================================================
---
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/jdbc/hsql/DBUtils.java
(original)
+++
branches/registry/0_1/modules/core/src/main/java/org/wso2/registry/jdbc/hsql/DBUtils.java
Thu Dec 20 09:06:37 2007
@@ -128,13 +128,12 @@
s.executeUpdate(artifactsTable);
s.executeUpdate(propertiesTable);
s.executeUpdate(childrenTable);
- //s.executeUpdate(tagsTable);
s.executeUpdate(tagsTable);
s.executeUpdate(commentsTable);
s.executeUpdate(ratingsTable);
s.executeUpdate(logsTable);
- //creating version related tables
+ // creating version related tables
s.executeUpdate(versionTable);
s.executeUpdate(dependencyTable);
}
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 09:06:37 2007
@@ -1,22 +1,26 @@
<wso2regsitry>
- <currentConfig>in-memory</currentConfig>
+ <currentConfig>sample</currentConfig>
<dbconfig name="in-memory">
</dbconfig>
- <dbconfig name="built-in">
+ <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="DB1">
- <url>url</url>
+ <dbconfig name="registry-connection">
+ <url>db-connection-url</url>
<userName>userName</userName>
<password>password</password>
<driverName>driverName</driverName>
</dbconfig>
- <dbconfig name="DB2">
- <dataSource>dataSource</dataSource>
+ <dbconfig name="registry-datasource">
+ <dataSource>dataSourceName</dataSource>
</dbconfig>
</wso2regsitry>
\ No newline at end of file
Added:
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-complete.sql
==============================================================================
--- (empty file)
+++
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-complete.sql
Thu Dec 20 09:06:37 2007
@@ -0,0 +1,89 @@
+CREATE TABLE ARTIFACTS (AID INTEGER GENERATED ALWAYS AS IDENTITY,
+ 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 (10000),
+ CONTENT BLOB,
+ PRIMARY KEY (AID),
+ UNIQUE(PATH));
+
+CREATE TABLE PROPERTIES (P_ID INTEGER GENERATED ALWAYS AS IDENTITY,
+ AID INTEGER NOT NULL,
+ PKEY VARCHAR (100) NOT NULL,
+ PVALUE VARCHAR (500) NOT NULL,
+ PRIMARY KEY (P_ID),
+ UNIQUE (AID, PKEY),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE CHILDREN (CID INTEGER GENERATED ALWAYS AS IDENTITY,
+ PARENT_ID INTEGER NOT NULL,
+ CHILD_ID INTEGER NOT NULL,
+ PRIMARY KEY (CID),
+ UNIQUE (PARENT_ID, CHILD_ID),
+ FOREIGN KEY (PARENT_ID) REFERENCES ARTIFACTS (AID),
+ FOREIGN KEY (CHILD_ID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE TAGS (TN_ID INTEGER GENERATED ALWAYS AS IDENTITY,
+ TAG_NAME VARCHAR (500) NOT NULL,
+ AID INTEGER NOT NULL,
+ USER_ID VARCHAR (20) NOT NULL,
+ TAGGED_TIME TIMESTAMP NOT NULL,
+ PRIMARY KEY (TN_ID),
+ UNIQUE (TAG_NAME, AID, USER_ID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE COMMENTS (CM_ID INTEGER GENERATED ALWAYS AS IDENTITY,
+ AID INTEGER NOT NULL,
+ USER_ID VARCHAR (20) NOT NULL,
+ COMMENT_TEXT VARCHAR (500) NOT NULL,
+ COMMENTED_TIME TIMESTAMP NOT NULL,
+ PRIMARY KEY (CM_ID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE LOGS (LOG_ID INTEGER GENERATED ALWAYS AS IDENTITY,
+ RID INTEGER,
+ USER_ID VARCHAR (20) NOT NULL,
+ LOGGED_TIME TIMESTAMP NOT NULL,
+ ACTION INTEGER NOT NULL,
+ ACTION_DATA VARCHAR (500),
+ PRIMARY KEY (LOG_ID));
+
+CREATE TABLE RATINGS (R_ID INTEGER GENERATED ALWAYS AS IDENTITY,
+ AID INTEGER NOT NULL,
+ USER_ID VARCHAR (20) NOT NULL,
+ RATING INTEGER NOT NULL,
+ RATED_TIME TIMESTAMP NOT NULL,
+ PRIMARY KEY (R_ID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE VERSIONS (
+ AID INTEGER NOT NULL,
+ VN INTEGER NOT NULL,
+ CONTENT BLOB,
+ AUTHOR VARCHAR (500),
+ UPDATED_TIME TIMESTAMP,
+ UNIQUE (AID,VN),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE DEPENDENCY (
+ AID INTEGER NOT NULL,
+ VN INTEGER NOT NULL,
+ DAID INTEGER NOT NULL,
+ DVN INTEGER NOT NULL,
+ UNIQUE (AID,VN,DAID,DVN),
+ FOREIGN KEY (DAID) REFERENCES ARTIFACTS (AID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE UM_USERS (ID VARCHAR(255), USER_NAME VARCHAR(255) NOT NULL
UNIQUE, PASSWORD VARCHAR(255) NOT NULL, PRIMARY KEY (ID));
+CREATE TABLE UM_USER_ATTRIBUTES (ID VARCHAR(255), ATTR_NAME VARCHAR(255) NOT
NULL, ATTR_VALUE VARCHAR(255), USER_ID VARCHAR(255), FOREIGN KEY (USER_ID)
REFERENCES UM_USERS(ID) ON DELETE CASCADE, PRIMARY KEY (ID));
+CREATE TABLE UM_ROLES (ID VARCHAR(255), ROLE_NAME VARCHAR(255) NOT NULL
UNIQUE, PRIMARY KEY (ID));
+CREATE TABLE UM_ROLE_ATTRIBUTES (ID VARCHAR(255), ATTR_NAME VARCHAR(255) NOT
NULL, ATTR_VALUE VARCHAR(255), ROLE_ID VARCHAR(255), FOREIGN KEY (ROLE_ID)
REFERENCES UM_ROLES(ID) ON DELETE CASCADE, PRIMARY KEY (ID));
+CREATE TABLE UM_PERMISSIONS (ID VARCHAR(255), RESOURCE_ID VARCHAR(255) NOT
NULL, ACTION VARCHAR(255) NOT NULL, PRIMARY KEY (ID));
+CREATE TABLE UM_ROLE_PERMISSIONS (ID VARCHAR(255), PERMISSION_ID VARCHAR(255),
ROLE_ID VARCHAR(255), IS_ALLOWED SMALLINT NOT NULL, FOREIGN KEY (PERMISSION_ID)
REFERENCES UM_PERMISSIONS(ID) ON DELETE CASCADE, FOREIGN KEY (ROLE_ID)
REFERENCES UM_ROLES(ID) ON DELETE CASCADE, PRIMARY KEY (ID));
+CREATE TABLE UM_USER_PERMISSIONS (ID VARCHAR(255), IS_ALLOWED SMALLINT NOT
NULL, PERMISSION_ID VARCHAR(255), USER_ID VARCHAR(255), FOREIGN KEY
(PERMISSION_ID) REFERENCES UM_PERMISSIONS(ID) ON DELETE CASCADE, FOREIGN KEY
(USER_ID) REFERENCES UM_USERS(ID) ON DELETE CASCADE, PRIMARY KEY (ID));
+CREATE TABLE UM_USER_ROLES (ID VARCHAR(255), ROLE_ID VARCHAR(255), USER_ID
VARCHAR(255), FOREIGN KEY (ROLE_ID) REFERENCES UM_ROLES(ID) ON DELETE CASCADE,
FOREIGN KEY (USER_ID) REFERENCES UM_USERS(ID) ON DELETE CASCADE, PRIMARY KEY
(ID));
Copied:
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-registry.sql
(from r11598,
branches/registry/0_1/modules/core/src/main/resources/database-scripts/derby-script.sql)
==============================================================================
Added:
branches/registry/0_1/modules/core/src/main/resources/database-scripts/hsql-registry.sql
==============================================================================
--- (empty file)
+++
branches/registry/0_1/modules/core/src/main/resources/database-scripts/hsql-registry.sql
Thu Dec 20 09:06:37 2007
@@ -0,0 +1,78 @@
+CREATE TABLE ARTIFACTS (AID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ 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,
+ PRIMARY KEY (AID),
+ UNIQUE(PATH));
+
+CREATE TABLE PROPERTIES (P_ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ AID INTEGER NOT NULL,
+ PKEY VARCHAR (100) NOT NULL,
+ PVALUE VARCHAR (500) NOT NULL,
+ PRIMARY KEY (P_ID),
+ UNIQUE (AID, PKEY),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE CHILDREN (CID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ PARENT_ID INTEGER NOT NULL,
+ CHILD_ID INTEGER NOT NULL,
+ PRIMARY KEY (CID),
+ UNIQUE (PARENT_ID, CHILD_ID),
+ FOREIGN KEY (PARENT_ID) REFERENCES ARTIFACTS (AID),
+ FOREIGN KEY (CHILD_ID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE TAGS (TN_ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ TAG_NAME VARCHAR (500) NOT NULL,
+ AID INTEGER NOT NULL,
+ USER_ID VARCHAR (20) NOT NULL,
+ TAGGED_TIME TIMESTAMP NOT NULL,
+ PRIMARY KEY (TN_ID),
+ UNIQUE (TAG_NAME, AID, USER_ID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE COMMENTS (CM_ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ AID INTEGER NOT NULL,
+ USER_ID VARCHAR (20) NOT NULL,
+ COMMENT_TEXT VARCHAR (500) NOT NULL,
+ COMMENTED_TIME TIMESTAMP NOT NULL,
+ PRIMARY KEY (CM_ID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE LOGS (LOG_ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ RID INTEGER,
+ USER_ID VARCHAR (20) NOT NULL,
+ LOGGED_TIME TIMESTAMP NOT NULL,
+ ACTION INTEGER NOT NULL,
+ ACTION_DATA VARCHAR (500),
+ PRIMARY KEY (LOG_ID));
+
+CREATE TABLE RATINGS (R_ID INTEGER GENERATED BY DEFAULT AS IDENTITY,
+ AID INTEGER NOT NULL,
+ USER_ID VARCHAR (20) NOT NULL,
+ RATING INTEGER NOT NULL,
+ RATED_TIME TIMESTAMP NOT NULL,
+ PRIMARY KEY (R_ID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE VERSIONS (AID INTEGER NOT NULL,
+ VN INTEGER NOT NULL,
+ CONTENT BINARY,
+ AUTHOR VARCHAR (500),
+ UPDATED_TIME TIMESTAMP,
+ UNIQUE (AID,VN),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
+
+CREATE TABLE DEPENDENCY (AID INTEGER NOT NULL,
+ VN INTEGER NOT NULL,
+ DAID INTEGER NOT NULL,
+ DVN INTEGER NOT NULL,
+ UNIQUE (AID,VN,DAID,DVN),
+ FOREIGN KEY (DAID) REFERENCES ARTIFACTS (AID),
+ FOREIGN KEY (AID) REFERENCES ARTIFACTS (AID));
\ No newline at end of file
Copied:
branches/registry/0_1/modules/core/src/main/resources/database-scripts/mysql-registry.sql
(from r11598,
branches/registry/0_1/modules/core/src/main/resources/database-scripts/mysql-script.sql)
==============================================================================
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 09:06:37 2007
@@ -21,11 +21,16 @@
import junit.framework.TestCase;
import org.wso2.registry.*;
+import org.wso2.registry.secure.HSQLDBInitializer;
+import org.wso2.registry.jdbc.utils.RegistryDataSource;
+import org.wso2.registry.jdbc.hsql.DBUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
+import java.sql.SQLException;
+import java.sql.Connection;
public class JDBCRegistryTest extends TestCase {
@@ -47,6 +52,25 @@
}
}
+ public void dummyTest() {
+
+ try {
+ RegistryDataSource dataSource = new RegistryDataSource(
+
"jdbc:hsqldb:file:/home/chathura/temp/reghsql/sample-db;shutdown=true",
"org.hsqldb.jdbcDriver", "sa", "");
+
+ DBUtils dbUtils = new DBUtils();
+ Connection conn = dataSource.getConnection();
+ dbUtils.initializeDatabase(conn);
+ conn.close();
+
+ HSQLDBInitializer dbInitializer = new HSQLDBInitializer();
+ dbInitializer.createHSQLTables(dataSource);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
public void testFlatResourceHandling() {
Resource r1 = new Resource();
r1.setAuthorUserName("Chathura");
Modified: branches/registry/0_1/modules/webapps/conf/web.xml
==============================================================================
--- branches/registry/0_1/modules/webapps/conf/web.xml (original)
+++ branches/registry/0_1/modules/webapps/conf/web.xml Thu Dec 20 09:06:37 2007
@@ -43,6 +43,10 @@
<servlet-name>WebServlet</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>WebServlet</servlet-name>
+ <url-pattern>/versions/*</url-pattern>
+ </servlet-mapping>
<welcome-file-list>
<welcome-file>admin/index.jsp</welcome-file>
Modified:
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
==============================================================================
---
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
(original)
+++
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
Thu Dec 20 09:06:37 2007
@@ -25,6 +25,7 @@
import org.wso2.registry.servlet.Utils;
import org.wso2.registry.web.actions.*;
import org.wso2.registry.web.beans.AdminBean;
+import org.wso2.registry.web.beans.VersionsBean;
import org.wso2.registry.web.utils.AdminUtil;
import org.wso2.registry.web.utils.TagUtil;
import org.wso2.registry.web.utils.ResourcesUtil;
@@ -460,6 +461,36 @@
forwardToResources(request, response, path);
+ } else if (controlPart.startsWith(RegistryConstants.PATH_SEPARATOR +
UIConstants.VERSIONS_PATH)) {
+
+ if (uri.equals("") || uri.endsWith(UIConstants.VERSIONS_PATH +
RegistryConstants.PATH_SEPARATOR)) {
+ path = RegistryConstants.ROOT_PATH;
+
+ } else {
+ path = uri.substring((contextRoot +
RegistryConstants.PATH_SEPARATOR + UIConstants.VERSIONS_PATH).
+ length(), uri.length());
+ }
+
+ // if user is browsing an old version of the resource, we append
it to the path, so that
+ // the backend registry gives the details of the version
+ String qPart = request.getQueryString();
+ if (qPart != null && qPart.startsWith("v")) {
+ path = path + "?" + qPart;
+ }
+
+ VersionsBean versionsBean = null;
+ try {
+ versionsBean = ResourcesUtil.getVersions(request, path);
+ } catch (RegistryException e) {
+ request.getSession().setAttribute(UIConstants.ERROR_MESSAGE,
e.getMessage());
+ request.getRequestDispatcher(UIConstants.ERROR_JSP);
+ return;
+ }
+
+ request.getSession().setAttribute(UIConstants.VERSIONS_BEAN,
versionsBean);
+
request.getRequestDispatcher(UIConstants.VERSIONS_JSP).forward(request,
response);
+ return;
+
} else if (controlPart.startsWith(RegistryConstants.PATH_SEPARATOR +
UIConstants.RESOURCES_PATH)) {
if (uri.equals("") || uri.endsWith(UIConstants.RESOURCES_PATH +
RegistryConstants.PATH_SEPARATOR)) {
@@ -485,7 +516,7 @@
request.getRequestDispatcher(UIConstants.ERROR_JSP);
return;
}
-
+
if (resource == null) {
request.getSession().setAttribute(UIConstants.ERROR_MESSAGE,
"404 Not Found");
request.getRequestDispatcher(UIConstants.ERROR_JSP);
@@ -696,6 +727,17 @@
}
response.sendRedirect("/wso2registry/web/");
+
+ } else if (command.equals("/restore")) {
+
+ try {
+ ResourcesUtil.restoreVersion(request);
+ } catch (RegistryException e) {
+ setErrorMessage(request, e.getMessage());
+ forwardToResources(request, response, path);
+ }
+
+ response.sendRedirect("/wso2registry/web" + path);
}
}
Modified:
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
==============================================================================
---
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
(original)
+++
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/UIConstants.java
Thu Dec 20 09:06:37 2007
@@ -26,10 +26,12 @@
public static final String ADVANCED_SEARCH_BEAN = "advanced_search";
public static final String SEARCH_BEAN = "search";
public static final String USER_BEAN = "userBean";
+ public static final String VERSIONS_BEAN = "versions.bean";
public static final String AJAX_RATING_BEAN = "ajaxRating";
public static final String AJAX_DESCRIPTION_STRING = "ajaxDesc";
public static final String RESOURCES_PATH = "resources";
+ public static final String VERSIONS_PATH = "versions";
public static final String WEB_PATH = "web";
public static final String SYSTEM_PATH = "system";
public static final String PATH_ATTR = "path";
@@ -48,6 +50,7 @@
public static final String ADVANCED_SEARCH_JSP =
"/admin/advanced-search.jsp";
public static final String SEARCH_JSP = "/admin/search.jsp";
public static final String USER_JSP = "/admin/user.jsp";
+ public static final String VERSIONS_JSP = "/admin/versions.jsp";
public static final String AJAX_RATING_JSP = "/admin/ajax_rating.jsp";
public static final String AJAX_DESCRIPTION_JSP = "/admin/ajax_desc.jsp";
public static final String RESOURCE_DETAILS_JSP =
"/admin/resources_details.jsp";
Added:
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/beans/VersionsBean.java
==============================================================================
--- (empty file)
+++
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/beans/VersionsBean.java
Thu Dec 20 09:06:37 2007
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.wso2.registry.web.beans;
+
+import java.util.List;
+import java.util.ArrayList;
+
+public class VersionsBean {
+
+ private List versionPaths = new ArrayList();
+
+ public List getVersionPaths() {
+ return versionPaths;
+ }
+
+ public void setVersionPaths(List versionPaths) {
+ this.versionPaths = versionPaths;
+ }
+}
Modified:
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/utils/ResourcesUtil.java
==============================================================================
---
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/utils/ResourcesUtil.java
(original)
+++
branches/registry/0_1/modules/webapps/src/main/java/org/wso2/registry/web/utils/ResourcesUtil.java
Thu Dec 20 09:06:37 2007
@@ -19,6 +19,8 @@
import org.wso2.registry.secure.SecureRegistry;
import org.wso2.registry.RegistryException;
import org.wso2.registry.Resource;
+import org.wso2.registry.web.beans.VersionsBean;
+import org.wso2.registry.web.actions.utils.VersionPath;
import javax.servlet.http.HttpServletRequest;
@@ -34,4 +36,40 @@
return null;
}
}
+
+ public static VersionsBean getVersions(HttpServletRequest request, String
path)
+ throws RegistryException {
+
+ SecureRegistry secureRegistry = CommonUtil.getUserRegistry(request);
+
+ VersionsBean versionsBean = new VersionsBean();
+
+ String[] versions = secureRegistry.getVersions(path);
+ for (int i = 0; i < versions.length; i++) {
+ VersionPath versionPath = new VersionPath();
+ versionPath.setCompleteVersionPath(versions[i]);
+
+ if (versions[i].indexOf("?v=") > 0) {
+ long versionNumber = new
Long(versions[i].split("\\?v=")[1]).longValue();
+ versionPath.setVersionNumber(versionNumber);
+ }
+
+ Resource versionResource = secureRegistry.get(versions[i]);
+ if (versionResource != null) {
+
versionPath.setUpdater(versionResource.getLastUpdaterUserName());
+ versionPath.setUpdatedOn(versionResource.getLastModified());
+ }
+
+ versionsBean.getVersionPaths().add(versionPath);
+ }
+
+ return versionsBean;
+ }
+
+ public static void restoreVersion(HttpServletRequest request) throws
RegistryException {
+
+ SecureRegistry secureRegistry = CommonUtil.getUserRegistry(request);
+ String versionPath = request.getParameter("versionPath");
+ secureRegistry.restoreVersion(versionPath);
+ }
}
Modified:
branches/registry/0_1/modules/webapps/src/main/webapp/admin/advanced-search.jsp
==============================================================================
---
branches/registry/0_1/modules/webapps/src/main/webapp/admin/advanced-search.jsp
(original)
+++
branches/registry/0_1/modules/webapps/src/main/webapp/admin/advanced-search.jsp
Thu Dec 20 09:06:37 2007
@@ -46,18 +46,18 @@
</div>
<div class="box1-mid" id="userExpanded">
<form id="advancedSearchForm" name="advancedSearch"
onsubmit="return true;" action="/wso2registry/system/search/advanced"
method="get">
- <table cellpadding="0" cellspacing="0" border="0"
class="form-table">
- <tr>
- <td class="leftColumn">Search For</td>
- <td>
- <select name="" id="searchFor"
onchange="showHideSearch();">
- <option
value="0">Resource</option>
- <option
value="1">Comments</option>
- </select>
-
- </td>
- </tr>
- </table>
+ <%--<table cellpadding="0" cellspacing="0" border="0"
class="form-table">--%>
+ <%--<tr>--%>
+ <%--<td class="leftColumn">Search
For</td>--%>
+ <%--<td>--%>
+ <%--<select name=""
id="searchFor" onchange="showHideSearch();">--%>
+ <%--<option
value="0">Resource</option>--%>
+ <%--<option
value="1">Comments</option>--%>
+ <%--</select>--%>
+
+ <%--</td>--%>
+ <%--</tr>--%>
+ <%--</table>--%>
Modified:
branches/registry/0_1/modules/webapps/src/main/webapp/admin/registry-resources.jsp
==============================================================================
---
branches/registry/0_1/modules/webapps/src/main/webapp/admin/registry-resources.jsp
(original)
+++
branches/registry/0_1/modules/webapps/src/main/webapp/admin/registry-resources.jsp
Thu Dec 20 09:06:37 2007
@@ -554,7 +554,7 @@
</table>
</div>
<div class="box2-mid" id="versionsMinimized">
- Expand to view details
+ <a href="/wso2registry/versions<%=details.getPath()%>">View versions</a>
</div>
<div class="box2-mid" id="versionsExpanded" style="display:none;">
Added: branches/registry/0_1/modules/webapps/src/main/webapp/admin/versions.jsp
==============================================================================
--- (empty file)
+++ branches/registry/0_1/modules/webapps/src/main/webapp/admin/versions.jsp
Thu Dec 20 09:06:37 2007
@@ -0,0 +1,43 @@
+<%@ page import="org.wso2.registry.web.actions.utils.VersionPath" %>
+<%@ page import="java.util.Iterator" %>
+<%@ page import="java.util.List" %>
+<%@ page import="org.wso2.registry.web.UIConstants" %>
+<%@ page import="org.wso2.registry.web.beans.VersionsBean" %>
+<%--
+ Created by IntelliJ IDEA.
+ User: chathura
+ Date: Dec 20, 2007
+ Time: 11:45:43 AM
+ To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head><title>Simple jsp page</title></head>
+
+<body>
+
+<div class="box2-mid" id="versionsList">
+
+ <%
+ VersionsBean versionBean = (VersionsBean)
request.getSession().getAttribute(UIConstants.VERSIONS_BEAN);
+ Iterator iVersions = versionBean.getVersionPaths().iterator();
+ while (iVersions.hasNext()) {
+ VersionPath versionPath = (VersionPath) iVersions.next();
+ %>
+
+ <h3>Version <%=versionPath.getVersionNumber()%></h3>
+
+ <strong style="color:#696969;">Last Modified:</strong><br>
+ <%=versionPath.getUpdatedOn().toString()%>
+ <br><strong style="color:#696969;">By:</strong>
<%=versionPath.getUpdater()%>
+ <br>
+ <div style="margin-bottom:10px;">
+ <a href="/wso2registry/web<%=versionPath.getCompleteVersionPath()%>"
title="Details">Details <img src="/wso2registry/admin/images/icon-details.gif"
border="0" hspace="3" /></a>
+ <a
href="/wso2registry/system/restore?versionPath=<%=versionPath.getCompleteVersionPath()%>"
title="Restore" style="margin-left:5px;">Restore <img
src="/wso2registry/admin/images/icon-restore.gif" border="0" /></a>
+ </div>
+
+
+ <% } %>
+</div>
+</body>
+</html>
\ No newline at end of file
_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev