You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/04/29 06:47:32 UTC
svn commit: rev 10406 - incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application
Author: akarasulu
Date: Wed Apr 28 21:47:31 2004
New Revision: 10406
Modified:
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitor.java
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitorAdapter.java
incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/JeApplicationDAO.java
Log:
Commit changes ...
o completed the JeApplicationDAO.rename() method
o added new monitor interface methods for JeApplicationDAO.rename()
o implemented new monitor methods in no-op adapter for rename()
Modified: incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitor.java
==============================================================================
--- incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitor.java (original)
+++ incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitor.java Wed Apr 28 21:47:31 2004
@@ -16,6 +16,8 @@
*/
package org.apache.rms.je.application ;
+import java.io.IOException;
+
/**
* A monitor for an Application data access object.
@@ -78,6 +80,70 @@
void failedOnDelete( ApplicationDAO dao, Object info, String appName,
Throwable fault ) ;
+ /**
+ * Monitor callback for events where the dao failed to delete
+ * an application.
+ *
+ * @param dao the data access object that failed
+ * @param appName the name of the application
+ * @param fault the fault that caused the failure
+ */
void failedOnDelete( ApplicationDAO dao, String appName, Throwable fault ) ;
+
+ /**
+ * Monitor callback for events where the dao failed to delete
+ * an application.
+ *
+ * @param dao the data access object that failed
+ * @param info extra implementation specific information
+ * @param appName the name of the application
+ */
+ void failedOnDelete( ApplicationDAO dao, Object info, String appName ) ;
+
+ /**
+ * Monitors callbacks for events where the dao failed to perform some
+ * operation on an application because of the existance of an application.
+ *
+ * @param dao the data access object that failed
+ * @param op the operation performed by the dao
+ * @param appName the name of the application
+ */
+ void applicationDoesNotExist( ApplicationDAO dao, String op,
+ String appName ) ;
+
+ /**
+ * Monitors callbacks for events where the dao failed to rename an
+ * application.
+ *
+ * @param dao the data access object that failed
+ * @param info extra implementation specific information
+ * @param oldName the original name of the application
+ * @param newName the new name of the application
+ * @param fault the fault that caused the failure
+ */
+ void failedOnRename( ApplicationDAO dao, Object info, String oldName,
+ String newName, Throwable fault ) ;
+
+ /**
+ * Monitors callbacks for events where the dao failed to rename an
+ * application.
+ *
+ * @param dao the data access object that failed
+ * @param oldName the original name of the application
+ * @param newName the new name of the application
+ * @param fault the fault that caused the failure
+ */
+ void failedOnRename( ApplicationDAO dao, String oldName, String newName,
+ Throwable fault ) ;
+
+ /**
+ * Monitors callbacks for events where the dao failed to rename an
+ * application.
+ *
+ * @param dao the data access object that failed
+ * @param oldName the original name of the application
+ * @param newName the new name of the application
+ */
+ void failedOnRename( ApplicationDAO dao, String oldName, String newName ) ;
}
Modified: incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitorAdapter.java
==============================================================================
--- incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitorAdapter.java (original)
+++ incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/ApplicationDAOMonitorAdapter.java Wed Apr 28 21:47:31 2004
@@ -16,6 +16,8 @@
*/
package org.apache.rms.je.application ;
+import org.apache.commons.lang.NotImplementedException;
+
/**
* A no-op application data access object monitor adapter. At a bare minimum
@@ -122,5 +124,85 @@
{
fault.printStackTrace() ;
}
+ }
+
+
+ /**
+ * Monitor callback for events where the dao failed to delete an application.
+ *
+ * @param dao the data access object that failed
+ * @param info extra implementation specific information
+ * @param appName the name of the application
+ */
+ public void failedOnDelete( ApplicationDAO dao, Object info, String appName )
+ {
+ }
+
+
+ /**
+ * Monitors callbacks for events where the dao failed to perform some
+ * operation on an application because of the existance of an application.
+ *
+ * @param dao the data access object that failed
+ * @param op the operation performed by the dao
+ * @param appName the name of the application
+ */
+ public void applicationDoesNotExist( ApplicationDAO dao, String op,
+ String appName )
+ {
+ }
+
+
+ /**
+ * Monitors callbacks for events where the dao failed to rename an
+ * application.
+ *
+ * @param dao the data access object that failed
+ * @param info extra implementation specific information
+ * @param oldName the original name of the application
+ * @param newName the new name of the application
+ * @param fault the fault that caused the failure
+ */
+ public void failedOnRename( ApplicationDAO dao, Object info,
+ String oldName, String newName,
+ Throwable fault )
+ {
+ if ( fault != null )
+ {
+ fault.printStackTrace() ;
+ }
+ }
+
+
+ /**
+ * Monitors callbacks for events where the dao failed to rename
+ * an application.
+ *
+ * @param dao the data access object that failed
+ * @param oldName the original name of the application
+ * @param newName the new name of the application
+ * @param fault the fault that caused the failure
+ */
+ public void failedOnRename( ApplicationDAO dao, String oldName,
+ String newName, Throwable fault )
+ {
+ if ( fault != null )
+ {
+ fault.printStackTrace() ;
+ }
+ }
+
+
+ /**
+ * Monitors callbacks for events where the dao failed to rename
+ * an application.
+ *
+ * @param dao the data access object that failed
+ * @param oldName the original name of the application
+ * @param newName the new name of the application
+ */
+ public void failedOnRename( ApplicationDAO dao, String oldName,
+ String newName )
+ {
}
}
Modified: incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/JeApplicationDAO.java
==============================================================================
--- incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/JeApplicationDAO.java (original)
+++ incubator/directory/rms/trunk/je/src/java/org/apache/rms/je/application/JeApplicationDAO.java Wed Apr 28 21:47:31 2004
@@ -210,7 +210,6 @@
*/
public void delete( String appName ) throws RmsException
{
- DatabaseEntry key ;
DatabaseEntry rowId ;
OperationStatus status = null ;
DatabaseEntry value = new DatabaseEntry() ;
@@ -227,18 +226,22 @@
try
{
- BINDING.objectToEntry( value, appName ) ;
status = db.delete( null, rowId ) ;
}
- catch ( IOException e )
+ catch ( DatabaseException e )
{
monitor.failedOnDelete( this, appName, e ) ;
throw new RmsException( e ) ;
}
- catch ( DatabaseException e )
+
+ if ( status == OperationStatus.NOTFOUND )
{
- monitor.failedOnDelete( this, appName, e ) ;
- throw new RmsException( e ) ;
+ monitor.applicationDoesNotExist( this, status, "delete", appName ) ;
+ throw new JeRmsException( status ) ;
+ }
+ else if ( status != OperationStatus.SUCCESS )
+ {
+ monitor.failedOnDelete( this, status, appName ) ;
}
}
@@ -254,7 +257,53 @@
*/
public void rename( String oldName, String newName ) throws RmsException
{
- throw new NotImplementedException( "STUB" ) ;
+ DatabaseEntry rowId ;
+ OperationStatus status = null ;
+ DatabaseEntry value = new DatabaseEntry() ;
+
+ if ( has( newName ) )
+ {
+ monitor.applicationDoesNotExist( this, "rename", oldName ) ;
+ throw new RmsException( "Cannot rename " + oldName + " to "
+ + newName + ": An application by the name of " + newName
+ + " already exists" ) ;
+ }
+
+ try
+ {
+ rowId = getRowId( oldName ) ;
+ }
+ catch ( JeRmsException e )
+ {
+ monitor.failedOnRename( this, e.getStatus(), oldName, newName, e ) ;
+ throw e ;
+ }
+
+ try
+ {
+ BINDING.objectToEntry( value, newName ) ;
+ status = db.put( null, rowId, value ) ;
+ }
+ catch ( IOException e )
+ {
+ monitor.failedOnRename( this, oldName, newName, e ) ;
+ throw new RmsException( e ) ;
+ }
+ catch ( DatabaseException e )
+ {
+ monitor.failedOnRename( this, oldName, newName, e ) ;
+ throw new RmsException( e ) ;
+ }
+
+ if ( status == OperationStatus.NOTFOUND )
+ {
+ monitor.applicationDoesNotExist( this, status, "rename", oldName ) ;
+ throw new JeRmsException( status ) ;
+ }
+ else if ( status != OperationStatus.SUCCESS )
+ {
+ monitor.failedOnRename( this, oldName, newName ) ;
+ }
}