Part IV. Developer documentation
Table of Contents
- 24. Migrating code from BASE 2 to BASE 3
- 24.1. Compiling the code against BASE 3
- 24.2. Core API changes
- 24.3. Packaging your plug-in so that it installs in BASE 3
- 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. The Extensions API
- 25.8. Plug-ins
- 25.9. Client applications
- 26. Plug-in developer
- 26.1. How to organize your plug-in project
- 26.1.1. Using Ant
- Directory and file layout
- The build file
- Building the plug-in
- 26.1.2. Make the plug-in compatible with the auto-installation wizard
- Installing plug-in configurations
- 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. Abort a running a plug-in
- 26.2.4. 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
- Configure by example
- 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
- 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.7. How BASE load plug-in classes
- 26.8. 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. The extensions.xml file
- 27.2.2. 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
- 27.8. Extension points defined by BASE
- 27.8.1. Menu: extensions
- 27.8.2. Toolbars
- 27.8.3. Edit dialogs
- 27.8.4. Bioassay set: Tools
- 27.8.5. Bioassay set: Overview plots
- 27.8.6. Services
- 27.8.7. Connection managers
- 27.8.8. Fileset validators
- 27.8.9. Logging managers
- The LogManagerFactory interface
- The LogManager interface
- The EntityLogger interface
- 27.8.10. Item overview loaders
- 27.8.11. Item overview validation
- 27.8.12. Item overview information
- 27.8.13. Table list columns
- 27.8.14. Login manager
- Internal vs. external authentation
- Configuration settings
- 27.8.15. Login form
- 27.8.16. Skins
- 28. Web services
- 29. The BASE API
- 29.1. The Public API of BASE
- 29.1.1. What is backwards compatibility?
- Binary compatibility
- Contract compatibility
- Source code compatibility
- 29.2. The Data Layer API
- 29.2.1. Basic classes and interfaces
- Classes
- Interfaces
- 29.2.2. User authentication and access control
- Users and passwords
- Groups, roles, projects and permission template
- Keys
- Permissions
- 29.2.3. Reporters
- Reporters
- Reporter lists
- 29.2.4. Quota and disk usage
- Quota
- Disk usage
- 29.2.5. Client, session and settings
- Clients
- Sessions
- Settings
- 29.2.6. Files and directories
- 29.2.7. Experimental platforms and item subtypes
- Platforms
- Item subtypes
- FileStoreEnabled items and data files
- 29.2.8. Parameters
- 29.2.9. Annotations
- Annotations
- Annotation types
- Units
- Categories
- 29.2.10. Protocols, hardware and software
- Protocols
- Parameters
- Hardware and software
- 29.2.11. Plug-ins, jobs and job agents
- Plug-ins
- Jobs
- Job agents
- 29.2.12. Biomaterial LIMS
- Biomaterials
- Bioplates and plate types
- Biomaterial and plate events
- 29.2.13. Array LIMS - plates
- Plates
- Plate events
- Plate mappings
- 29.2.14. Array LIMS - arrays
- Array designs
- Array slides
- 29.2.15. Bioassays and raw data
- Physical bioassays
- Raw data
- Spot images
- 29.2.16. Experiments and analysis
- Experiments
- Bioassay sets, bioassays and transformations
- Virtual databases, datacubes, etc.
- The dynamic database
- 29.2.17. Other classes
- 29.3. The Core API
- 29.3.1. Authentication and sessions
- 29.3.2. Access permissions
- 29.3.3. Data validation
- 29.3.4. Transaction handling
- 29.3.5. Create/read/write/delete operations
- 29.3.6. Batch operations
- 29.3.7. Quota
- 29.3.8. Plugin execution / job queue
- 29.3.9. 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.10. Sending signals (to plug-ins)
- Diagram of classes and methods
- 29.4. The Query API
- 29.5. The Dynamic API
- 29.6. The 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
- Create new chapter/file
- Controlling chunking
-
The
id
attribute
- Help text for the BASE web client
- Build the documentation
- 30.1.3. Docbook tags to use
- Text elements
- Code elements
- Gui 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
- Naming
- Layout and comments
- Statements
- 31.3.3. API changes and backwards compatibility
- 31.3.4. Data-layer rules
- 31.3.5. Item-class rules
- Basic class and interface hierarchy
- Access permissions
- Data validation
- Participating in transactions
- Template code for item classes
- 31.3.6. Batch-class rules
- 31.3.7. Test-class rules