You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ui...@apache.org on 2013/10/25 13:14:49 UTC
svn commit: r1535689 -
/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
Author: uiterlix
Date: Fri Oct 25 11:14:49 2013
New Revision: 1535689
URL: http://svn.apache.org/r1535689
Log:
Modified ServiceDependencyImpl debug logging to also include the debugKey in the actual log messages.
Modified:
felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
Modified: felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java?rev=1535689&r1=1535688&r2=1535689&view=diff
==============================================================================
--- felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java (original)
+++ felix/trunk/dependencymanager/core/src/main/java/org/apache/felix/dm/impl/dependencies/ServiceDependencyImpl.java Fri Oct 25 11:14:49 2013
@@ -465,9 +465,7 @@ public class ServiceDependencyImpl exten
}
public void addedService(ServiceReference ref, Object service) {
- if (m_debug) {
- log("addedservice: " + ref);
- }
+ debugLog("addedservice: " + ref);
boolean makeAvailable = makeAvailable();
Object[] services;
@@ -478,31 +476,23 @@ public class ServiceDependencyImpl exten
DependencyService ds = (DependencyService) services[i];
if (makeAvailable) {
if (ds.isInstantiated() && isInstanceBound() && isRequired()) {
- if (m_debug) {
- log("invoke added: " + ref);
- }
+ debugLog("invoke added: " + ref);
invokeAdded(ds, ref, service); //**
}
// The dependency callback will be deferred until all required dependency are available.
- if (m_debug) {
- log("dependency available: " + ref);
- }
+ debugLog("dependency available: " + ref);
ds.dependencyAvailable(this); //**
if (!isRequired()) {
// For optional dependency, we always invoke callback, because at this point, we know
// that the service has been started, and the service start method has been called.
// (See the ServiceImpl.bindService method, which will activate optional dependencies using
// startTrackingOptional() method).
- if (m_debug) {
- log("invoke added: " + ref);
- }
+ debugLog("invoke added: " + ref);
invokeAdded(ds, ref, service); //**
}
}
else {
- if (m_debug) {
- log("dependency changed: " + ref);
- }
+ debugLog("dependency changed: " + ref);
ds.dependencyChanged(this); //**
// At this point, either the dependency is optional (meaning that the service has been started,
// because if not, then our dependency would not be active); or the dependency is required,
@@ -511,9 +501,7 @@ public class ServiceDependencyImpl exten
// we only try to invoke the method here if we are really already instantiated
if (ds.isInstantiated() && ds.getCompositionInstances().length > 0) {
- if (m_debug) {
- log("invoke added: " + ref);
- }
+ debugLog("invoke added: " + ref);
invokeAdded(ds, ref, service); //**
}
}
@@ -535,13 +523,9 @@ public class ServiceDependencyImpl exten
}
public void removedService(ServiceReference ref, Object service) {
- if (m_debug) {
- log("removedservice: " + ref);
- }
+ debugLog("removedservice: " + ref + ", rank: " + ref.getProperty("service.ranking"));
boolean makeUnavailable = makeUnavailable();
- if (m_debug) {
- log("make unavailable: " + makeUnavailable);
- }
+ debugLog("make unavailable: " + makeUnavailable);
Object[] services;
synchronized (this) {
services = m_services.toArray();
@@ -563,14 +547,12 @@ public class ServiceDependencyImpl exten
}
}
// unget what we got in addingService (see ServiceTracker 701.4.1)
- m_context.ungetService(ref);
+ m_context.ungetService(ref);
}
public void invokeAdded(DependencyService dependencyService, ServiceReference reference, Object service) {
- if (m_debug) {
- log("invoke added");
- }
+ debugLog("invoke added");
boolean added = false;
synchronized (m_sr) {
Set set = (Set) m_sr.get(dependencyService);
@@ -610,9 +592,7 @@ public class ServiceDependencyImpl exten
}
private void handleAspectAwareAdded(final DependencyService dependencyService, final ServiceReference reference, final Object service) {
- if (m_debug) {
- log("aspectawareadded: " + reference.getProperty("service.ranking"));
- }
+ debugLog("aspectawareadded: " + reference.getProperty("service.ranking"));
if (componentIsDependencyManagerFactory(dependencyService)) {
// component is either aspect or adapter factory instance, these must be ignored.
return;
@@ -645,24 +625,16 @@ public class ServiceDependencyImpl exten
// current highest ranked
prevHighestRankedService = (Tuple)getHighestRankedService(dependencyService, originalServiceId).getValue();
newHighestRankedService = swapHighestRankedService(dependencyService, originalServiceId, reference, service, ranking);
- if (m_debug) {
- log("prevhigh: " + prevHighestRankedService.getServiceReference().getProperty("service.ranking") + ", new high: " + newHighestRankedService.getServiceReference().getProperty("service.ranking"));
- }
+ debugLog("prevhigh: " + prevHighestRankedService.getServiceReference().getProperty("service.ranking") + ", new high: " + newHighestRankedService.getServiceReference().getProperty("service.ranking"));
if (!prevHighestRankedService.getServiceReference().equals(newHighestRankedService.getServiceReference())) {
// new highest ranked service
- if (m_debug) {
- log("New highest ranked to swap to");
- }
+ debugLog("New highest ranked to swap to");
invokeSwapped = true;
} else {
- if (m_debug) {
- log("Ignoring lower ranked or irrelevant swap");
- }
+ debugLog("Ignoring lower ranked or irrelevant swap");
}
}
- if (m_debug) {
- log(m_componentByRank.toString());
- }
+ debugLog(m_componentByRank.toString());
// up until this point should be synchronized on m_componentsByRank to keep integrity of the administration and consequences
// then the do phase comes, here we want to guarantee the effects of this operation are done like they were synchronized, however
@@ -670,15 +642,11 @@ public class ServiceDependencyImpl exten
// original service id, therefore we're using our own guarded block to ensure the correct order.
if (invokeAdded) {
- if (m_debug) {
- log("invoke added: " + reference.getProperty("service.ranking"));
- }
+ debugLog("invoke added: " + reference.getProperty("service.ranking"));
callbackRunnable = createCallbackRunnable(dependencyService, reference, service, m_callbackAdded);
enqueueCallback(callbackRunnable);
} else if (invokeSwapped) {
- if (m_debug) {
- log("invoke swapped: " + newHighestRankedService.getServiceReference().getProperty("service.ranking") + " replacing " + prevHighestRankedService.getServiceReference().getProperty("service.ranking"));
- }
+ debugLog("invoke swapped: " + newHighestRankedService.getServiceReference().getProperty("service.ranking") + " replacing " + prevHighestRankedService.getServiceReference().getProperty("service.ranking"));
callbackRunnable = createSwapRunnable(dependencyService, prevHighestRankedService.getServiceReference(), prevHighestRankedService.getService(), newHighestRankedService.getServiceReference(), newHighestRankedService.getService());
enqueueCallback(callbackRunnable);
}
@@ -718,8 +686,10 @@ public class ServiceDependencyImpl exten
runnable.run();
}
- private void log(String message) {
- m_logger.log(Logger.LOG_DEBUG, message);
+ private void debugLog(String message) {
+ if (m_debug) {
+ m_logger.log(Logger.LOG_DEBUG, "[" + m_debugKey + "] " + message);
+ }
}
private boolean componentIsDependencyManagerFactory(DependencyService dependencyService) {
@@ -782,9 +752,7 @@ public class ServiceDependencyImpl exten
// 1) a call to added(original-service)
// 2) that causes a swap
// 3) a call to removed(aspect-service) <-- that's what we're talking about
- if (m_debug) {
- log(m_componentByRank.toString());
- }
+ debugLog("last service: " + m_componentByRank.toString());
return (componentMap != null && rankings != null && rankings.size() == 1 && ((Entry)rankings.entrySet().iterator().next()).getKey()
.equals(ServiceUtil.getRankingAsInteger(reference)));
}
@@ -795,17 +763,13 @@ public class ServiceDependencyImpl exten
}
public void invokeRemoved(DependencyService dependencyService, ServiceReference reference, Object service) {
- if (m_debug) {
- log("invoke removed");
- }
+ debugLog("invoke removed");
boolean removed = false;
synchronized (m_sr) {
Set set = (Set) m_sr.get(dependencyService);
removed = (set != null && set.remove(new Tuple(reference, service)));
}
- if (m_debug) {
- log("removed: " + removed);
- }
+ debugLog("removed: " + removed);
if (removed) {
if (m_callbackSwapped != null) {
handleAspectAwareRemoved(dependencyService, reference, service);
@@ -817,9 +781,7 @@ public class ServiceDependencyImpl exten
}
private void handleAspectAwareRemoved(DependencyService dependencyService, ServiceReference reference, Object service) {
- if (m_debug) {
- log("aspectawareremoved: " + reference.getProperty("service.ranking"));
- }
+ debugLog("aspectawareremoved: " + reference.getProperty("service.ranking"));
if (componentIsDependencyManagerFactory(dependencyService)) {
// component is either aspect or adapter factory instance, these must be ignored.
return;
@@ -841,15 +803,11 @@ public class ServiceDependencyImpl exten
prevHighestRankedService = (Tuple)getHighestRankedService(dependencyService, originalServiceId).getValue();
if (prevHighestRankedService.getServiceReference().equals(reference)) {
// swapping out
- if (m_debug) {
- log("Swap out on remove!");
- }
+ debugLog("Swap out on remove!");
invokeSwapped = true;
}
}
- if (m_debug) {
- log("is last service: " + invokeRemoved);
- }
+ debugLog("is last service: " + invokeRemoved);
// cleanup
Map componentMap = (Map) m_componentByRank.get(dependencyService); /* <Long, Map<Integer, Tuple>> */
if (componentMap != null) {
@@ -879,15 +837,11 @@ public class ServiceDependencyImpl exten
}
if (invokeRemoved) {
// handle invoke outside the sync block since we won't know what will happen there
- if (m_debug) {
- log("invoke removed: " + reference.getProperty("service.ranking"));
- }
+ debugLog("invoke removed: " + reference.getProperty("service.ranking"));
callbackRunnable = createCallbackRunnable(dependencyService, reference, service, m_callbackRemoved);
enqueueCallback(callbackRunnable);
} else if (invokeSwapped) {
- if (m_debug) {
- log("invoke swapped: " + newHighestRankedService.getServiceReference().getProperty("service.ranking") + " replacing " + prevHighestRankedService.getServiceReference().getProperty("service.ranking"));
- }
+ debugLog("invoke swapped: " + newHighestRankedService.getServiceReference().getProperty("service.ranking") + " replacing " + prevHighestRankedService.getServiceReference().getProperty("service.ranking"));
callbackRunnable = createSwapRunnable(dependencyService, prevHighestRankedService.getServiceReference(), prevHighestRankedService.getService(), newHighestRankedService.getServiceReference(), newHighestRankedService.getService());
enqueueCallback(callbackRunnable);
}
@@ -902,9 +856,7 @@ public class ServiceDependencyImpl exten
}
public void invoke(DependencyService dependencyService, ServiceReference reference, Object service, String name) {
- if (m_debug) {
- log("invoke: " + name);
- }
+ debugLog("invoke: " + name);
if (name != null) {
dependencyService.invokeCallbackMethod(getCallbackInstances(dependencyService), name,
new Class[][] {
@@ -930,25 +882,25 @@ public class ServiceDependencyImpl exten
}
component.invokeCallbackMethod(getCallbackInstances(component), m_callbackSwapped, new Class[][] {
- { m_trackedServiceName, m_trackedServiceName },
- { Object.class, Object.class },
- { ServiceReference.class, m_trackedServiceName, ServiceReference.class, m_trackedServiceName },
- { ServiceReference.class, Object.class, ServiceReference.class, Object.class },
- { Component.class, m_trackedServiceName, m_trackedServiceName },
- { Component.class, Object.class, Object.class },
- { Component.class, ServiceReference.class, m_trackedServiceName, ServiceReference.class, m_trackedServiceName },
- { Component.class, ServiceReference.class, Object.class, ServiceReference.class, Object.class }
- },
- new Object[][] {
- { previous, current },
- { previous, current },
- { previousReference, previous, currentServiceReference, current },
- { previousReference, previous, currentServiceReference, current },
- { component, previous, current },
- { component, previous, current },
- { component, previousReference, previous, currentServiceReference, current },
- { component, previousReference, previous, currentServiceReference, current }
- });
+ { m_trackedServiceName, m_trackedServiceName },
+ { Object.class, Object.class },
+ { ServiceReference.class, m_trackedServiceName, ServiceReference.class, m_trackedServiceName },
+ { ServiceReference.class, Object.class, ServiceReference.class, Object.class },
+ { Component.class, m_trackedServiceName, m_trackedServiceName },
+ { Component.class, Object.class, Object.class },
+ { Component.class, ServiceReference.class, m_trackedServiceName, ServiceReference.class, m_trackedServiceName },
+ { Component.class, ServiceReference.class, Object.class, ServiceReference.class, Object.class }
+ },
+ new Object[][] {
+ { previous, current },
+ { previous, current },
+ { previousReference, previous, currentServiceReference, current },
+ { previousReference, previous, currentServiceReference, current },
+ { component, previous, current },
+ { component, previous, current },
+ { component, previousReference, previous, currentServiceReference, current },
+ { component, previousReference, previous, currentServiceReference, current }
+ });
}
protected synchronized boolean makeAvailable() {
@@ -1286,9 +1238,7 @@ public class ServiceDependencyImpl exten
}
public void invokeAdded(DependencyService service) {
- if (m_debug) {
- log("invoke added due to configure. (component is activated)");
- }
+ debugLog("invoke added due to configure. (component is activated)");
ServiceReference[] refs = m_tracker.getServiceReferences();
if (refs != null) {
for (int i = 0; i < refs.length; i++) {
@@ -1300,9 +1250,7 @@ public class ServiceDependencyImpl exten
}
public void invokeRemoved(DependencyService service) {
- if (m_debug) {
- log("invoke removed due to unconfigure. (component is destroyed)");
- }
+ debugLog("invoke removed due to unconfigure. (component is destroyed)");
Set references = null;
Object[] tupleArray = null;
synchronized (m_sr) {