|
From: <fd...@us...> - 2010-05-12 10:28:30
|
Revision: 5747
http://jnode.svn.sourceforge.net/jnode/?rev=5747&view=rev
Author: fduminy
Date: 2010-05-12 10:28:24 +0000 (Wed, 12 May 2010)
Log Message:
-----------
removed dependencies on PluginRegistryModel by using PluginRegistry interface instead
Signed-off-by: Fabien DUMINY <fab...@we...>
Modified Paths:
--------------
trunk/cli/src/commands/org/jnode/command/system/PluginCommand.java
trunk/core/src/core/org/jnode/boot/InitJarProcessor.java
trunk/core/src/core/org/jnode/boot/Main.java
trunk/core/src/core/org/jnode/plugin/PluginRegistry.java
trunk/core/src/core/org/jnode/plugin/model/PluginRegistryModel.java
trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java
Modified: trunk/cli/src/commands/org/jnode/command/system/PluginCommand.java
===================================================================
--- trunk/cli/src/commands/org/jnode/command/system/PluginCommand.java 2010-04-03 19:17:29 UTC (rev 5746)
+++ trunk/cli/src/commands/org/jnode/command/system/PluginCommand.java 2010-05-12 10:28:24 UTC (rev 5747)
@@ -147,7 +147,7 @@
}
private void loadPlugin(String id, String version) throws PluginException {
- mgr.getRegistry().loadPlugin(mgr.getLoaderManager(), id, version);
+ mgr.getRegistry().loadPlugin(mgr.getLoaderManager(), id, version, true); //resolve=true
out.format(fmt_load, id, version);
}
@@ -156,11 +156,11 @@
final List<PluginReference> refs = reg.unloadPlugin(id);
for (PluginReference ref : refs) {
if (reg.getPluginDescriptor(ref.getId()) == null) {
- reg.loadPlugin(mgr.getLoaderManager(), ref.getId(), ref.getVersion());
+ reg.loadPlugin(mgr.getLoaderManager(), ref.getId(), ref.getVersion(), true); //resolve=true
}
}
if (reg.getPluginDescriptor(id) == null) {
- reg.loadPlugin(mgr.getLoaderManager(), id, version);
+ reg.loadPlugin(mgr.getLoaderManager(), id, version, true); //resolve=true
}
out.format(fmt_reload, id, version);
}
Modified: trunk/core/src/core/org/jnode/boot/InitJarProcessor.java
===================================================================
--- trunk/core/src/core/org/jnode/boot/InitJarProcessor.java 2010-04-03 19:17:29 UTC (rev 5746)
+++ trunk/core/src/core/org/jnode/boot/InitJarProcessor.java 2010-05-12 10:28:24 UTC (rev 5747)
@@ -33,7 +33,7 @@
import org.jnode.plugin.PluginDescriptor;
import org.jnode.plugin.PluginException;
import org.jnode.plugin.PluginLoader;
-import org.jnode.plugin.model.PluginRegistryModel;
+import org.jnode.plugin.PluginRegistry;
import org.jnode.system.BootLog;
import org.jnode.system.MemoryResource;
import org.jnode.util.JarBuffer;
@@ -72,7 +72,7 @@
*
* @param piRegistry
*/
- public List<PluginDescriptor> loadPlugins(PluginRegistryModel piRegistry) {
+ public List<PluginDescriptor> loadPlugins(PluginRegistry piRegistry) {
if (jbuf == null) {
return null;
}
@@ -86,7 +86,7 @@
// Load it
loader.setBuffer(entry.getValue());
final PluginDescriptor descr = piRegistry.loadPlugin(
- loader, "", "", false);
+ loader, "", "", false); //resolve=false
descriptors.add(descr);
} catch (PluginException ex) {
BootLog.error("Cannot load " + name, ex);
Modified: trunk/core/src/core/org/jnode/boot/Main.java
===================================================================
--- trunk/core/src/core/org/jnode/boot/Main.java 2010-04-03 19:17:29 UTC (rev 5746)
+++ trunk/core/src/core/org/jnode/boot/Main.java 2010-05-12 10:28:24 UTC (rev 5747)
@@ -23,16 +23,16 @@
import java.lang.reflect.Method;
import java.util.List;
+import org.jnode.annotation.LoadStatics;
+import org.jnode.annotation.SharedStatics;
+import org.jnode.annotation.Uninterruptible;
import org.jnode.plugin.PluginDescriptor;
import org.jnode.plugin.PluginManager;
+import org.jnode.plugin.PluginRegistry;
import org.jnode.plugin.manager.DefaultPluginManager;
-import org.jnode.plugin.model.PluginRegistryModel;
import org.jnode.system.BootLog;
import org.jnode.vm.Unsafe;
import org.jnode.vm.VmSystem;
-import org.jnode.annotation.LoadStatics;
-import org.jnode.annotation.SharedStatics;
-import org.jnode.annotation.Uninterruptible;
/**
* First class that is executed when JNode boots.
@@ -49,7 +49,7 @@
/**
* Initialized in org.jnode.build.x86.BootImageBuilder.initMain().
*/
- private static PluginRegistryModel pluginRegistry;
+ private static PluginRegistry pluginRegistry;
/**
* First java entry point after the assembler kernel has booted.
Modified: trunk/core/src/core/org/jnode/plugin/PluginRegistry.java
===================================================================
--- trunk/core/src/core/org/jnode/plugin/PluginRegistry.java 2010-04-03 19:17:29 UTC (rev 5746)
+++ trunk/core/src/core/org/jnode/plugin/PluginRegistry.java 2010-05-12 10:28:24 UTC (rev 5747)
@@ -59,10 +59,11 @@
* @param loader
* @param pluginId
* @param pluginVersion
+ * @param resolve true to resolve the plugin dependencies, false otherwise
* @return The descriptor of the loaded plugin.
* @throws PluginException
*/
- public PluginDescriptor loadPlugin(PluginLoader loader, String pluginId, String pluginVersion)
+ public PluginDescriptor loadPlugin(PluginLoader loader, String pluginId, String pluginVersion, boolean resolve)
throws PluginException;
/**
Modified: trunk/core/src/core/org/jnode/plugin/model/PluginRegistryModel.java
===================================================================
--- trunk/core/src/core/org/jnode/plugin/model/PluginRegistryModel.java 2010-04-03 19:17:29 UTC (rev 5746)
+++ trunk/core/src/core/org/jnode/plugin/model/PluginRegistryModel.java 2010-05-12 10:28:24 UTC (rev 5747)
@@ -288,29 +288,27 @@
}
/**
- * Load a plugin from a given loader.
- *
- * @param loader
- * @param pluginId
- * @param pluginVersion
- * @return The descriptor of the loaded plugin.
- * @throws PluginException
+ * {@inheritDoc}
*/
- public PluginDescriptor loadPlugin(final PluginLoader loader, final String pluginId, final String pluginVersion)
+ public PluginDescriptor loadPlugin(final PluginLoader loader, final String pluginId, final String pluginVersion, boolean resolve)
throws PluginException {
final SecurityManager sm = System.getSecurityManager();
if (sm != null) {
sm.checkPermission(PluginSecurityConstants.LOAD_PERM);
}
// Load the requested plugin
- final HashMap<String, PluginDescriptorModel> descriptors = new HashMap<String, PluginDescriptorModel>();
- final PluginDescriptorModel descr = loadPlugin(loader, pluginId, pluginVersion, false);
- descriptors.put(descr.getId(), descr);
- // Load the dependent plugins
- loadDependencies(loader, descr, descriptors);
-
- // Resolve the loaded descriptors.
- resolveDescriptors(descriptors.values());
+ final PluginDescriptorModel descr = loadPluginImpl(loader, pluginId, pluginVersion);
+
+ if (resolve) {
+ final HashMap<String, PluginDescriptorModel> descriptors = new HashMap<String, PluginDescriptorModel>();
+ descriptors.put(descr.getId(), descr);
+ // Load the dependent plugins
+ loadDependencies(loader, descr, descriptors);
+
+ // Resolve the loaded descriptors.
+ resolveDescriptors(descriptors.values());
+ }
+
return descr;
}
@@ -343,13 +341,13 @@
if (descriptors.containsKey(id)) {
return;
}
- final PluginDescriptorModel descr = loadPlugin(loader, id, version, false);
+ final PluginDescriptorModel descr = loadPluginImpl(loader, id, version);
descriptors.put(descr.getId(), descr);
loadDependencies(loader, descr, descriptors);
}
/**
- * Load a plugin from a given loader.
+ * Load a plugin from a given loader but doesn't resolve its dependencies.
*
* @param loader
* @param pluginId
@@ -357,12 +355,8 @@
* @return The descriptor of the loaded plugin.
* @throws PluginException
*/
- public PluginDescriptorModel loadPlugin(final PluginLoader loader, final String pluginId,
- final String pluginVersion, boolean resolve) throws PluginException {
- final SecurityManager sm = System.getSecurityManager();
- if (sm != null) {
- sm.checkPermission(PluginSecurityConstants.LOAD_PERM);
- }
+ private final PluginDescriptorModel loadPluginImpl(final PluginLoader loader, final String pluginId,
+ final String pluginVersion) throws PluginException {
final PluginRegistryModel registry = this;
final PluginJar pluginJar;
try {
@@ -386,11 +380,7 @@
throw new PluginException(ex);
}
}
- final PluginDescriptorModel descr = pluginJar.getDescriptorModel();
- if (resolve) {
- descr.resolve(this);
- }
- return descr;
+ return pluginJar.getDescriptorModel();
}
/**
Modified: trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java
===================================================================
--- trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java 2010-04-03 19:17:29 UTC (rev 5746)
+++ trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java 2010-05-12 10:28:24 UTC (rev 5747)
@@ -225,7 +225,7 @@
PluginManager mgr = InitialNaming.lookup(PluginManager.NAME);
PluginRegistry reg = mgr.getRegistry();
if (reg.getPluginDescriptor(id) == null) {
- reg.loadPlugin(mgr.getLoaderManager(), id, ver);
+ reg.loadPlugin(mgr.getLoaderManager(), id, ver, true); //resolve=true
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|