You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by dj...@apache.org on 2012/09/12 01:01:29 UTC

svn commit: r1383647 - in /felix/trunk/scr: pom.xml src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java

Author: djencks
Date: Tue Sep 11 23:01:29 2012
New Revision: 1383647

URL: http://svn.apache.org/viewvc?rev=1383647&view=rev
Log:
FELIX-3662 switch to backport-util-concurrent for pre java 5 concurrent emulation

Modified:
    felix/trunk/scr/pom.xml
    felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java

Modified: felix/trunk/scr/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/scr/pom.xml?rev=1383647&r1=1383646&r2=1383647&view=diff
==============================================================================
--- felix/trunk/scr/pom.xml (original)
+++ felix/trunk/scr/pom.xml Tue Sep 11 23:01:29 2012
@@ -111,12 +111,12 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>concurrent</groupId>
-            <artifactId>concurrent</artifactId>
-            <version>1.3.4</version>
+            <groupId>backport-util-concurrent</groupId>
+            <artifactId>backport-util-concurrent</artifactId>
+            <version>3.1</version>
             <scope>provided</scope>
         </dependency>
-        
+
         <!-- Integration Testing with Pax Exam -->
         <dependency>
             <groupId>org.ops4j.pax.exam</groupId>
@@ -305,7 +305,21 @@
                         </DynamicImport-Package>
                         <Embed-Dependency>
                             kxml2;inline=org/kxml2/io/KXmlParser.class|org/xmlpull/v1/XmlPull**,
-                            concurrent;inline=EDU/oswego/cs/dl/util/concurrent/ReentrantWriterPreferenceReadWriteLock.class|EDU/oswego/cs/dl/util/concurrent/WriterPreferenceReadWriteLock*|EDU/oswego/cs/dl/util/concurrent/ReadWriteLock.class|EDU/oswego/cs/dl/util/concurrent/SynchronizedRef.class|EDU/oswego/cs/dl/util/concurrent/SynchronizedVariable.class|EDU/oswego/cs/dl/util/concurrent/Sync.class|EDU/oswego/cs/dl/util/concurrent/Executor.class
+                            backport-util-concurrent;inline=edu/emory/mathcs/backport/java/util/concurrent/TimeUnit.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/TimeUnit*.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/ReentrantReadWriteLock.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/ReentrantReadWriteLock*.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/ReadWriteLock.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/Lock.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/Condition.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/CondVar.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/locks/CondVar*.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/helpers/NanoTimer.class
+                            |edu/emory/mathcs/backport/java/util/Arrays.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/helpers/Utils.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/helpers/Utils*1.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/helpers/Utils*MillisProvider.class
+                            |edu/emory/mathcs/backport/java/util/concurrent/atomic/AtomicReference.class
                         </Embed-Dependency>
                     </instructions>
                 </configuration>

Modified: felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java
URL: http://svn.apache.org/viewvc/felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java?rev=1383647&r1=1383646&r2=1383647&view=diff
==============================================================================
--- felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java (original)
+++ felix/trunk/scr/src/main/java/org/apache/felix/scr/impl/manager/AbstractComponentManager.java Tue Sep 11 23:01:29 2012
@@ -1917,50 +1917,44 @@ public abstract class AbstractComponentM
         }
     }
 
-    private static class EDULock extends EDU.oswego.cs.dl.util.concurrent.ReentrantWriterPreferenceReadWriteLock implements LockWrapper
+    private static class EDULock  implements LockWrapper
     {
+        private final edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock lock = new edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock( );
+
         public boolean tryReadLock( long milliseconds ) throws InterruptedException
         {
-            return readLock().attempt( milliseconds );
+             return lock.readLock().tryLock( milliseconds, edu.emory.mathcs.backport.java.util.concurrent.TimeUnit.MILLISECONDS );
         }
 
         public long getReadHoldCount()
         {
-            return readers_.size();
+            return lock.getReadHoldCount();
         }
 
         public void unlockReadLock()
         {
-            readLock().release();
+            lock.readLock().unlock();
         }
 
         public boolean tryWriteLock( long milliseconds ) throws InterruptedException
         {
-            return writeLock().attempt( milliseconds );
+            return lock.writeLock().tryLock( milliseconds, edu.emory.mathcs.backport.java.util.concurrent.TimeUnit.MILLISECONDS );
         }
 
         public long getWriteHoldCount()
         {
-            return writeHolds_;
+            return lock.getWriteHoldCount();
         }
 
         public void unlockWriteLock()
         {
-            writeLock().release();
+            lock.writeLock().unlock();
         }
 
         public void deescalate()
         {
-            try
-            {
-                readLock().acquire();
-            }
-            catch ( InterruptedException e )
-            {
-                //should not happen, we have the write lock
-                throw ( IllegalStateException ) new IllegalStateException( "Unexpected InterruptedException while acquiring read lock and holding write lock" ).initCause( e );
-            }
-            writeLock().release();
+            lock.readLock().lock();
+            lock.writeLock().unlock();
         }
     }
 
@@ -1996,7 +1990,7 @@ public abstract class AbstractComponentM
 
     private static class EDUAtomicReferenceWrapper implements AtomicReferenceWrapper
     {
-        private final EDU.oswego.cs.dl.util.concurrent.SynchronizedRef ref = new EDU.oswego.cs.dl.util.concurrent.SynchronizedRef( null );
+        private final edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicReference ref = new edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicReference(  );
 
         public Object get()
         {
@@ -2004,13 +1998,13 @@ public abstract class AbstractComponentM
         }
 
         public void set(Object o)
-         {
-             ref.set( o );
-         }
+        {
+            ref.set( o );
+        }
 
         public boolean compareAndSet(Object expected, Object replacement)
         {
-            return ref.commit( expected, replacement );
+            return ref.compareAndSet( expected, replacement );
         }
     }