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. File unpacker plug-ins
- 26.6.2. 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. Service actions
- 27.8.8. Connection managers
- 27.8.9. Fileset validators
- 27.8.10. Logging managers
-
- The LogManagerFactory interface
- The LogManager interface
- The EntityLogger interface
- 27.8.11. Item overview loaders
- 27.8.12. Item overview validation
- 27.8.13. Item overview information
- 27.8.14. Table list columns
- 27.8.15. Query filters
- 27.8.16. Login manager
-
- Supporting multiple installed login managers
- Internal vs. external authentation
- Configuration settings
- 27.8.17. Login form
-
- The before-login event
- 27.8.18. Skins
- 27.8.19. Start page
- 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
- 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