You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cl...@apache.org on 2009/06/21 11:29:57 UTC

svn commit: r786963 - in /felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction: pom.xml src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java

Author: clement
Date: Sun Jun 21 09:29:55 2009
New Revision: 786963

URL: http://svn.apache.org/viewvc?rev=786963&view=rev
Log:
Update the artifact id to be consistent with others handlers

Modified:
    felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/pom.xml
    felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java

Modified: felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/pom.xml
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/pom.xml?rev=786963&r1=786962&r2=786963&view=diff
==============================================================================
--- felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/pom.xml (original)
+++ felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/pom.xml Sun Jun 21 09:29:55 2009
@@ -2,10 +2,10 @@
   <modelVersion>4.0.0</modelVersion>
   <packaging>bundle</packaging>
   <groupId>org.apache.felix</groupId>
-  <artifactId>org.apache.felix.ipojo.transaction</artifactId>
+  <artifactId>org.apache.felix.ipojo.handler.transaction</artifactId>
   <version>1.3.0-SNAPSHOT</version>
-  <name>Apache Felix iPOJO Transaction</name>
-  
+  <name>Apache Felix iPOJO Transaction Handler</name>
+
   <build>
     <plugins>
       <plugin>
@@ -17,7 +17,7 @@
           <instructions>
             <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
             <Private-Package>org.apache.felix.ipojo.transaction</Private-Package>
-            <Import-Package>*</Import-Package> <!-- YOUR_IMPORTED_PACKAGES -->
+            <Import-Package>*</Import-Package>
           </instructions>
         </configuration>
       </plugin>
@@ -43,7 +43,7 @@
 		</plugin>
     </plugins>
   </build>
-  
+
   <dependencies>
   	<dependency>
   		<groupId>org.apache.felix</groupId>

Modified: felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java
URL: http://svn.apache.org/viewvc/felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java?rev=786963&r1=786962&r2=786963&view=diff
==============================================================================
--- felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java (original)
+++ felix/sandbox/clement/ipojo-utils/transaction/org.apache.felix.ipojo.transaction/src/main/java/org/apache/felix/ipojo/transaction/TransactionHandler.java Sun Jun 21 09:29:55 2009
@@ -5,7 +5,6 @@
 import java.util.Dictionary;
 import java.util.List;
 
-import javax.transaction.RollbackException;
 import javax.transaction.Status;
 import javax.transaction.Synchronization;
 import javax.transaction.SystemException;
@@ -22,50 +21,50 @@
 import org.apache.felix.ipojo.util.Callback;
 
 public class TransactionHandler extends PrimitiveHandler implements Synchronization {
-    
+
     public static final String NAMESPACE= "org.apache.felix.ipojo.transaction";
-    
+
     public static final String NAME= "transaction";
-    
+
     private static final String FIELD_ATTRIBUTE= "field";
-    
+
     private static final String ONCOMMIT_ATTRIBUTE= "oncommit";
-    
+
     private static final String ONROLLBACK_ATTRIBUTE= "onrollback";
-    
+
     private static final String TRANSACTIONNAL_ELEMENT = "transactionnal";
-        
+
     private static final String METHOD_ATTRIBUTE = "method";
-    
+
     private static final String TIMEOUT_ATTRIBUTE = "timeout";
-    
+
     private static final String PROPAGATION_ATTRIBUTE = "propagation";
-    
+
     private static final String EXCEPTIONONROLLBACK_ATTRIBUTE = "exceptiononrollback";
-        
+
     private static final String NOROLLBACKFOR_ATTRIBUTE = "norollbackfor";
-    
+
     public static final int DEFAULT_PROPAGATION = TransactionnalMethod.REQUIRES;
-    
-    
+
+
     private TransactionManager m_transactionManager; // Service Dependency
-    
+
     private List<TransactionnalMethod> m_methods = new ArrayList<TransactionnalMethod>();
-    
+
     private Callback m_onRollback;
-    
+
     private Callback m_onCommit;
 
     private List<Transaction> m_transactions = new ArrayList<Transaction>();
-    
-    
+
+
     public void configure(Element arg0, Dictionary arg1)
             throws ConfigurationException {
         Element[] elements = arg0.getElements(NAME, NAMESPACE);
         if (elements.length > 1) {
             throw new ConfigurationException("The handler " + NAMESPACE + ":" + NAME + " cannot be declared several times");
         }
-        
+
         String field = elements[0].getAttribute(FIELD_ATTRIBUTE);
         if (field != null) {
             FieldMetadata meta = getPojoMetadata().getField(field);
@@ -73,29 +72,29 @@
                 throw new ConfigurationException("The transaction field does not exist in the pojo class : " + field);
             }
             if (! meta.getFieldType().equals(Transaction.class.getName())) {
-                throw new ConfigurationException("The transaction field type must be " + Transaction.class.getName());   
+                throw new ConfigurationException("The transaction field type must be " + Transaction.class.getName());
             }
             // Register the interceptor
             getInstanceManager().register(meta, this);
-           
+
         }
-        
+
         String oncommit = elements[0].getAttribute(ONCOMMIT_ATTRIBUTE);
         if (oncommit != null) {
             m_onCommit = new Callback(oncommit, new String[] { Transaction.class.getName() }, false, getInstanceManager());
         }
-        
+
         String onrollback = elements[0].getAttribute(ONROLLBACK_ATTRIBUTE);
         if (onrollback != null) {
             m_onRollback = new Callback(onrollback, new String[] { Transaction.class.getName() }, false, getInstanceManager());
-        } 
-        
-        
+        }
+
+
         Element[] sub = elements[0].getElements(TRANSACTIONNAL_ELEMENT);
         if (sub == null  || sub.length == 0) {
             throw new ConfigurationException("The handler " + NAMESPACE + ":" + NAME + " must have " + TRANSACTIONNAL_ELEMENT + " subelement");
         }
