001 /** 002 * Copyright (c) 2000-present Liferay, Inc. All rights reserved. 003 * 004 * This library is free software; you can redistribute it and/or modify it under 005 * the terms of the GNU Lesser General Public License as published by the Free 006 * Software Foundation; either version 2.1 of the License, or (at your option) 007 * any later version. 008 * 009 * This library is distributed in the hope that it will be useful, but WITHOUT 010 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 011 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 012 * details. 013 */ 014 015 package com.liferay.mail.util; 016 017 import com.liferay.registry.Registry; 018 import com.liferay.registry.RegistryUtil; 019 import com.liferay.registry.ServiceTracker; 020 021 /** 022 * @author Brian Wing Shun Chan 023 * @author Shuyang Zhou 024 * @author Peter Fellwock 025 */ 026 public class HookFactory { 027 028 public static Hook getInstance() { 029 return _instance._serviceTracker.getService(); 030 } 031 032 private HookFactory() { 033 Registry registry = RegistryUtil.getRegistry(); 034 035 _serviceTracker = registry.trackServices(Hook.class); 036 037 _serviceTracker.open(); 038 } 039 040 private static final HookFactory _instance = new HookFactory(); 041 042 private final ServiceTracker<Hook, Hook> _serviceTracker; 043 044 }