You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2002/02/02 05:02:10 UTC
cvs commit: jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file PersistentObject.java TransactionalFileSession.java
mcconnell 02/02/01 20:02:10
Modified: apps/enterprise/pss/src/java/org/apache/pss/connector/database
PersistentObject.java PersistentObjectHome.java
PersistentRef.java
TransactionalDatabaseSession.java
apps/enterprise/pss/src/java/org/apache/pss/connector/file
PersistentObject.java TransactionalFileSession.java
Log:
javadoc additions
Revision Changes Path
1.3 +25 -28 jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/PersistentObject.java
Index: PersistentObject.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/PersistentObject.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PersistentObject.java 2 Feb 2002 01:19:58 -0000 1.2
+++ PersistentObject.java 2 Feb 2002 04:02:10 -0000 1.3
@@ -14,75 +14,72 @@
import org.apache.pss.connector.PID;
/**
- *
- *
+ * Interface implemented by generated storage types for database persistence.
*/
public interface PersistentObject
{
/**
- * Sets the persistentLinks attribute of the PersistentObject object
+ * Sets the home base and PID for the persistent object.
*
- * @param pid The new persistentLinks value
- * @param storagehomebase The new persistentLinks value
+ * @param pid the PID identifer
+ * @param storagehomebase the storage home base implementation managing this persistent object
*/
public abstract void setPersistentLinks( PID pid, StorageHomeBase storagehomebase );
/**
- * Gets the pID attribute of the PersistentObject object
+ * Gets the PID attribute of the PersistentObject object
*
- * @return The pID value
+ * @return PID the PID value of the instance
*/
public abstract PID getPID();
/**
- *
- *
- * @param persistentobject
+ * Flags a persistent object as embedded within another persistent object.
+ * @param persistentobject the persistent object that this object is embedded within
*/
public abstract void markAsEmbedded( PersistentObject persistentobject );
/**
- *
+ * Invokes the embedded builder to build an embedded storage object.
*/
public abstract void embeddedBuilder();
+
/**
- *
- *
- * @param aoutputstream
+ * Checks all state members for transient status and returns true if
+ * the persistent object should be flushed.
+ * @return boolean true if flush required
*/
- public abstract void write( OutputStream aoutputstream[] );
+ public abstract boolean checkForFlush();
/**
- *
- *
- * @param ainputstream
+ * Flushes the incarnation.
*/
- public abstract void read( InputStream ainputstream[] );
+ public abstract void flushIncarnation();
/**
- *
- *
- * @return (doc-pending)
+ * Refreshes the incarnation.
*/
- public abstract boolean checkForFlush();
-
+ public abstract void refreshIncarnation();
/**
- *
+ * Write the incarnation to an output stream array.
+ * @param output
*/
- public abstract void flushIncarnation();
+ public abstract void write( OutputStream[] output );
/**
- *
+ * Read an incarnation state from an input stream array.
+ * @param input
*/
- public abstract void refreshIncarnation();
+ public abstract void read( InputStream[] input );
+
}
1.4 +31 -39 jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/PersistentObjectHome.java
Index: PersistentObjectHome.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/PersistentObjectHome.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PersistentObjectHome.java 2 Feb 2002 03:04:45 -0000 1.3
+++ PersistentObjectHome.java 2 Feb 2002 04:02:10 -0000 1.4
@@ -13,33 +13,30 @@
import org.apache.pss.connector.NotFoundException;
/**
- *
- *
+ * Interface implemented by generated storage homes for database persistence.
*/
public interface PersistentObjectHome
{
/**
- * Sets the persistentLinks attribute of the PersistentObjectHome object
+ * Sets the catalog and home PID for the home.
*
- * @param catalogbase The new persistentLinks value
- * @param pid The new persistentLinks value
+ * @param catalogbase the catalog managing this home
+ * @param pid the PID identifer
*/
public abstract void setPersistentLinks( CatalogBase catalogbase, PID pid );
/**
- * Gets the pID attribute of the PersistentObjectHome object
- *
- * @return The pID value
+ * Gets the PID for this home.
+ * @return PID the home identifier.
*/
public abstract PID getPID();
/**
- *
- *
- * @param pid
+ * Remove a storage type from the home.
+ * @param pid the PID of the storage type to remove
* @exception NotFoundException
*/
public abstract void remove_storage_type( PID pid )
@@ -47,66 +44,61 @@
/**
- *
- *
- * @param pid
- * @return (doc-pending)
+ * Check is a storage type is stored within the home.
+ * @param pid the PID of the storage type to check
+ * @return boolean true is the storage type is stored in this home
*/
public abstract boolean is_stored( PID pid );
/**
- *
- *
- * @param persistentobject
+ * Refresh a persistent object in this home.
+ * @param persistentobject the persistent object to refresh
*/
public abstract void refresh( PersistentObject persistentobject );
/**
- *
+ * Refresh all persistent objects in this home.
*/
public abstract void refreshAll();
/**
- *
- *
- * @param persistentobject
+ * Flush a persistent object in this home.
+ * @param persistentobject the persistent object to flush
*/
public abstract void flush( PersistentObject persistentobject );
/**
- *
- *
- * @param pid
- * @return (doc-pending)
+ * Get the <code>StorageObject</code> given a supplied PID.
+ * @param pid the PID
+ * @return StorageObject the corresponding storage object
*/
public abstract StorageObject deref( PID pid );
/**
- * Gets the homeMembers attribute of the PersistentObjectHome object
- *
- * @return The homeMembers value
+ * Create a storage object ref given a persist object identifier.
+ * @param pid persistent object identifier
+ * @return StorageObjectRef
*/
- public abstract String[] getHomeMembers();
+ public abstract StorageObjectRef create_reference( byte[] pid );
/**
- *
- *
- * @param abyte0
- * @return (doc-pending)
+ * Create a new empty <code>StorageObject</code> of the type
+ * managed by this home.
+ * @return StorageObject
*/
- public abstract StorageObjectRef create_reference( byte abyte0[] );
+ public abstract StorageObject create_object();
/**
- *
- *
- * @return (doc-pending)
+ * Returns an array of home names.
+ * @return String[] home member names
*/
- public abstract StorageObject create_object();
+ public abstract String[] getHomeMembers();
+
}
1.3 +9 -8 jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/PersistentRef.java
Index: PersistentRef.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/PersistentRef.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PersistentRef.java 2 Feb 2002 01:19:58 -0000 1.2
+++ PersistentRef.java 2 Feb 2002 04:02:10 -0000 1.3
@@ -12,25 +12,26 @@
import org.apache.pss.connector.PID;
/**
- *
- *
+ * Interface implemented by database peristent object implementations
+ * that describes a reference to a storage object.
*/
public interface PersistentRef
{
/**
- * Sets the persistentLinks attribute of the PersistentRef object
+ * Sets the storage home implementation and instance PID value.
*
- * @param storagehomebase The new persistentLinks value
- * @param pid The new persistentLinks value
+ * @param storagehomebase the storage home managing this instance
+ * @param pid the PID value for this instance
*/
public abstract void setPersistentLinks( StorageHomeBase storagehomebase, PID pid );
/**
- *
+ * Updates the PID value for this instances based on the supplied
+ * persitent object identifier
*
- * @param abyte0
+ * @param pid persistent object identifier
*/
- public abstract void update( byte abyte0[] );
+ public abstract void update( byte[] pid );
}
1.3 +109 -128 jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/TransactionalDatabaseSession.java
Index: TransactionalDatabaseSession.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/database/TransactionalDatabaseSession.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TransactionalDatabaseSession.java 2 Feb 2002 01:19:58 -0000 1.2
+++ TransactionalDatabaseSession.java 2 Feb 2002 04:02:10 -0000 1.3
@@ -13,7 +13,12 @@
import java.util.Hashtable;
import org.omg.CORBA.*;
+import org.omg.CORBA.BAD_OPERATION;
+import org.omg.CORBA.INVALID_TRANSACTION;
+import org.omg.CORBA.PERSIST_STORE;
+import org.omg.CORBA.CompletionStatus;
import org.omg.CosPersistentState.*;
+import org.omg.CosPersistentState.TransactionalSession;
import org.omg.CosTransactions.Coordinator;
import org.omg.CosTransactions.ResourceHelper;
import org.omg.PortableInterceptor.ORBInitInfo;
@@ -29,8 +34,8 @@
/**
- *
- *
+ * Extended DatabaseSession that adds support for association of
+ * transactional resources.
*/
public class TransactionalDatabaseSession extends DatabaseSession
implements TransactionalSession
@@ -55,44 +60,43 @@
/**
* Constructor for the TransactionalDatabaseSession object
*
- * @param orbinitinfo
+ * @param info
*/
- public TransactionalDatabaseSession( ORBInitInfo orbinitinfo )
+ public TransactionalDatabaseSession( ORBInitInfo info )
{
- _info = orbinitinfo;
- _association_status = 0;
+ _info = info;
+ _association_status = TransactionalSession.NO_ASSOCIATION;
}
/**
- * Sets the baseInfo attribute of the TransactionalDatabaseSession object
+ * Set the catalog base information.
*
- * @param databaseconnector The new baseInfo value
- * @param word0 The new baseInfo value
- * @param endofassociationcallback The new baseInfo value
- * @param word1 The new baseInfo value
- * @param aparameter The new baseInfo value
+ * @param connector the database connector
+ * @param default_isolation_level default isolation level
+ * @param callback the end of association callback
+ * @param access access mode
+ * @param parameters the connection parameters
*/
- public void setBaseInfo( DatabaseConnector databaseconnector, short word0, EndOfAssociationCallback endofassociationcallback, short word1, Parameter aparameter[] )
+ public void setBaseInfo( DatabaseConnector connector, short default_isolation_level, EndOfAssociationCallback callback, short access, Parameter[] parameters )
{
- for ( int i = 0; i < aparameter.length; i++ )
+ for ( int i = 0; i < parameters.length; i++ )
{
- if ( aparameter[i].name.equals( "HomeExtension" ) )
+ if ( parameters[i].name.equals( "HomeExtension" ) )
{
- _extension = aparameter[i].val.extract_string();
+ _extension = parameters[i].val.extract_string();
}
}
- _isolation_level = word0;
- _callback = endofassociationcallback;
- setBaseInfo( databaseconnector, word1, aparameter );
+ _isolation_level = default_isolation_level;
+ _callback = callback;
+ setBaseInfo( connector, access, parameters );
}
/**
- *
- *
- * @return (doc-pending)
+ * Returns the association status.
+ * @return short association status
*/
public short get_association_status()
{
@@ -101,25 +105,23 @@
/**
- *
- *
- * @param coordinator
- * @return (doc-pending)
+ * Test if this transactional session is associated to a transaction coordinator.
+ * @param transaction
+ * @return boolean
*/
- public boolean is_associated_to( Coordinator coordinator )
+ public boolean is_associated_to( Coordinator transaction )
{
if ( _coordinator == null )
{
return false;
}
- return _coordinator.hash_transaction() == coordinator.hash_transaction();
+ return _coordinator.hash_transaction() == transaction.hash_transaction();
}
/**
- *
- *
- * @return (doc-pending)
+ * Returns the default isolation level.
+ * @return short
*/
public short default_isolation_level()
{
@@ -128,112 +130,94 @@
/**
- *
+ * Start a transactional session.
*
* @param coordinator
*/
- public void start( Coordinator coordinator )
+ public void start( org.omg.CosTransactions.Coordinator transaction )
{
- _coordinator = coordinator;
+ _coordinator = transaction;
switch ( _association_status )
{
- case 0:
- // '\0'
- register_database_resource( coordinator );
- _association_status = 1;
- break;
- case 2:
- // '\002'
- _association_status = 1;
- break;
- case 1:
- // '\001'
- throw new BAD_OPERATION();
- case 3:
- // '\003'
- _association_status = 1;
- break;
+ case TransactionalSession.NO_ASSOCIATION :
+ register_database_resource( transaction );
+ _association_status = TransactionalSession.ACTIVE;
+ break;
+ case TransactionalSession.SUSPENDED :
+ _association_status = TransactionalSession.ACTIVE;
+ break;
+ case TransactionalSession.ACTIVE :
+ throw new BAD_OPERATION();
+ case TransactionalSession.ENDING :
+ _association_status = TransactionalSession.ACTIVE;
+ break;
}
}
/**
- *
- *
- * @param coordinator
+ * Suspend a transactional session.
+ * @param transaction
*/
- public void suspend( Coordinator coordinator )
+ public void suspend( Coordinator transaction )
{
switch ( _association_status )
{
- case 0:
- // '\0'
- throw new PERSIST_STORE( 5, CompletionStatus.COMPLETED_NO );
- case 2:
- // '\002'
- throw new BAD_OPERATION();
- case 1:
- // '\001'
- if ( _coordinator.hash_transaction() != coordinator.hash_transaction() )
- {
- throw new INVALID_TRANSACTION();
- }
- _association_status = 2;
- break;
- case 3:
- // '\003'
- throw new BAD_OPERATION();
+ case TransactionalSession.NO_ASSOCIATION :
+ throw new PERSIST_STORE( 5, CompletionStatus.COMPLETED_NO );
+ case TransactionalSession.SUSPENDED :
+ throw new BAD_OPERATION();
+ case TransactionalSession.ACTIVE :
+ if ( _coordinator.hash_transaction() != transaction.hash_transaction() )
+ throw new INVALID_TRANSACTION();
+ _association_status = TransactionalSession.SUSPENDED;
+ break;
+ case TransactionalSession.ENDING :
+ throw new BAD_OPERATION();
}
}
/**
- *
- *
- * @param coordinator
- * @param flag
+ * End the transaction.
+ * @param transaction
+ * @param success
*/
- public void end( Coordinator coordinator, boolean flag )
+ public void end( Coordinator transaction, boolean success )
{
switch ( _association_status )
{
- case 0:
- // '\0'
- throw new PERSIST_STORE( 5, CompletionStatus.COMPLETED_NO );
- case 1:
- // '\001'
- case 2:
- // '\002'
- if ( _coordinator.hash_transaction() != coordinator.hash_transaction() )
- {
- throw new INVALID_TRANSACTION();
- }
- if ( !flag )
- {
- _cache.clear();
- try
- {
- _datastore.rollback();
- }
- catch ( Exception exception )
- {}
- }
- else
+ case TransactionalSession.NO_ASSOCIATION :
+ throw new PERSIST_STORE( 5, org.omg.CORBA.CompletionStatus.COMPLETED_NO );
+ case TransactionalSession.SUSPENDED :
+ case TransactionalSession.ACTIVE :
+ if ( _coordinator.hash_transaction() != transaction.hash_transaction() )
+ throw new INVALID_TRANSACTION();
+ if ( success == false )
+ {
+ _cache.clear();
+ try
{
- flush();
+ // rollback the transaction...
+ _datastore.rollback();
}
- break;
- case 3:
- // '\003'
- throw new BAD_OPERATION();
+ catch ( java.lang.Exception ex )
+ { }
+ }
+ else
+ {
+ flush();
+ }
+ break;
+ case TransactionalSession.ENDING :
+ throw new BAD_OPERATION();
}
}
/**
- *
- *
- * @return (doc-pending)
+ * Return the transaction coordinator.
+ * @return Coordinator
*/
public Coordinator transaction()
{
@@ -242,7 +226,7 @@
/**
- *
+ * Release the coordinator and association status associated to the session.
*/
public void remove_database_resource()
{
@@ -257,9 +241,9 @@
/**
- *
+ * Connecto to the database.
*
- * @return (doc-pending)
+ * @return Connection the SQL connection
*/
protected Connection connectToDatabase()
{
@@ -278,27 +262,23 @@
{}
try
{
- byte byte0 = 0;
+ int level = 0;
switch ( _isolation_level )
{
- case 0:
- // '\0'
- byte0 = 1;
- break;
- case 1:
- // '\001'
- byte0 = 2;
- break;
- case 2:
- // '\002'
- byte0 = 4;
- break;
- case 3:
- // '\003'
- byte0 = 8;
- break;
+ case READ_UNCOMMITTED.value :
+ level = java.sql.Connection.TRANSACTION_READ_UNCOMMITTED;
+ break;
+ case READ_COMMITTED.value :
+ level = java.sql.Connection.TRANSACTION_READ_COMMITTED;
+ break;
+ case REPEATABLE_READ.value :
+ level = java.sql.Connection.TRANSACTION_REPEATABLE_READ;
+ break;
+ case SERIALIZABLE.value :
+ level = java.sql.Connection.TRANSACTION_SERIALIZABLE;
+ break;
}
- connection.setTransactionIsolation( byte0 );
+ connection.setTransactionIsolation( level );
}
catch ( SQLException sqlexception )
{
@@ -309,7 +289,8 @@
/**
- *
+ * Create a new transactional resource. The implementation registered
+ * a new database resource with the POA.
*
* @param coordinator
*/
1.3 +17 -16 jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file/PersistentObject.java
Index: PersistentObject.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file/PersistentObject.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PersistentObject.java 2 Feb 2002 01:19:59 -0000 1.2
+++ PersistentObject.java 2 Feb 2002 04:02:10 -0000 1.3
@@ -37,20 +37,6 @@
/**
- * Writes the instance to an output stream.
- * @param outputstream the output stream
- */
- public abstract void write( OutputStream outputstream );
-
-
- /**
- * Reads the instance state in from a supplied input stream.
- * @param inputstream the input stream
- */
- public abstract void read( InputStream inputstream );
-
-
- /**
* Flags a persistent object as embedded within another persistent object.
* @param persistentobject the persistent object that this object is embedded within
*/
@@ -60,7 +46,6 @@
/**
* Checks all state members for transient status and returns true if
* the persistent object should be flushed.
- *
* @return boolean true if flush required
*/
public abstract boolean checkForFlush();
@@ -79,7 +64,23 @@
/**
- *
+ * Invokes the embedded builder to build an embedded storage object.
*/
public abstract void embeddedBuilder();
+
+ /**
+ * Writes the instance to an output stream.
+ * @param outputstream the output stream
+ */
+ public abstract void write( OutputStream outputstream );
+
+
+ /**
+ * Reads the instance state in from a supplied input stream.
+ * @param inputstream the input stream
+ */
+ public abstract void read( InputStream inputstream );
+
+
+
}
1.3 +3 -4 jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file/TransactionalFileSession.java
Index: TransactionalFileSession.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/apps/enterprise/pss/src/java/org/apache/pss/connector/file/TransactionalFileSession.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TransactionalFileSession.java 2 Feb 2002 01:19:59 -0000 1.2
+++ TransactionalFileSession.java 2 Feb 2002 04:02:10 -0000 1.3
@@ -31,7 +31,6 @@
/**
* Extended FileSession that adds support for association of
* transactional file resources.
- *
*/
public class TransactionalFileSession extends FileSession
implements TransactionalSession
@@ -69,13 +68,13 @@
/**
* Sets the baseInfo attribute of the TransactionalFileSession object
*
- * @param fileconnector The new baseInfo value
+ * @param connector the file connector
* @param word0 The new baseInfo value
* @param endofassociationcallback The new baseInfo value
* @param word1 The new baseInfo value
* @param aparameter The new baseInfo value
*/
- public void setBaseInfo( FileConnector fileconnector, short word0, EndOfAssociationCallback endofassociationcallback, short word1, Parameter aparameter[] )
+ public void setBaseInfo( FileConnector connector, short word0, EndOfAssociationCallback endofassociationcallback, short word1, Parameter aparameter[] )
{
for ( int i = 0; i < aparameter.length; i++ )
{
@@ -85,7 +84,7 @@
}
}
- setCatalogInfo( fileconnector, word1, aparameter );
+ setCatalogInfo( connector, word1, aparameter );
_isolation_level = word0;
_callback = endofassociationcallback;
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>