SolarMetric Kodo™ JDO Developers Guide


Table of Contents

I. Introduction
1. Introduction to SolarMetric Kodo JDO
II. Java Data Objects
1. Introduction
1.1. Intended Audience
1.2. Transparent Persistence
2. Why JDO?
3. JDO Architecture
3.1. JDO Exceptions
4. PersistenceCapable
4.1. Enhancers
4.2. Persistence-Capable vs. Persistence-Aware
4.3. Restrictions on Persistent Classes
4.3.1. Inheritance
4.3.2. Persistent Fields
4.3.3. Conclusions
4.4. InstanceCallbacks
4.5. JDO Identity
4.5.1. Datastore Identity
4.5.2. Application Identity
4.6. Conclusions
5. Metadata
5.1. Metadata DTD
5.2. Metadata Placement
6. JDOHelper
6.1. Persistence-Capable Operations
6.2. Lifecycle Operations
6.3. PersistenceManagerFactory Construction
7. PersistenceManagerFactory
7.1. Obtaining a PersistenceManagerFactory
7.2. PersistenceManagerFactory Properties
7.2.1. Connection Configuration
7.2.2. PersistenceManagerFactory and Transaction Defaults
7.2.3. PersistenceManager Pooling
7.3. Obtaining PersistenceManagers
7.4. Properties and Supported Options
8. PersistenceManager
8.1. User Object Association
8.2. Configuration Properties
8.3. Transaction Association
8.4. Persistence-capable Lifecycle Management
8.5. JDO Identity Management
8.6. Extent Factory
8.7. Query Factory
8.8. Closing
9. Transaction
9.1. Transaction Types
9.2. The JDO Transaction Interface
10. Extent
11. Query
11.1. Required Query Elements
11.2. Optional Query Elements
11.3. JDOQL
11.4. Executing Queries
11.5. Query Compilation
III. Kodo JDO Reference Guide
1. Introduction
1.1. Intended Audience
2. Configuration Framework
2.1. JDO Standard Properties
2.1.1. javax.jdo.PersistenceManagerFactoryClass
2.1.2. javax.jdo.option.Optimistic
2.1.3. javax.jdo.option.Multithreaded
2.1.4. javax.jdo.option.IgnoreCache
2.1.5. javax.jdo.option.RetainValues
2.1.6. javax.jdo.option.RestoreValues
2.1.7. javax.jdo.option.NontransactionalRead
2.1.8. javax.jdo.option.NontransactionalWrite
2.1.9. javax.jdo.option.ConnectionURL
2.1.10. javax.jdo.option.ConnectionUserName
2.1.11. javax.jdo.option.ConnectionPassword
2.1.12. javax.jdo.option.ConnectionDriverName
2.1.13. javax.jdo.option.ConnectionFactoryName
2.1.14. javax.jdo.option.ConnectionFactory2Name
2.1.15. javax.jdo.option.MinPool
2.1.16. javax.jdo.option.MaxPool
2.1.17. javax.jdo.option.MsWait
2.2. Kodo JDO Properties
2.2.1. com.solarmetric.kodo.CacheReferenceSize
2.2.2. com.solarmetric.kodo.DataCacheClass
2.2.3. com.solarmetric.kodo.ConnectionProperties
2.2.4. com.solarmetric.kodo.DataCacheProperties
2.2.5. com.solarmetric.kodo.DefaultFetchThreshold
2.2.6. com.solarmetric.kodo.DefaultFetchBatchSize
2.2.7. com.solarmetric.kodo.EnableQueryExtensions
2.2.8. com.solarmetric.kodo.LicenseKey
2.2.9. com.solarmetric.kodo.PersistenceManagerClass
2.2.10. com.solarmetric.kodo.PersistenceManagerProperties
2.2.11. com.solarmetric.kodo.ProxyManagerClass
2.2.12. com.solarmetric.kodo.ProxyManagerProperties
2.2.13. com.solarmetric.kodo.QueryFilterListeners
2.2.14. com.solarmetric.kodo.UseSoftTransactionCache
2.2.15. com.solarmetric.kodo.PersistentTypes
2.2.16. com.solarmetric.kodo.impl.jdbc.ConnectionTestTimeout
2.2.17. com.solarmetric.kodo.impl.jdbc.DefaultClassMappingClass
2.2.18. com.solarmetric.kodo.impl.jdbc.DefaultSubclassProviderClass
2.2.19. com.solarmetric.kodo.impl.jdbc.DefaultSubclassProviderProperties
2.2.20. com.solarmetric.kodo.impl.jdbc.DictionaryClass
2.2.21. com.solarmetric.kodo.impl.jdbc.DictionaryProperties
2.2.22. com.solarmetric.kodo.impl.jdbc.FlatInheritanceMapping
2.2.23. com.solarmetric.kodo.impl.jdbc.SequenceFactoryClass
2.2.24. com.solarmetric.kodo.impl.jdbc.SequenceFactoryProperties
2.2.25. com.solarmetric.kodo.impl.jdbc.SQLExecutionManagerClass
2.2.26. com.solarmetric.kodo.impl.jdbc.StatementCacheMaxSize
2.2.27. com.solarmetric.kodo.impl.jdbc.StatementExecutionTimeout
2.2.28. com.solarmetric.kodo.impl.jdbc.SynchronizeSchema
2.2.29. com.solarmetric.kodo.impl.jdbc.TransactionIsolation
2.2.30. com.solarmetric.kodo.impl.jdbc.UsePreparedStatements
2.2.31. com.solarmetric.kodo.impl.jdbc.UseBatchedStatements
2.2.32. com.solarmetric.kodo.impl.jdbc.WarnOnPersistentTypeFailure
2.2.33. com.solarmetric.kodo.ee.ManagedRuntimeClass
2.2.34. com.solarmetric.kodo.ee.ManagedRuntimeProperties
2.3. Logging Framework
3. Creating Persistent Classes
3.1. Application Identity Class Generation
3.2. Enhancement
3.3. Auto-Generating Classes from a Schema
3.3.1. Schema File DTD
3.4. Smart Proxies
4. Metadata
4.1. Dependency Extensions
4.2. Class-level Object-Relational Mapping Extensions
4.3. Field-level Object-Relational Mapping Extensions
4.4. Extensions Under Application Identity
4.5. Examples
4.6. Multi-table Inheritance Mapping
4.7. Generating Default JDO Metadata
5. JDBC Configuration
5.1. Supported Databases
5.2. Accessing Multiple Databases
5.3. Connection Management
5.4. Large Result Sets
5.5. Schema Manipulation
6. Standard Features
6.1. Manipulating Datastore Identity Objects
6.2. ExtentImpl
6.3. PersistenceManager Extension
6.4. Custom Proxies
6.5. Access to SQL Connections
6.6. PersistenceManagerImpl.evictAll() API extensions
6.7. Custom Class Indicators
7. Enterprise Features
7.1. EEPersistenceManager object listeners
7.2. EEPersistenceManager transaction listeners
7.3. Datastore Cache
7.3.1. Overview of Kodo JDO Datastore Caching
7.3.2. Kodo JDO Cache Usage
7.3.3. Cache Extension
7.3.4. Important notes about the DataCache
7.3.5. Known issues and limitations
7.4. Query Extensions
7.4.1. Using extensions in queries
7.4.2. Included Kodo Extensions
7.4.3. Writing custom extensions
7.4.4. Configuring Extensions
7.5. Fetch Groups
7.5.1. Normal Default Fetch Group Behavior
8. Additional Features
8.1. Custom data processing
8.2. Custom data requests
9. Third Party Integration Features
9.1. Overview of Third Party Integration features in Kodo
9.2. Apache Ant
9.2.1. Common Ant Configuration Options
9.2.2. JDOEnhancer Ant Task
9.2.3. SchemaTool Ant Task
9.3. XDoclet
9.4. Borland JBuilder
9.4.1. Installing Kodo into JBuilder
9.4.2. Kodo Configuration from JBuilder
9.4.3. Creating and building JDO projects in JBuilder
9.4.4. Editing JDO Metadata from JBuilder
9.4.5. Running the SchemaTool from JBuilder
9.4.6. JBuilder Project Sample
9.5. Sun ONE Studio / NetBeans IDE
9.5.1. Before Installing Kodo into the IDE
9.5.2. Installing Kodo into the IDE
9.5.3. Configuring the Kodo Module
9.5.4. Kodo Template Wizards
9.5.5. JDO DataObject
9.5.6. Kodo Integration into the Build Process
9.5.7. SunONE / NetBeans Sample
9.6. Eclipse / WebSphere Studio Integration
9.6.1. Installing the Kodo Eclipse Plugin
9.6.2. Configuring the Plugin
9.6.3. Using Kodo in Eclipse IDEs
9.6.4. Eclipse Sample
10. Enterprise Integration
10.1. Overview of Enterprise Integration features in Kodo
10.2. Using Kodo JDO via the Java Connector Architecture
10.2.1. Overview of the JCA
10.2.2. Deploying on JBoss 3.0
11. Kodo JDO Implementation Notes
11.1. PersistenceCapable.jdoFlags field and fields in the Default Fetch Group
11.2. Optimistic locking mechanism
12. Optimization Techniques
IV. Kodo JDO Tutorial
Introduction to the Kodo JDO Tutorial
1. Tutorial Requirements
1. The Pet Shop
1.1. Included Files
1.2. Important Utilities
2. Getting Started
3. Inventory Maintenance
4. Inventory Growth
5. Behavioral Analysis
6. Extra Features
V. Reverse Mapping Tool Tutorial
Introduction to the Reverse Mapping Tool Tutorial
1. Reverse Mapping Tool Tutorial Requirements
1. Magazine Shop
2. Setup
2.1. Tutorial Files
2.2. Important Utilities
3. Generating Persitent Classes
4. Using the Finder
A. Development and Runtime Libraries
B. JDO Resources
C. Optional JDO Features
D. SQL Types
E. Release Notes
F. Known Bugs and Limitations
G. Supported Databases
G.1. Example properties for Pointbase JDBC driver (Pointbase)
G.2. Example properties for InstantDB JDBC driver (InstantDB)
G.3. Example properties for Cloudscape JDBC driver (Cloudscape)
G.4. Example properties for DB2 JDBC driver (DB2)
G.5. Example properties for Oracle JDBC driver (Oracle)
G.6. Example properties for PostgreSQL Native Driver (PostgreSQL)
G.7. Example properties for SQLServer (Microsoft SQL Server)
G.8. Example properties for jConnect (Sybase Adaptive Server Enterprise)
G.9. Example properties for Hypersonic (Hypersonic Database Engine)
G.10. Example properties for MySQL Driver (MySQL)