The document discusses a technical solution for implementing a content repository using Oracle Fusion and Apache Jackrabbit. It introduces WebDAV and Jackrabbit, describes a high-level architecture including Oracle Fusion groupware components and a pilot sample to view appointments of a week. It provides details on the use case, design, sequence diagram, model classes, and pseudocode.
9. II.1.
High-‐Level
Architecture
CLIENT SERVER COLLABORATION SERVER
JSR-168 CONTAINER
MS Exchange 2003
JSR-168 PORTLETS – Spring Portlet MVC Framework
Presentation/Interface Tier
Lotus Domino
Email
Connector
JSTL
JSTL
XMLBeans
Java Transaction API
Java Server Pages
WebDAV Server
Java Server Pages
JDOM (JSR 102)
Calendar
EnterConnect Groupware API
Struts
Struts
Spring Web Contact
Web browser
Services Tier
Jakarta Slide API
OpenGroupware
(IE, FireFox, etc.) Task
Connector
Spring Java Transaction
Uploaded
Spring
Spring Document
Remoting Message-
Remoting Driven
Jakarta Commons HTTP Client
Spring Beans Enterprise
Jakarta Commons Logging
Java Beans
INTERNET/
INTRANET Domino Lotus Server
Integration Tier
Connector
Exchange
Spring
Email
Spring Messaging
Java Database
WebDAV Server
Connectivity Java Calendar
Messaging
Contact
Enterprise Application Services Task
Authentication/ Logging/
Uploaded
Authorization Tracing
Document
9
10. II.2.1.
EC
Groupware
Component
EnterConnect Groupware API: A unified interface for all connectors that
access the groupware servers via WebDAV, applying Singleton, Façade and
Factory design patterns
All connectors utilize the Jakarta
EnterConnect Groupware API
Slide (client-side) API to send
requests to and receive responses
Exchange OpenGroupware Lotus Domino from a variety of WebDAV-enabled
Connector Connector Connector groupware servers
MS Exchange 2003
Email
Jakarta Slide API
WebDAV Server
XML HTTP request Calendar
Jakarta Commons HTTP Client JDOM (JSR 102)
Contact
XML HTTP response
Jakarta Commons Logging Java Transaction API Task
Uploaded
Document
Jakarta Slide re-uses some of open source libraries such as the Jakarta
Commons library (HTTP Client and Logging), JDOM (JSR 102), JTA, JMX, …
10
12. II.3.1.
Pilot
Sample
–
UseCase
(1)
Use Case View appointments of a week
Description The goal of this use case is to allow end-user to view his/her appointments of the selected
week.
Actors End-user
Preconditions 1. The end-user’s account has been configured.
2. The end-user is opening the Calendar page.
Steps 1. The end-user would like to view the appointments of a week by selecting week view of
Calendar.
àThe system will display the list of appointments of the current week.
2. The end-user would like to see the appointments of another week by selecting another week.
àThe system will display the list of appointments of the selected week.
Variations (optional) TBD
Non-Functional (optional) TBD
Issues TBD
12
14. II.3.2.
Pilot
Sample
–
Sequence
Diagram
(1)
portlet:
CalendarPortlet
service:
CalendarService
connector:
ECGroupwareConnector
Exchange
Server
1: getCalendarWeekModel()
2: getWeekAppointmentList()
3: prepareWebdavRequest()
4: getList OfA ppointment [ Webdav reques t]
5: result (list of appointments) in the xml format
6: parseAppointmentIds()
7: prepareWebdavRequest()
8: getAppointmentDet ails [W ebdav request ]
9: appointment details in xml format
10: parseAppointmentDetails()
11: Appoinment Model instance list
12: getAdditionInfo()
13: prepareCalendarWeekModel()
14: a CalendarWeekModel instance
14
15. II.3.2.
Pilot
Sample
-‐
Sequence
Diagram
(2)
Method
Description
1:getCalendarWeekModel()
Get data from server and return the model for the Calendar Week
View page.
2:getWeekAppointmentList()
Get data from server and return the list of Appointment instances
in a week of a user.
3:prepareWebdavRequest()
Create the Webdav request to get the list of appointments in a
week.
4:getListOfAppointment
Perform the Webdav request have created in 3:
6:parseAppointmentIds()
Parse the xml data from server to get the Ids of the appointments.
7: prepareWebdavRequest()
Create the Webdav request to get the appointments details
8:getAppointmentDetails
Perform the Webdav request have create in 7
10:parseAppointmentDetails()
Parse the xml data from server to get the appointment details.
12:getAdditionInfo()
Get some addition info necessary for the Calendar Week View
page (e.g. Public Folders, Private Folders, etc.)
13:prepareCalendarWeekModel()
Transform the appointment list & additional data above into the
CalendarWeekModel.
15
16. 3.3.3.
Pilot
Sample
-‐
Model
Classes
q Some
Model
Classes
related
to
this
scenario.
16