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;
}