Part IV. Developer documentation
Table of Contents
- 25. Developer overview of BASE
- 25.1. Fixed vs. dynamic database
- 25.2. Hibernate and the DbEngine
- 25.3. The Batch API
- 25.4. Data classes vs. item classes
- 25.5. The Query API
- 25.6. The Controller API
- 25.7. Plug-ins
- 25.8. Client applications
- 26. Plug-in developer
- 26.1. How to organize your plug-in project
- 26.1.1. Using Ant
- Directory layout
- The build file
- Building the plug-in
- 26.1.2. With Eclipse
- 26.1.3. Make the plug-in compatible with the auto-installation wizard
- 26.2. The Plug-in API
- 26.2.1. The main plug-in interfaces
- The net.sf.basedb.core.plugin.Plugin interface
- The net.sf.basedb.core.plugin.InteractivePlugin interface
- 26.2.2. How the BASE core interacts with the plug-in when...
- Installing a plug-in
- Configuring a plug-in
- Checking if a plug-in can be used in a given context
- Creating a new job
- Executing a job
- 26.2.3. Using custom JSP pages for parameter input
- 26.3. Import plug-ins
- 26.3.1. Autodetect file formats
- The net.sf.basedb.core.plugin.AutoDetectingImporter interface
- Call sequence during autodetection
- 26.3.2. The AbstractFlatFileImporter superclass
- 26.4. Export plug-ins
- 26.4.1. Immediate download of exported data
- The ImmediateDownloadExporter interface
- The ExportOutputStream class
- Call sequence during immediate download
- 26.4.2. The AbstractExporterPlugin class
- 26.5. Analysis plug-ins
- 26.5.1. The AbstractAnalysisPlugin class
- 26.5.2. The AnalysisFilterPlugin interface
- 26.6. Other plug-ins
- 26.6.1. Authentication plug-ins
- Internal vs. external authentation
- The Authenticator interface
- Configuration settings
- 26.6.2. Secondary file storage plugins
- Primary vs. secondary storage
- The SecondaryStorageController interface
- Configuration settings
- 26.6.3. File unpacker plug-ins
- 26.6.4. File packer plug-ins
- 26.6.5. File validator and metadata reader plug-ins
- 26.6.6. Logging plug-ins
- The LogManagerFactory interface
- The LogManager interface
- The EntityLogger interface
- 26.7. Enable support for aborting a running a plug-in
- 26.8. How BASE load plug-in classes
- 26.9. Example plug-ins (with download)
- 27. Extensions developer
- 27.1. Overview
- 27.1.1. Download code examples
- 27.1.2. Terminology
- 27.2. Hello world as an extension
- 27.2.1. Extending multiple extension points with a single extension
- 27.3. Custom action factories
- 27.4. Custom images, JSP files, and other resources
- 27.4.1. Javascript and stylesheets
- 27.4.2. X-JSP files
- 27.5. Custom renderers and renderer factories
- 27.6. Extension points
- 27.6.1. Error handlers
- 27.7. Custom servlets
- 28. Web services
- 28.1. Available services
- 28.1.1. Services
- 28.2. Client development
- 28.2.1. Receiving files
- 28.3. Services development
- 28.3.1. Generate WSDL-files
- 28.4. Example web service client (with download)
- 29. API overview (how to use and code examples)
- 29.1. The Public API of BASE
- 29.1.1. What is backwards compatibility?
- Binary compatibility
- Contract compatibility
- Source code compatibility
- 29.2. The database schema and the Data Layer API
- 29.2.1. Basic classes and interfaces
- UML diagram
- Classes
- Interfaces
- 29.2.2. User authentication and access control
- UML diagram
- Users and passwords
- Groups, roles, projects and permission template
- Keys
- Permissions
- 29.2.3. Hardware and software
- UML diagram
- Hardware and software
- 29.2.4. Reporters
- UML diagram
- Reporters
- Reporter lists
- 29.2.5. Quota and disk usage
- UML diagram
- Quota
- Disk usage
- 29.2.6. Client, session and settings
- UML diagram
- Clients
- Sessions
- Settings
- 29.2.7. Files and directories
- UML diagram
- Description
- 29.2.8. Experimental platforms
- UML diagram
- Platforms
- FileStoreEnabled items and data files
- 29.2.9. Parameters
- UML diagram
- Parameters
- 29.2.10. Annotations
- UML diagram
- Annotations
- Annotation types
- Units
- Categories
- 29.2.11. Protocols
- UML diagram
- Protocols
- Parameters
- 29.2.12. Plug-ins, jobs and job agents
- UML diagram
- Plug-ins
- Jobs
- Job agents
- 29.2.13. Biomaterial LIMS
- UML diagram
- Biomaterial LIMS
- Bioplates and plate types
- Biomaterial and plate events
- 29.2.14. Array LIMS - plates
- UML diagram
- Plates
- Plate events
- Plate mappings
- 29.2.15. Array LIMS - arrays
- UML diagram
- Array designs
- Array slides
- 29.2.16. Hybridizations and raw data
- UML diagram
- Hybridizations
- Raw data
- Spot images
- 29.2.17. Experiments and analysis
- UML diagram
- Experiments
- Bioassay sets, bioassays and transformations
- Virtual databases, datacubes, etc.
- The dynamic database
- 29.2.18. Other classes
- UML diagram
- 29.3. The Core API
- 29.3.1. Using files to store data
- Diagram of classes and methods
- Use case: Asking the user for files for a given item
- Use case: Link, validate and extract metadata from the selected files
- Use case: Import data into the database
- Use case: Using raw data from files in an experiment
- 29.3.2. Sending signals (to plug-ins)
- Diagram of classes and methods
- 29.4. The Query API
- 29.5. Analysis and the Dynamic and Batch API:s
- 29.6. Extensions API
- 29.6.1. The core part
- 29.6.2. The web client part
- 29.7. Other useful classes and methods
- 30. Write documentation
- 30.1. User, administrator and developer documentation with Docbook
- 30.1.1. Documentation layout
- 30.1.2. Getting started
- Organization of source files
- Controlling chunking
-
The
id
attribute
- Mark help texts
- Generate output
- 30.1.3. Docbook tags to use
- Text elements
- Images and figures
- Examples and program listing
- Admonitions
- Lists
- Link elements
- 30.2. Create UML diagrams with MagicDraw
- 30.2.1. Organisation
- 30.2.2. Classes
- Data layer classes
- Core layer classes
- 30.2.3. Diagrams
- Create a new diagram
- Visual appearance and style
- Save diagram as image
- 30.3. Javadoc
- 30.3.1. Writing Javadoc
- 31. Core developer reference
- 31.1. Publishing a new release
- 31.2. Subversion / building BASE
- 31.3. Coding rules and guidelines
- 31.3.1. Development process and other important procedures
- 31.3.2. General coding style guidelines
- 31.3.3. API changes and backwards compatibility
- Does the changes affect the Public API?
- Contract compatibility
- Binary compatibility
- Internal data structure compatibility
- Source code compatibility
- 31.3.4. Data-layer rules
- Attributes and methods order
- Class and interface names
- Extend/implement the basic classes and interfaces
- Define a public no-argument constructor
- Object identity
- No final methods
- Second-level cache
- Proxies
- Hibernate mappings
- Documentation
- 31.3.5. Item-class rules
- 31.3.6. Batch-class rules
- 31.3.7. Test-class rules
- 31.4. Internals of the Core API
- 31.4.1. Authentication and sessions
- 31.4.2. Access permissions
- 31.4.3. Data validation
- 31.4.4. Transaction handling
- 31.4.5. Create/read/write/delete operations
- 31.4.6. Batch operations
- 31.4.7. Quota
- 31.4.8. Plugin execution / job queue