Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
COSMOS Design 209234
Change History
Name: | Date: | Revised Sections: |
---|---|---|
Sheldon Lee-Loy | 12/12/2007 |
|
Workload Estimation
Process | Sizing | Names of people doing the work |
---|---|---|
Design | ||
Code | ||
Test | ||
Documentation | ||
Build and infrastructure | ||
Code review, etc.* | ||
TOTAL |
'* - includes other committer work (e.g. check-in, contribution tracking)
Requirement
Error handling is required between the data visualization components (outputters, ODAs) and data collection components (management domain, brokers and data managers).
Design
Data visualization components interact with the data collection components through end point references (EPRs). Web client classes are created that allow the data visualization outputters and ODAs to send SOAP request to various data collection components. This architecture is illustrated below:
The Web client classes will catch soap faults that will be wrapped as java exceptions. Data visualization components will catch these java exceptions. Depending on the exception the data visualization component will either catch and handle the exception or throw the exception to the URLDelegator class. The URLDelegator will act as the last component that will catch any exception and log the exception to error log files.
Open Issues
- How will exceptions propagate to the user browser client?
- Consider creating a specialized exception that will allow service side components to indicate if the exception should be presented to the user. This exception will be received by the URLDelegator class and handled to produce an "error" response that the browser ui widgets will catch and present the error message to the user.
package org.eclipse.cosmos.provisional.dr.ps.common; public class COSMOSUIUserException extends org.eclipse.cosmos.common.exceptions.CosmosException{ /** Determine if the message should be prompted with a dialog box*/ protected boolean promptUser = true; public COSMOSUIUserException(){ super(); } public COSMOSUIUserException(boolean promptUser) { this(); this.promptUser = promptUser; } public COSMOSUIUserException(String message, Throwable cause, boolean promptUser) { super(message, cause); this.promptUser = promptUser; } public COSMOSUIUserException(String message, boolean promptUser) { super(message); this.promptUser = promptUser; } public COSMOSUIUserException(Throwable cause, boolean promptUser) { super(cause); this.promptUser = promptUser; } }