Date Revision Description Author
1/21/2003 0.9 First Draft Kenneth Lewelling
1/28/2003 0.91 Added links to use cases. Add UC15 and UC16. Removed UC10 and UC11 Kenneth Lewelling
2/13/2003 0.92 Removed the Struts Administrative view, integrating with the OpenCms Module Administrative view. Edited requirements related to feature 1. Edited requirements related to feature 4. Removed feature 7. Kenneth Lewelling
4/4/2003 0.93 Converted document to xml for use with Maven. Kenneth Lewelling

1 Introduction

1.1 Purpose

The purpose of this document is to describe the external behavior of OpenCms-Struts, functional requirements, non-functional requirements, and design constraints, in terms external and internal development teams will understand. This is an essential document to communicate to both internal and external developement teams what exactly is being developed. The requirements will be tied to features defined in the Vision document.

1.2 Scope

This SRS provides a detailed look at the OpenCms-Struts project defined in the Vision document. The features defined in the Vision document will be expanded on in this document, providing requirements needed to fulfill each feature. Use cases are also provided to give a user oriented look at the system as well as group together releated requirements to create a complete picture of the system.

This core OpenCms and Struts functionality are beyond the scope of this project. OpenCms and Struts application development are also outside the scope of this project. Using Struts within OpenCms, and managing Struts content within OpenCms are within the scope of this project.

1.3 References

OpenCms-Struts Vision

1.4 Assumptions and Dependencies

  • Struts 1.1
  • OpenCms v5

2 Use-Case Model Survey

This section provides an overview of the user-case model. A diagram of each actor with its associated use-cases is presented along with a short description of each use case.

Web Developer

UC1 Cr eate JSP pages with Struts taglibs - Explains how to use Struts' tag libraries within OpenCms

UC2 Maintain Web Content for Struts Applications - Shows how OpenCms can be used to maintain web content for Struts applications.

UC14 Specifiy declaritive security for Struts resources - Details how Struts resources are secured within the OpenCms security framework.

Struts Developer

UC3 Create "Action" Resource in VFS - Describes how "Action" Resources are created within the VFS

UC7 Delete "Action" Resource from VFS - Describes how "Action" Resources are deleted from the VFS

UC6 Edit Struts Configuration File - Explains how the Struts configuration file editing process

UC4 Add action mapping definition to Struts config file - Explains syncronization process between the Struts configuration file and the "Action" resources in the VFS.

UC5 Remove action mapping definition from Struts config file - Explains syncronization process between the Struts configuration file and the "Action" resources in the VFS.

UC15 Rename "Action" Resource in VFS - Explains how to rename a Struts "Action" resource in the OpenCms VFS.

Struts Administrator

UC8 Import OpenCms Module with Struts application - Explains how Struts is integrated with the OpenCms import module process.

UC9 Export OpenCms Module with Struts application - Explains how Struts is integrated with the OpenCms export project process.

UC12 Creation of Struts Application - Explains how to create Struts applications.

UC13 Deletion of Struts Application - Explains how to delete Struts applications.

3 Actor Survey

Web Developer

An individual familiar with web site presentation development. Web developers create HTML/XML/JSP for a Struts application optionally using Struts and OpenCms taglibs. This role will also maintain web content for the application as well as any presentation maintenance. With the exception of OpenCms components, this role can be performed outside of OpenCms and manually import their work at a later date.

Struts Developer

An individual who is familiar with the Struts environment and develops the applications "backend" and ties it to the presentation using Struts Actions. This role can also be performed outside of OpenCms, with the exception of OpenCms components, and imported at a later date. The Struts developer can use its own programmatic security model or defer security to the OpenCms-Struts administrator to use OpenCms's declarative security. Struts developers also configure the struts.xml file for their application.

Struts Administrator

Responsible for the declarative security of Struts resources as well as configuring the OpenCms environment for Struts applications.

4 Requirements

