You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Plugin.java 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Copyright 2012 Decebal Suiu
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with
  5. * the License. You may obtain a copy of the License in the LICENSE file, or at:
  6. *
  7. * http://www.apache.org/licenses/LICENSE-2.0
  8. *
  9. * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
  10. * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
  11. * specific language governing permissions and limitations under the License.
  12. */
  13. package ro.fortsoft.pf4j;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. /**
  17. * This class will be extended by all plugins and
  18. * serve as the common class between a plugin and the application.
  19. *
  20. * @author Decebal Suiu
  21. */
  22. public abstract class Plugin {
  23. /**
  24. * Makes logging service available for descending classes.
  25. */
  26. protected final Logger log = LoggerFactory.getLogger(getClass());
  27. /**
  28. * Wrapper of the plugin.
  29. */
  30. protected PluginWrapper wrapper;
  31. /**
  32. * Constructor to be used by plugin manager for plugin instantiation.
  33. * Your plugins have to provide constructor with this exact signature to
  34. * be successfully loaded by manager.
  35. */
  36. public Plugin(final PluginWrapper wrapper) {
  37. if (wrapper == null) {
  38. throw new IllegalArgumentException("Wrapper cannot be null");
  39. }
  40. this.wrapper = wrapper;
  41. }
  42. /**
  43. * Retrieves the wrapper of this plug-in.
  44. */
  45. public final PluginWrapper getWrapper() {
  46. return wrapper;
  47. }
  48. /**
  49. * Start method is called by the application when the plugin is loaded.
  50. */
  51. public void start() throws PluginException {
  52. }
  53. /**
  54. * Stop method is called by the application when the plugin is unloaded.
  55. */
  56. public void stop() throws PluginException {
  57. }
  58. }