You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2013/12/27 09:10:03 UTC

svn commit: r1553641 - in /felix/trunk/coordinator: ./ src/main/java/org/apache/felix/coordinator/impl/

Author: cziegeler
Date: Fri Dec 27 08:10:03 2013
New Revision: 1553641

URL: http://svn.apache.org/r1553641
Log:
FELIX-2647 : Implement Coordinator Service - minor updated to orphaned coordination handling, remove unused command code

Removed:
    felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CrdCommand.java
Modified:
    felix/trunk/coordinator/pom.xml
    felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/Activator.java
    felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
    felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationMgr.java
    felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java

Modified: felix/trunk/coordinator/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/pom.xml?rev=1553641&r1=1553640&r2=1553641&view=diff
==============================================================================
--- felix/trunk/coordinator/pom.xml (original)
+++ felix/trunk/coordinator/pom.xml Fri Dec 27 08:10:03 2013
@@ -45,18 +45,6 @@
                 </configuration>
             </plugin>
             <plugin>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <configuration>
-                    <tags>
-                        <tag>
-                            <name>ThreadSafe</name>
-                            <placement>a</placement>
-                            <head>ThreadSafe</head>
-                        </tag>
-                    </tags>
-                </configuration>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>

Modified: felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/Activator.java
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/Activator.java?rev=1553641&r1=1553640&r2=1553641&view=diff
==============================================================================
--- felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/Activator.java (original)
+++ felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/Activator.java Fri Dec 27 08:10:03 2013
@@ -38,8 +38,6 @@ public class Activator implements Bundle
 
     private ServiceRegistration coordinatorService;
 
-//    private ServiceRegistration coordinatorCommand;
-
     public void start(BundleContext context)
     {
         mgr = new CoordinationMgr();
@@ -59,26 +57,10 @@ public class Activator implements Bundle
         props.put(Constants.SERVICE_DESCRIPTION, "Coordinator Service Implementation");
         props.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
         coordinatorService = context.registerService(Coordinator.class.getName(), factory, props);
-/*
-        try
-        {
-            coordinatorCommand = CrdCommand.create(context, mgr);
-        }
-        catch (Throwable t)
-        {
-            // most probably missing resolved packages, ignore
-        }
-*/
     }
 
     public void stop(BundleContext context)
     {
-/*        if (coordinatorCommand != null)
-        {
-            coordinatorCommand.unregister();
-            coordinatorCommand = null;
-        }
-*/
         if (coordinatorService != null)
         {
             coordinatorService.unregister();

Modified: felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java?rev=1553641&r1=1553640&r2=1553641&view=diff
==============================================================================
--- felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java (original)
+++ felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationImpl.java Fri Dec 27 08:10:03 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.felix.coordinator.impl;
 
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -48,6 +49,8 @@ public class CoordinationImpl implements
         TERMINATED
     }
 
+    private final WeakReference<CoordinationHolder> holderRef;
+
     private final CoordinatorImpl owner;
 
     private final long id;
@@ -87,6 +90,8 @@ public class CoordinationImpl implements
         this.variables = new HashMap<Class<?>, Object>();
         this.deadLine = (timeOutInMs > 0) ? System.currentTimeMillis() + timeOutInMs : 0;
 
+        this.holderRef = new WeakReference<CoordinationHolder>(new CoordinationHolder(this));
+
         scheduleTimeout(deadLine);
     }
 
@@ -420,7 +425,7 @@ public class CoordinationImpl implements
         Coordination c = this.owner.getEnclosingCoordination(this);
         if ( c != null )
         {
-            c = new CoordinationHolder((CoordinationImpl)c);
+            c = ((CoordinationImpl)c).holderRef.get();
         }
         return c;
     }
@@ -521,4 +526,8 @@ public class CoordinationImpl implements
 	void setAssociatedThread(final Thread t) {
 	    this.associatedThread = t;
 	}
+
+    public Coordination getHolder() {
+        return this.holderRef.get();
+    }
 }

Modified: felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationMgr.java
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationMgr.java?rev=1553641&r1=1553640&r2=1553641&view=diff
==============================================================================
--- felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationMgr.java (original)
+++ felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinationMgr.java Fri Dec 27 08:10:03 2013
@@ -281,7 +281,7 @@ public class CoordinationMgr implements 
         {
             for(final CoordinationImpl c : this.coordinations.values() )
             {
-                result.add(new CoordinationHolder(c));
+                result.add(c.getHolder());
             }
         }
         return result;

Modified: felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java?rev=1553641&r1=1553640&r2=1553641&view=diff
==============================================================================
--- felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java (original)
+++ felix/trunk/coordinator/src/main/java/org/apache/felix/coordinator/impl/CoordinatorImpl.java Fri Dec 27 08:10:03 2013
@@ -152,7 +152,7 @@ public class CoordinatorImpl implements 
     	// create coordination
         final CoordinationImpl c = mgr.create(this, name, timeout);
 
-        return new CoordinationHolder(c);
+        return c.getHolder();
     }
 
     /**
@@ -187,7 +187,7 @@ public class CoordinatorImpl implements 
         Coordination c = mgr.peek();
         if ( c != null )
         {
-            c = new CoordinationHolder((CoordinationImpl)c);
+            c = ((CoordinationImpl)c).getHolder();
         }
         return c;
     }
@@ -209,7 +209,7 @@ public class CoordinatorImpl implements 
         // create coordination
         final CoordinationImpl c = mgr.create(this, name, timeout);
         this.mgr.push(c);
-        return new CoordinationHolder(c);
+        return c.getHolder();
     }
 
     /**
@@ -221,7 +221,7 @@ public class CoordinatorImpl implements 
         Coordination c = mgr.pop();
         if ( c != null )
         {
-            c = new CoordinationHolder((CoordinationImpl)c);
+            c = ((CoordinationImpl)c).getHolder();
         }
         return c;
     }
@@ -250,7 +250,7 @@ public class CoordinatorImpl implements 
         Coordination c = mgr.getCoordinationById(id);
         if ( c != null )
         {
-            c = new CoordinationHolder((CoordinationImpl)c);
+            c = ((CoordinationImpl)c).getHolder();
         }
         return c;
     }