Funcational requirements will be organized by features. The feature will be listed then all related requirements.

1 Integration into the Module Administrative View

SRS 1.1 - The module administrative view will list all current modules and the status of their Struts application if any.

SRS 1.2 - New Struts applications can be created using the module administrative view's icon.

SRS 1.3 - Struts support for a module can be edited through the "Administer" context menu.

2 Declarative security for Struts Actions.

SRS 2.1 - Access to Struts "Action" resources in the OpenCms VFS can be restricted by Owner, Group, and Other. This mechanism works like any other OpenCms resource with one exception listed below.

SRS 2.2 - "Action" resources can only be deleted by users in the Admin group, no manipulation of permisions will alter this.

3 Action resource management through the VFS

SRS 3.1 - Users in the Admin group can create "Action" resources from the VFS.

SRS 3.2 - A new "Action" resource Wizard will prompt the user for the following information: the module name which contains the Struts application the action is for. This information will be used to add an action mapping definition in the appropriate Struts configuration file. Any further information must be added directly to the Struts configuration file. In future releases more information will be requested when creating "Action" resources from th e VFS.

SRS 3.3 - Actions' type will be labeled as "action" and will have the ability to lock, publish, rename, delete, Change owner, Change group, Change permissions, History, and Properties.

SRS 3.4 - The rename and delete options will cause changes in the Struts configuration file. Rename will change the name of an action mapping definition for that action, and delete will remove the action mapping the "Action" resource represents.

4 Direct editing of Struts XML configuration file.

SRS 4.1 - Users with appropraite permissions can directly edit the Struts XML configuration files that belong to Struts applications from the VFS. The configuration file will be located under the module directory in another directory labeled struts.

SRS 4.2 - Once the configuration file is saved it is parsed, Struts will be restarted. If the configuration file can not be parsed it will be saved and the module's Struts status will be changed to "invalid".

5 Action resource management through Struts XML configuration file.

SRS 5.1 - Any changes to action mapping definitions while directly editing the Struts XML configuration file will be reflected in the VFS.

SRS 5.2 - An action mapping definition added to the configuration file will result in a new "Acion" resource will added to the VFS.

SRS 5.3 - An action mapping definition removed from the configuration file will result in the coresponding "Action" resource being removed as well.

6 Content management features for native Struts applications.

SRS 6.1 - All Struts taglibs are available for use in OpenCms for JSP pages to use.

SRS 6.2 - JSP pages used by Struts applications can be manged just like any other OpenCms JSP file.

SRS 6.3 - Struts configuration files will be managed through the Struts Administrative View.

8 Import/Export of OpenCms modules with Struts applications.

SRS 8.1 - Modules that include "Action" resources will also include the Action's Struts XML configuration file.

SRS 8.2 - When a module that includes a Struts XML configuration file is imported a new Struts application is created. The configuration file is then parsed and Struts is restarted.

9 Struts application framework integration with OpenCms.

SRS 9.1 - OpenCms will intercept requests to Struts actions and forward them to an instance of Struts running within the OpenCms servlet.

SRS 9.2 - JSP files refrenced within Struts will be handled by OpenCms.

SRS 9.3 - Struts will be integrated into the servlet lifecycle of OpenCms. The CmsHttpServlet init method will initialize an instance of Struts, and the destroy method will call Struts destroy method.

SRS 9.4 - Struts applications are integrated within the OpenCms module administrative view. For more information see SRS1.1-1.3.

10 Support for multiple Struts applications.

SRS 10.1 - Multiple modules can support Struts, based on the Struts 1.1 support for sub-applications.

SRS 10.2 - All Struts applications will be prefixed with OpenCms as its root namespace, per the requirement that Struts 1.1 sub-applications include a root namespace.

11 Easy installation

SRS 11.1 - OpenCms-Struts can be installed with the exactly same steps as Open Cms v5.

SRS 11.2 - OpenCms-Struts will include an example Struts application in the default installation.