01: /*****************************************************************************
02: * Java Plug-in Framework (JPF)
03: * Copyright (C) 2004-2005 Dmitry Olshansky
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: *****************************************************************************/package org.java.plugin.boot;
19:
20: import java.util.Collection;
21:
22: import org.java.plugin.PluginManager.PluginLocation;
23: import org.java.plugin.util.ExtendedProperties;
24:
25: /**
26: * Interface to encapsulate logic for gathering information about available
27: * plug-ins locations.
28: *
29: * @version $Id$
30: */
31: public interface PluginsCollector {
32: /**
33: * Configures this collector instance, this method will be called once
34: * before any other method call in this class. There is no pre-defined
35: * configuration parameters, see concrete implementations for supported
36: * parameters.
37: * @param configuration application configuration data from
38: * <code>boot.properties</code> file and
39: * <code>System</code> properties as defaults
40: * @throws Exception if any error has occurred during collector configuring
41: */
42: void configure(ExtendedProperties configuration) throws Exception;
43:
44: /**
45: * @return collection of all discovered
46: * {@link org.java.plugin.PluginManager.PluginLocation plug-in locations}
47: */
48: Collection<PluginLocation> collectPluginLocations();
49: }
|