List of usage examples for com.liferay.portal.kernel.model ModelListenerRegistrationUtil unregister
public static void unregister(ModelListener<?> modelListener)
From source file:com.liferay.osb.scv.connector.internal.jsonws.SCVUserJSONWS.java
License:Open Source License
protected void initServiceTracker() throws Exception { _serviceTracker = ServiceTrackerFactory.open(_bundleContext, SCVModel.class, new ServiceTrackerCustomizer<SCVModel, SCVModel>() { @Override//w ww .java 2s. c o m public SCVModel addingService(ServiceReference<SCVModel> serviceReference) { SCVModel scvModel = _bundleContext.getService(serviceReference); Class<?> clazz = getModelClass(scvModel); _scvModelMap.put(clazz.getSimpleName(), scvModel); _modelClasses.put(clazz.getSimpleName(), getModelClass(scvModel)); ModelListenerRegistrationUtil.register(scvModel); return scvModel; } @Override public void modifiedService(ServiceReference<SCVModel> serviceReference, SCVModel scvModel) { removedService(serviceReference, scvModel); addingService(serviceReference); } @Override public void removedService(ServiceReference<SCVModel> serviceReference, SCVModel scvModel) { Class<?> clazz = getModelClass(scvModel); _scvModelMap.remove(clazz.getSimpleName(), scvModel); _modelClasses.remove(clazz.getSimpleName(), getModelClass(scvModel)); ModelListenerRegistrationUtil.unregister(scvModel); _bundleContext.ungetService(serviceReference); } protected Class<?> getModelClass(SCVModel scvModel) { Class<?> clazz = scvModel.getClass(); if (ProxyUtil.isProxyClass(clazz)) { InvocationHandler invocationHandler = ProxyUtil.getInvocationHandler(scvModel); if (invocationHandler instanceof ClassLoaderBeanHandler) { ClassLoaderBeanHandler classLoaderBeanHandler = (ClassLoaderBeanHandler) invocationHandler; Object bean = classLoaderBeanHandler.getBean(); clazz = bean.getClass(); } } return ReflectionUtil.getGenericSuperType(clazz); } }); }