public class ServiceDynamicInterceptor extends ServiceInvoker implements org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationEventPublisherAware
| Modifier and Type | Class and Description |
|---|---|
private class |
ServiceDynamicInterceptor.EventSenderRetryTemplate
Override the default implementation to plug in event notification.
|
private class |
ServiceDynamicInterceptor.Listener
Listener tracking the OSGi services which form the dynamic reference.
|
private class |
ServiceDynamicInterceptor.ServiceLookUpCallback |
private class |
ServiceDynamicInterceptor.ServiceReferenceLookUpCallback |
| Modifier and Type | Field and Description |
|---|---|
private org.springframework.context.ApplicationEventPublisher |
applicationEventPublisher
event publisher
|
private org.osgi.framework.BundleContext |
bundleContext |
private java.lang.ClassLoader |
classLoader
TCCL to set when calling listeners
|
private OsgiServiceDependency |
dependency
dependency object
|
private boolean |
destroyed
flag indicating whether the proxy is already destroyed or not
|
private java.lang.Object |
eventSource
dependable service importer
|
private org.osgi.framework.Filter |
filter |
private java.lang.String |
filterClassName |
private static int |
hashCode |
private ReferenceHolder |
holder
service reference/service holder
|
private boolean |
isDuringDestruction
flag indicating whether the destruction has started or not
|
private org.osgi.framework.ServiceListener |
listener
event listener
|
private OsgiServiceLifecycleListener[] |
listeners
listener that need to be informed of bind/rebind/unbind
|
private java.lang.Object |
lock
used for reading/setting property and sending notifications between the event listener and any threads waiting
for an OSGi service to appear
|
private boolean |
mandatoryService
mandatory flag
|
private java.lang.Object |
proxy
reference to the created proxy passed to the listeners
|
private static org.apache.commons.logging.Log |
PUBLIC_LOGGER
public logger
|
private SwappingServiceReferenceProxy |
referenceDelegate |
private RetryCallback<java.lang.Object> |
retryCallback
retry callback
|
private RetryTemplate |
retryTemplate
retry template
|
private java.lang.String |
sourceName
event source (importer) name
|
private java.util.List<ImporterStateListener> |
stateListeners
internal state listeners
|
private boolean |
sticky |
private boolean |
useBlueprintExceptions
standard exception flag
|
log| Constructor and Description |
|---|
ServiceDynamicInterceptor(org.osgi.framework.BundleContext context,
java.lang.String filterClassName,
org.osgi.framework.Filter filter,
java.lang.ClassLoader classLoader) |
| Modifier and Type | Method and Description |
|---|---|
void |
afterPropertiesSet() |
void |
destroy() |
boolean |
equals(java.lang.Object other) |
OsgiServiceLifecycleListener[] |
getListeners() |
RetryTemplate |
getRetryTemplate() |
org.osgi.framework.ServiceReference |
getServiceReference()
Convenience method exposing the target (OSGi service) reference so that
subinterceptors can access it.
|
java.lang.Object |
getTarget()
Determine the target object to execute the invocation upon.
|
org.osgi.framework.ServiceReference |
getTargetReference() |
int |
hashCode() |
private java.lang.Object |
lookupService()
Looks the service by waiting the service to appear.
|
private org.osgi.framework.ServiceReference |
lookupServiceReference()
Looks for the service reference to appear.
|
private void |
publishEvent(org.springframework.context.ApplicationEvent event) |
void |
setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher) |
void |
setListeners(OsgiServiceLifecycleListener[] listeners) |
void |
setMandatoryService(boolean mandatoryService) |
void |
setProxy(java.lang.Object proxy) |
void |
setRetryTimeout(long timeout) |
void |
setServiceImporter(java.lang.Object importer) |
void |
setServiceImporterName(java.lang.String name) |
void |
setStateListeners(java.util.List stateListeners)
Internal state listeners
|
void |
setSticky(boolean sticky) |
void |
setUseBlueprintExceptions(boolean useBlueprintExceptions) |
doInvoke, invokeprivate static final int hashCode
private static final org.apache.commons.logging.Log PUBLIC_LOGGER
private final org.osgi.framework.BundleContext bundleContext
private final java.lang.String filterClassName
private final org.osgi.framework.Filter filter
private final java.lang.ClassLoader classLoader
private final SwappingServiceReferenceProxy referenceDelegate
private final org.osgi.framework.ServiceListener listener
private boolean mandatoryService
private boolean isDuringDestruction
private volatile boolean destroyed
private final java.lang.Object lock
private volatile ReferenceHolder holder
private final RetryTemplate retryTemplate
private final RetryCallback<java.lang.Object> retryCallback
private java.lang.Object eventSource
private java.lang.String sourceName
private OsgiServiceLifecycleListener[] listeners
private java.lang.Object proxy
private org.springframework.context.ApplicationEventPublisher applicationEventPublisher
private OsgiServiceDependency dependency
private java.util.List<ImporterStateListener> stateListeners
private boolean useBlueprintExceptions
private boolean sticky
public ServiceDynamicInterceptor(org.osgi.framework.BundleContext context,
java.lang.String filterClassName,
org.osgi.framework.Filter filter,
java.lang.ClassLoader classLoader)
public java.lang.Object getTarget()
ServiceInvokergetTarget in class ServiceInvokerpublic org.osgi.framework.ServiceReference getTargetReference()
private java.lang.Object lookupService()
private org.osgi.framework.ServiceReference lookupServiceReference()
private void publishEvent(org.springframework.context.ApplicationEvent event)
public void afterPropertiesSet()
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBeanpublic void destroy()
destroy in interface org.springframework.beans.factory.DisposableBeandestroy in class ServiceInvokerpublic org.osgi.framework.ServiceReference getServiceReference()
getServiceReference in interface ServiceReferenceProvidergetServiceReference in class ServiceInvokerpublic void setRetryTimeout(long timeout)
public RetryTemplate getRetryTemplate()
public OsgiServiceLifecycleListener[] getListeners()
public void setListeners(OsgiServiceLifecycleListener[] listeners)
public void setServiceImporter(java.lang.Object importer)
public void setServiceImporterName(java.lang.String name)
public void setMandatoryService(boolean mandatoryService)
public void setProxy(java.lang.Object proxy)
public void setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAwarepublic void setStateListeners(java.util.List stateListeners)
public void setUseBlueprintExceptions(boolean useBlueprintExceptions)
public void setSticky(boolean sticky)
public boolean equals(java.lang.Object other)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Object