001
014
015 package com.liferay.portal.osgi;
016
017 import com.liferay.portal.kernel.log.Log;
018 import com.liferay.portal.kernel.log.LogFactoryUtil;
019 import com.liferay.portal.kernel.util.StringUtil;
020
021 import org.osgi.framework.Constants;
022 import org.osgi.framework.ServiceEvent;
023 import org.osgi.framework.ServiceReference;
024
025
028 public class ServiceListener
029 extends BaseListener implements org.osgi.framework.ServiceListener {
030
031 public void serviceChanged(ServiceEvent serviceEvent) {
032 try {
033 int type = serviceEvent.getType();
034
035 if (type == ServiceEvent.MODIFIED) {
036 serviceEventModified(serviceEvent);
037 }
038 else if (type == ServiceEvent.REGISTERED) {
039 serviceEventRegistered(serviceEvent);
040 }
041 else if (type == ServiceEvent.UNREGISTERING) {
042 serviceEventUnregistering(serviceEvent);
043 }
044 }
045 catch (Exception e) {
046 _log.error(e, e);
047 }
048 }
049
050 protected String getLogMessage(
051 String state, ServiceReference<?> serviceReference) {
052
053 String message = StringUtil.merge(
054 (String[])serviceReference.getProperty(Constants.OBJECTCLASS));
055
056 return getLogMessage(state, message);
057 }
058
059 protected void serviceEventModified(ServiceEvent serviceEvent)
060 throws Exception {
061
062 ServiceReference<?> serviceReference =
063 serviceEvent.getServiceReference();
064
065 if (_log.isInfoEnabled()) {
066 _log.info(getLogMessage("[MODIFIED]", serviceReference));
067 }
068 }
069
070 protected void serviceEventRegistered(ServiceEvent serviceEvent)
071 throws Exception {
072
073 ServiceReference<?> serviceReference =
074 serviceEvent.getServiceReference();
075
076 if (_log.isInfoEnabled()) {
077 _log.info(getLogMessage("[REGISTERED]", serviceReference));
078 }
079 }
080
081 protected void serviceEventUnregistering(ServiceEvent serviceEvent)
082 throws Exception {
083
084 ServiceReference<?> serviceReference =
085 serviceEvent.getServiceReference();
086
087 if (_log.isInfoEnabled()) {
088 _log.info(getLogMessage("[UNREGISTERING]", serviceReference));
089 }
090 }
091
092 private static Log _log = LogFactoryUtil.getLog(ServiceListener.class);
093
094 }