Part IV. Developer documentation
Table of Contents
- 23. Migrating code from BASE 2 to BASE 3
- 23.1. Compiling the code against BASE 3
- 23.2. Core API changes
- 23.3. Packaging your plug-in so that it installs in BASE 3
- 24. Developer overview of BASE
- 24.1. Fixed vs. dynamic database
- 24.2. Hibernate and the DbEngine
- 24.3. The Batch API
- 24.4. Data classes vs. item classes
- 24.5. The Query API
- 24.6. The Controller API
- 24.7. The Extensions API
- 24.8. Plug-ins
- 24.9. Client applications
- 25. Plug-in developer
- 25.1. How to organize your plug-in project
- 25.1.1. Using Ant
- Directory and file layout
- The build file
- Building the plug-in
- 25.1.2. Make the plug-in compatible with the auto-installation wizard
- Installing plug-in configurations
- 25.2. The Plug-in API
- 25.2.1. The main plug-in interfaces
- The net.sf.basedb.core.plugin.Plugin interface
- The net.sf.basedb.core.plugin.InteractivePlugin interface
- 25.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
- 25.2.3. Abort a running a plug-in
- 25.2.4. Using custom JSP pages for parameter input
- 25.3. Import plug-ins
- 25.3.1. Autodetect file formats
- The net.sf.basedb.core.plugin.AutoDetectingImporter interface
- Call sequence during autodetection
- 25.3.2. The AbstractFlatFileImporter superclass
- Configure by example
- 25.4. Export plug-ins
- 25.4.1. Immediate download of exported data
- The ImmediateDownloadExporter interface
- The ExportOutputStream class
- Call sequence during immediate download
- 25.4.2. The AbstractExporterPlugin class
- 25.5. Analysis plug-ins
- 25.5.1. The AbstractAnalysisPlugin class
- 25.5.2. The AnalysisFilterPlugin interface
- 25.6. Other plug-ins
- 25.6.1. Authentication plug-ins
- Internal vs. external authentation
- The Authenticator interface
- Configuration settings
- 25.6.2. Secondary file storage plugins
- Primary vs. secondary storage
- The SecondaryStorageController interface
- Configuration settings
- 25.6.3. File unpacker plug-ins
- 25.6.4. File packer plug-ins
- 25.6.5. Logging plug-ins
- The LogManagerFactory interface
- The LogManager interface
- The EntityLogger interface
- 25.7. How BASE load plug-in classes
- 25.8. Example plug-ins (with download)
- 26. Extensions developer
- 26.1. Overview
- 26.1.1. Download code examples
- 26.1.2. Terminology
- 26.2. Hello world as an extension
- 26.2.1. Extending multiple extension points with a single extension
- 26.3. Custom action factories
- 26.4. Custom images, JSP files, and other resources
- 26.4.1. Javascript and stylesheets
- 26.4.2. X-JSP files
- 26.5. Custom renderers and renderer factories
- 26.6. Extension points
- 26.6.1. Error handlers
- 26.7. Custom servlets
- 26.8. Extension points defined by BASE
- 26.8.1. Menu: extensions
- 26.8.2. Toolbars
- 26.8.3. Edit dialogs
- 26.8.4. Bioassay set: Tools
- 26.8.5. Bioassay set: Overview plots
- 26.8.6. Services
- 26.8.7. Connection managers
- 26.8.8. Fileset validators
- 27. Web services
- 27.1. Available services
- 27.1.1. Services
- 27.2. Client development
- 27.2.1. Receiving files
- 27.3. Services development
- 27.3.1. Generate WSDL-files
- 27.4. Example web service client (with download)
- 28. The BASE API
- 28.1. The Public API of BASE
- 28.1.1. What is backwards compatibility?
- Binary compatibility
- Contract compatibility
- Source code compatibility
- 28.2. The Data Layer API
- 28.2.1. Basic classes and interfaces
- Classes
- Interfaces
- 28.2.2. User authentication and access control
- Users and passwords
- Groups, roles, projects and permission template
- Keys
- Permissions
- 28.2.3. Reporters
- Reporters
- Reporter lists
- 28.2.4. Quota and disk usage
- Quota
- Disk usage
- 28.2.5. Client, session and settings
- Clients
- Sessions
- Settings
- 28.2.6. Files and directories
- 28.2.7. Experimental platforms and item subtypes
- Platforms
- Item subtypes
- FileStoreEnabled items and data files
- 28.2.8. Parameters
- 28.2.9. Annotations
- Annotations
- Annotation types
- Units
- Categories
- 28.2.10. Protocols, hardware and software
- Protocols
- Parameters
- Hardware and software
- 28.2.11. Plug-ins, jobs and job agents
- Plug-ins
- Jobs
- Job agents
- 28.2.12. Biomaterial LIMS
- Biomaterials
- Bioplates and plate types
- Biomaterial and plate events
- 28.2.13. Array LIMS - plates
- Plates
- Plate events
- Plate mappings
- 28.2.14. Array LIMS - arrays
- Array designs
- Array slides
- 28.2.15. Bioassays and raw data
- Physical bioassays
- Raw data
- Spot images
- 28.2.16. Experiments and analysis
- Experiments
- Bioassay sets, bioassays and transformations
- Virtual databases, datacubes, etc.
- The dynamic database
- 28.2.17. Other classes
- 28.3. The Core API
- 28.3.1. Authentication and sessions
- 28.3.2. Access permissions
- 28.3.3. Data validation
- 28.3.4. Transaction handling
- 28.3.5. Create/read/write/delete operations
- 28.3.6. Batch operations
- 28.3.7. Quota
- 28.3.8. Plugin execution / job queue
- 28.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
- 28.3.10. Sending signals (to plug-ins)
- Diagram of classes and methods
- 28.4. The Query API
- 28.5. The Dynamic API
- 28.6. The Extensions API
- 28.6.1. The core part
- 28.6.2. The web client part
- 28.7. Other useful classes and methods
- 29. Write documentation
- 29.1. User, administrator and developer documentation with Docbook
- 29.1.1. Documentation layout
- 29.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
- 29.1.3. Docbook tags to use
- Text elements
- Code elements
- Gui elements
- Images and figures
- Examples and program listing
- Admonitions
- Lists
- Link elements
- 29.2. Create UML diagrams with MagicDraw
- 29.2.1. Organisation
- 29.2.2. Classes
- Data layer classes
- Core layer classes
- 29.2.3. Diagrams
- Create a new diagram
- Visual appearance and style
- Save diagram as image
- 29.3. Javadoc
- 29.3.1. Writing Javadoc
- 30. Core developer reference
- 30.1. Publishing a new release
- 30.2. Subversion / building BASE
- 30.3. Coding rules and guidelines
- 30.3.1. Development process and other important procedures
- 30.3.2. General coding style guidelines
- Naming
- Layout and comments
- Statements
- 30.3.3. API changes and backwards compatibility
- 30.3.4. Data-layer rules
- 30.3.5. Item-class rules
- Basic class and interface hierarchy
- Access permissions
- Data validation
- Participating in transactions
- Template code for item classes
- 30.3.6. Batch-class rules
- 30.3.7. Test-class rules