You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@excalibur.apache.org by ha...@apache.org on 2004/07/10 06:42:12 UTC
svn commit: rev 22785 - in excalibur/branches/fortress-experiments: container-api/src/java/org/apache/avalon/fortress/attributes/qdox container-impl/src/java/org/apache/avalon/fortress/impl container-impl/src/java/org/apache/avalon/fortress/impl/handler examples/src/java/org/apache/avalon/fortress/examples/interceptors examples/src/java/org/apache/avalon/fortress/examples/interceptors/business/interceptors
Author: hammett
Date: Fri Jul 9 21:42:11 2004
New Revision: 22785
Modified:
excalibur/branches/fortress-experiments/container-api/src/java/org/apache/avalon/fortress/attributes/qdox/QDoxSerializer.java
excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/InterceptorEnabledContainer.java
excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/handler/ComponentFactory.java
excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/Main.java
excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/business/interceptors/TransactionalInterceptor.java
Log:
Few fixes.
Modified: excalibur/branches/fortress-experiments/container-api/src/java/org/apache/avalon/fortress/attributes/qdox/QDoxSerializer.java
==============================================================================
--- excalibur/branches/fortress-experiments/container-api/src/java/org/apache/avalon/fortress/attributes/qdox/QDoxSerializer.java (original)
+++ excalibur/branches/fortress-experiments/container-api/src/java/org/apache/avalon/fortress/attributes/qdox/QDoxSerializer.java Fri Jul 9 21:42:11 2004
@@ -171,7 +171,7 @@
{
final AttributeInfo info = attributes[i];
- if (name.equalsIgnoreCase( name ))
+ if (name.equalsIgnoreCase( info.getName() ))
{
attribute = info;
break;
Modified: excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/InterceptorEnabledContainer.java
==============================================================================
--- excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/InterceptorEnabledContainer.java (original)
+++ excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/InterceptorEnabledContainer.java Fri Jul 9 21:42:11 2004
@@ -159,8 +159,8 @@
*/
public void dispose()
{
- ContainerUtil.dispose( m_manager );
super.dispose();
+ ContainerUtil.dispose( m_manager );
}
///
Modified: excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/handler/ComponentFactory.java
==============================================================================
--- excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/handler/ComponentFactory.java (original)
+++ excalibur/branches/fortress-experiments/container-impl/src/java/org/apache/avalon/fortress/impl/handler/ComponentFactory.java Fri Jul 9 21:42:11 2004
@@ -255,12 +255,12 @@
getLogger().debug(message);
}
- if (getCreatedClass().equals(component.getClass()))
+ if ( component.getClass().getName().startsWith( "$Proxy" ) || getCreatedClass().equals(component.getClass()))
{
ContainerUtil.shutdown(component);
- raiseComponentDestroyedEvent( component );
m_extManager.executeDestructionExtensions(component, m_context);
+ raiseComponentDestroyedEvent( component );
if (m_dispose.isActive())
{
Modified: excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/Main.java
==============================================================================
--- excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/Main.java (original)
+++ excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/Main.java Fri Jul 9 21:42:11 2004
@@ -68,8 +68,10 @@
}
catch( SecurityException ex )
{
-
+ ex.printStackTrace();
}
+
+ manager.release( persistenceManager );
ContainerUtil.dispose( cm );
}
Modified: excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/business/interceptors/TransactionalInterceptor.java
==============================================================================
--- excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/business/interceptors/TransactionalInterceptor.java (original)
+++ excalibur/branches/fortress-experiments/examples/src/java/org/apache/avalon/fortress/examples/interceptors/business/interceptors/TransactionalInterceptor.java Fri Jul 9 21:42:11 2004
@@ -21,14 +21,24 @@
import java.lang.reflect.Method;
import org.apache.avalon.fortress.ExtendedMetaInfo;
+import org.apache.avalon.fortress.attributes.AttributeInfo;
import org.apache.avalon.fortress.impl.interceptor.AbstractInterceptor;
/**
+ * This is a blank space with hypothetical code service as
+ * a recipe for a TransactionalInterceptor.
+ *
+ * Basically pick up your favorite implementation of JTA (Java Transaction API)
+ * and access the User Transaction from here. Adjust the transaction according the
+ * transaction attribute (required, supported, requiresnew and so on)
+ * That it, painless transaction management for your classes.
+ *
+ * You can also you the same approach for OJB, Hibernate and similar frameworks.
+ *
* @author <a href="mailto:dev@excalibur.apache.org">Excalibur Development Team</a>
*/
public class TransactionalInterceptor extends AbstractInterceptor
{
-
/**
* Document me!
*
@@ -37,8 +47,24 @@
public Object intercept(Object instance, ExtendedMetaInfo meta, Method method, Object[] args)
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException
{
- // TODO Auto-generated method stub
- return super.intercept(instance, meta, method, args);
- }
+ AttributeInfo transactionMode =
+ meta.getAttributeForMethod( "transaction.required", method );
+
+ // TransactionManager.getTransaction().beginTransaction();
+
+ Object retValue = null;
+
+ try
+ {
+ retValue = super.intercept(instance, meta, method, args);
+ // TransactionManager.getTransaction().commit();
+ }
+ catch(Exception ex)
+ {
+ // TransactionManager.getTransaction().rollback();
+ }
+
+ return retValue;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: scm-unsubscribe@excalibur.apache.org
For additional commands, e-mail: scm-help@excalibur.apache.org