in core/src/main/java/org/apache/sling/testing/mock/osgi/OsgiServiceUtil.java [73:109]
public static boolean activateDeactivate(Object target, MockComponentContext componentContext, boolean activate) {
Class<?> targetClass = target.getClass();
// get method name for activation/deactivation from osgi metadata
OsgiMetadata metadata = OsgiMetadataUtil.getMetadata(targetClass);
if (metadata == null) {
throw new NoScrMetadataException(targetClass);
}
String methodName;
if (activate) {
methodName = metadata.getActivateMethodName();
} else {
methodName = metadata.getDeactivateMethodName();
}
boolean fallbackDefaultName = false;
if (StringUtils.isEmpty(methodName)) {
fallbackDefaultName = true;
if (activate) {
methodName = "activate";
} else {
methodName = "deactivate";
}
}
// try to find matching activate/deactivate method and execute it
if (invokeLifecycleMethod(target, targetClass, methodName, !activate,
componentContext, componentContext.getPropertiesAsMap())) {
return true;
}
if (fallbackDefaultName) {
return false;
}
throw new RuntimeException("No matching " + (activate ? "activation" : "deactivation") + " method with name '" + methodName + "' "
+ " found in class " + targetClass.getName());
}