You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by gn...@apache.org on 2012/08/01 21:23:36 UTC
svn commit: r1368206 - in
/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint:
./ container/ services/
Author: gnodet
Date: Wed Aug 1 19:23:35 2012
New Revision: 1368206
URL: http://svn.apache.org/viewvc?rev=1368206&view=rev
Log:
[ARIES-896] Deadlock with blueprint services
Conflicts:
blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ExtendedBlueprintContainer.java
blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
Modified:
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ExtendedBlueprintContainer.java
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/services/ExtendedBlueprintContainer.java
Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ExtendedBlueprintContainer.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ExtendedBlueprintContainer.java?rev=1368206&r1=1368205&r2=1368206&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ExtendedBlueprintContainer.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/ExtendedBlueprintContainer.java Wed Aug 1 19:23:35 2012
@@ -16,7 +16,6 @@
*/
package org.apache.aries.blueprint;
-
/**
* @deprecated - use org.apache.aries.blueprint.services.ExtendedBlueprintContainer
* Will be removed in a future version of Aries Blueprint
@@ -24,5 +23,4 @@ package org.apache.aries.blueprint;
@Deprecated
public interface ExtendedBlueprintContainer extends org.apache.aries.blueprint.services.ExtendedBlueprintContainer {
-
}
Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java?rev=1368206&r1=1368205&r2=1368206&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java Wed Aug 1 19:23:35 2012
@@ -300,20 +300,24 @@ public abstract class AbstractServiceRef
}
}
- public void serviceChanged(ServiceEvent event) {
- int eventType = event.getType();
- ServiceReference ref = event.getServiceReference();
- switch (eventType) {
- case ServiceEvent.REGISTERED:
- serviceAdded(ref);
- break;
- case ServiceEvent.MODIFIED:
- serviceModified(ref);
- break;
- case ServiceEvent.UNREGISTERING:
- serviceRemoved(ref);
- break;
- }
+ public void serviceChanged(final ServiceEvent event) {
+ blueprintContainer.getExecutors().submit(new Runnable() {
+ public void run() {
+ int eventType = event.getType();
+ ServiceReference ref = event.getServiceReference();
+ switch (eventType) {
+ case ServiceEvent.REGISTERED:
+ serviceAdded(ref);
+ break;
+ case ServiceEvent.MODIFIED:
+ serviceModified(ref);
+ break;
+ case ServiceEvent.UNREGISTERING:
+ serviceRemoved(ref);
+ break;
+ }
+ }
+ });
}
private void serviceAdded(ServiceReference ref) {
Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java?rev=1368206&r1=1368205&r2=1368206&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java Wed Aug 1 19:23:35 2012
@@ -38,6 +38,7 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import java.util.concurrent.ExecutorService;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
@@ -47,7 +48,6 @@ import java.util.concurrent.atomic.Atomi
import org.apache.aries.blueprint.BlueprintConstants;
import org.apache.aries.blueprint.ComponentDefinitionRegistryProcessor;
import org.apache.aries.blueprint.ExtendedBeanMetadata;
-import org.apache.aries.blueprint.services.ExtendedBlueprintContainer;
import org.apache.aries.blueprint.NamespaceHandler;
import org.apache.aries.blueprint.Processor;
import org.apache.aries.blueprint.di.ExecutionContext;
@@ -55,14 +55,15 @@ import org.apache.aries.blueprint.di.Rec
import org.apache.aries.blueprint.di.Repository;
import org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl;
import org.apache.aries.blueprint.parser.ComponentDefinitionRegistryImpl;
-import org.apache.aries.blueprint.parser.Parser;
import org.apache.aries.blueprint.parser.NamespaceHandlerSet;
+import org.apache.aries.blueprint.parser.Parser;
import org.apache.aries.blueprint.proxy.ProxyUtils;
import org.apache.aries.blueprint.reflect.MetadataUtil;
import org.apache.aries.blueprint.reflect.PassThroughMetadataImpl;
+import org.apache.aries.blueprint.services.ExtendedBlueprintContainer;
import org.apache.aries.blueprint.utils.HeaderParser;
-import org.apache.aries.blueprint.utils.JavaUtils;
import org.apache.aries.blueprint.utils.HeaderParser.PathElement;
+import org.apache.aries.blueprint.utils.JavaUtils;
import org.apache.aries.proxy.ProxyManager;
import org.apache.aries.util.AriesFrameworkUtil;
import org.osgi.framework.Bundle;
@@ -171,6 +172,10 @@ public class BlueprintContainerImpl
this.proxyManager = proxyManager;
}
+ public ExecutorService getExecutors() {
+ return executors;
+ }
+
public Bundle getExtenderBundle() {
return extenderBundle;
}
Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/services/ExtendedBlueprintContainer.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/services/ExtendedBlueprintContainer.java?rev=1368206&r1=1368205&r2=1368206&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/services/ExtendedBlueprintContainer.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/services/ExtendedBlueprintContainer.java Wed Aug 1 19:23:35 2012
@@ -19,6 +19,7 @@ package org.apache.aries.blueprint.servi
import java.security.AccessControlContext;
import java.util.Dictionary;
import java.util.List;
+import java.util.concurrent.ExecutorService;
import org.apache.aries.blueprint.ComponentDefinitionRegistry;
import org.apache.aries.blueprint.Processor;
@@ -80,5 +81,7 @@ public interface ExtendedBlueprintContai
*/
void injectBeanInstance(BeanMetadata bmd, Object o)
throws IllegalArgumentException, ComponentDefinitionException;
-
+
+ ExecutorService getExecutors();
+
}