aboutsummaryrefslogtreecommitdiffstats
path: root/demo/app/src/main/java
diff options
context:
space:
mode:
authorDecebal Suiu <decebal.suiu@gmail.com>2012-10-11 13:29:43 +0300
committerDecebal Suiu <decebal.suiu@gmail.com>2012-10-11 13:29:43 +0300
commit2aeb77b8c8e6023651d1fc7b9ef31736b855cafa (patch)
tree00b9bf8944c517fe991dbf83da672c002f9f12f0 /demo/app/src/main/java
downloadpf4j-2aeb77b8c8e6023651d1fc7b9ef31736b855cafa.tar.gz
pf4j-2aeb77b8c8e6023651d1fc7b9ef31736b855cafa.zip
first commit
Diffstat (limited to 'demo/app/src/main/java')
-rw-r--r--demo/app/src/main/java/org/pf4j/demo/Boot.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/demo/app/src/main/java/org/pf4j/demo/Boot.java b/demo/app/src/main/java/org/pf4j/demo/Boot.java
new file mode 100644
index 0000000..b34af53
--- /dev/null
+++ b/demo/app/src/main/java/org/pf4j/demo/Boot.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2012 Decebal Suiu
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with
+ * the License. You may obtain a copy of the License in the LICENSE file, or at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations under the License.
+ */
+package org.pf4j.demo;
+
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.pf4j.DefaultPluginManager;
+import org.pf4j.ExtensionWrapper;
+import org.pf4j.PluginManager;
+import org.pf4j.demo.api.Greeting;
+
+/**
+ * A boot class that start the demo.
+ *
+ * @author Decebal Suiu
+ */
+public class Boot {
+
+ public static void main(String[] args) {
+ // print logo
+ printLogo();
+
+ // load and start (active/resolved) plugins
+ final PluginManager pluginManager = new DefaultPluginManager();
+ pluginManager.loadPlugins();
+ pluginManager.startPlugins();
+
+ List<ExtensionWrapper<Greeting>> greetings = pluginManager.getExtensions(Greeting.class);
+ for (ExtensionWrapper<Greeting> greeting : greetings) {
+ System.out.println(">>> " + greeting.getInstance().getGreeting());
+ }
+
+ pluginManager.stopPlugins();
+ /*
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+
+ @Override
+ public void run() {
+ pluginManager.stopPlugins();
+ }
+
+ });
+ */
+ }
+
+ private static void printLogo() {
+ System.out.println(StringUtils.repeat("#", 40));
+ System.out.println(StringUtils.center("PF4J-DEMO", 40));
+ System.out.println(StringUtils.repeat("#", 40));
+ }
+
+}