org.dspace.checker

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Content Management System » dspace » org.dspace.checker 
org.dspace.checker
org.dspace.checker Package Documentation

Provides content fixity checking (using checksums) for bitstreams stored in DSpace software.

The main access point to org.dspace.checker is on the command line via {@link org.dspace.app.checker.ChecksumChecker#main(String[])}, but it is also simple to get programmatic access to ChecksumChecker if you wish, via a {@link org.dspace.checker.CheckerCommand} object.

CheckerCommand is a simple Command object. You initalize it with a strategy for iterating through bitstreams to check (an implementation of {@link org.dspace.checker.BitstreamDispatcher}), and a object to collect the results (an implementation of @link org.dspace.checker.ChecksumResultsCollector}) , and then call {@link org.dspace.checker.CheckerCommand#process()} to begin the processing. CheckerCommand handles the calculation of bitstream checksums and iteration between bitstreams.

BitstreamDispatcher

The order in which bitstreams are checked and when a checking run terminates is controlled by implementations of BitstreamDispatcher, and you can extend the functionality of the package by writing your own implementatio of this simple interface, although the package includes several useful implementations that will probably suffice in most cases: -

Dispatchers that generate bitstream ordering: -

  • {@link org.dspace.checker.ListDispatcher}
  • {@link org.dspace.checker.SimpleDispatcher}

Dispatchers that modify the behaviour of other Dispatchers: -

  • {@link org.dspace.checker.LimitedCountDispatcher}
  • {@link org.dspace.checker.LimitedDurationDispatcher}

ChecksumResultsCollector

The default implementation of ChecksumResultsCollector ({@link org.dspace.checker.ResultsLogger}) logs checksum checking to the db, but it would be simple to write your own implementation to log to LOG4J logs, text files, JMS queues etc.

Results Pruner

The results pruner is responsible for trimming the archived Checksum logs, which can grow large otherwise. The retention period of stored check results can be configured per checksum result code. This allows you, for example, to retain records for all failures for auditing purposes, whilst discarding the storage of successful checks. The pruner uses a default configuration from dspace.cfg, but can take in alternative configurations from other properties files.

Design notes

All interaction between the checker package and the database is abstracted behind DataAccessObjects. Where practicable dependencies on DSpace code are minimized, the rationale being that it may be errors in DSpace code that have caused fixity problems.

Java Source File NameTypeComment
BitstreamDAO.javaClass

Data Access Object for Bitstreams.

BitstreamDispatcher.javaInterface

BitstreamDispatchers are strategy objects that hand bitstream ids out to workers.

BitstreamInfo.javaClass

Value Object that holds bitstream information that will be used for checksum processing.

BitstreamInfoDAO.javaClass

Database Access Object for bitstream information (metadata).

CheckerCommand.javaClass

Main class for the checksum checker tool, which calculates checksums for each bitstream whose ID is in the most_recent_checksum table, and compares it against the last calculated checksum for that bitstream.

CheckerConsumer.javaClass Class for removing Checker data for a Bitstreams based on deletion events.
ChecksumCheckResults.javaClass Enumeration of ChecksumCheckResults containing constants for checksum comparison result that must correspond to values in checksum_result table.
ChecksumHistory.javaClass

Represents a history record for the bitstream.

ChecksumHistoryDAO.javaClass

This is the data access for the checksum history information.

ChecksumResultDAO.javaClass

Database Access for the checksum results information.

ChecksumResultsCollector.javaInterface Component that receives BitstreamInfo results from a checker.
DailyReportEmailer.javaClass

The email reporter creates and sends emails to an administrator.

DAOSupport.javaClass
DSpaceBitstreamInfo.javaClass Value Object that holds bitstream information that will be used for dspace bitstream.
HandleDispatcher.javaClass A BitstreamDispatcher that checks all the bitstreams contained within an item, collection or community referred to by Handle.
LimitedCountDispatcher.javaClass Decorator that dispatches a specified number of bitstreams from a delegate dispatcher.
LimitedDurationDispatcher.javaClass

A delegating dispatcher that puts a time limit on the operation of another dispatcher.

Unit testing this class would be possible by abstracting the system time into an abstract clock.

ListDispatcher.javaClass Really simple dispatcher that just iterates over a pre-defined list of ids.
ReporterDAO.javaClass This class will report information on the checksum checker process.
ResultsLogger.javaClass

Collects results from a Checksum process and outputs them to a Log4j Logger.

ResultsPruner.javaClass Manages the deletion of results from the checksum history.
SimpleDispatcher.javaClass An implementation of the selection strategy that selects bitstreams in the order that they were last checked, looping endlessly.
SimpleReporter.javaInterface Simple Reporting Class which can return several different reports.
SimpleReporterImpl.javaClass Simple Reporter implementation.
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.