-        
+
         for (int i = 0; i < sub.length; i++) {
             String method = sub[i].getAttribute(METHOD_ATTRIBUTE);
             String to = sub[i].getAttribute(TIMEOUT_ATTRIBUTE);
@@ -110,54 +109,54 @@
             if (meta == null) {
                 throw new ConfigurationException("A transactionnal method is not in the pojo class : " + method);
             }
-            
+
             int timeout = 0;
             if (to != null) {
                 timeout = new Integer(to).intValue();
             }
-            
+
             int propagation = DEFAULT_PROPAGATION;
             if (propa != null) {
                 propagation = parsePropagation(propa);
             }
-            
+
             List<String> exceptions = new ArrayList<String>();
             if (nrbf != null) {
                 exceptions = (List<String>) ParseUtils.parseArraysAsList(nrbf);
             }
-            
+
             boolean exceptionOnRollback = false;
             if (eorb != null) {
                 exceptionOnRollback = new Boolean(eorb).booleanValue();
             }
-            
+
             TransactionnalMethod tm = new TransactionnalMethod(method, propagation, timeout, exceptions, exceptionOnRollback, this);
             m_methods.add(tm);
             this.getInstanceManager().register(meta, tm);
         }
-        
+
     }
 
     private int parsePropagation(String propa) throws ConfigurationException {
        if (propa.equalsIgnoreCase("requires")) {
            return TransactionnalMethod.REQUIRES;
-           
+
        } else if (propa.equalsIgnoreCase("mandatory")){
            return TransactionnalMethod.MANDATORY;
-           
+
        } else if (propa.equalsIgnoreCase("notsupported")) {
            return TransactionnalMethod.NOT_SUPPORTED;
-           
+
        } else if (propa.equalsIgnoreCase("supported")) {
            return TransactionnalMethod.SUPPORTED;
-           
+
        } else if (propa.equalsIgnoreCase("never")) {
            return TransactionnalMethod.NEVER;
-       
+
         } else if (propa.equalsIgnoreCase("requiresnew")) {
             return TransactionnalMethod.REQUIRES_NEW;
         }
-       
+
        throw new ConfigurationException("Unknown propgation policy : " + propa);
     }
 
@@ -171,13 +170,13 @@
     public void stop() {
         // Nothing to do.
     }
-    
+
     public synchronized void bind(TransactionManager tm) {
         for (TransactionnalMethod method : m_methods) {
             method.setTransactionManager(tm);
         }
     }
-    
+
     public synchronized void unbind(TransactionManager tm) {
         for (TransactionnalMethod method : m_methods) {
             method.setTransactionManager(null);
@@ -200,7 +199,7 @@
                         "Cannot invoke the onRollback method,the method thrown an exception",
                         e1.getTargetException());
             }
-        } 
+        }
     }
 
     public void transactionCommitted(Transaction t) {
@@ -219,17 +218,17 @@
                         "Cannot invoke the onCommit callback,the method thrown an exception",
                         e1.getTargetException());
             }
-        } 
-        
+        }
+
     }
-    
+
     public void stateChanged(int newState) {
         if (newState == ComponentInstance.INVALID) {
-            // rollback all ownded transactions.
+            // rollback all owned transactions.
             for (int i = 0; i < m_methods.size(); i++) {
                 m_methods.get(i).rollbackOwnedTransactions();
             }
-            
+
             for (int i =0; i < m_transactions.size(); i++) {
                 try {
                     m_transactions.get(i).setRollbackOnly();
@@ -239,9 +238,8 @@
             }
         }
     }
-    
+
     public synchronized Object onGet(Object pojo, String fieldName, Object value) {
-        System.out.println("onGet on a transaction object !");
         try {
             if (m_transactionManager != null) {
                 return m_transactionManager.getTransaction();
@@ -269,10 +267,10 @@
         }
     }
 
-    public void beforeCompletion() { 
-        
+    public void beforeCompletion() {
+
     }
-    
+
     public void addTransaction(Transaction transaction) {
         if (m_transactions.contains(transaction)) {
             return;
@@ -288,6 +286,6 @@
     public List<Transaction> getTransactions() {
         return m_transactions;
     }
-  
+
 
 }