|
From: <ls...@us...> - 2007-04-21 13:11:21
|
Revision: 3171
http://jnode.svn.sourceforge.net/jnode/?rev=3171&view=rev
Author: lsantha
Date: 2007-04-21 06:11:19 -0700 (Sat, 21 Apr 2007)
Log Message:
-----------
Factored out the code related to emulation.
Modified Paths:
--------------
trunk/distr/src/apps/org/jnode/apps/jpartition/JPartition.java
Added Paths:
-----------
trunk/distr/src/emu/
trunk/distr/src/emu/org/
trunk/distr/src/emu/org/jnode/
trunk/distr/src/emu/org/jnode/emu/
trunk/distr/src/emu/org/jnode/emu/DeviceManager.java
trunk/distr/src/emu/org/jnode/emu/DummyExtensionPoint.java
trunk/distr/src/emu/org/jnode/emu/EditEmu.java
trunk/distr/src/emu/org/jnode/emu/Emu.java
trunk/distr/src/emu/org/jnode/emu/ShellEmu.java
Removed Paths:
-------------
trunk/distr/src/apps/org/jnode/apps/console/ShellEmu.java
trunk/distr/src/apps/org/jnode/apps/editor/EditEmu.java
Deleted: trunk/distr/src/apps/org/jnode/apps/console/ShellEmu.java
===================================================================
--- trunk/distr/src/apps/org/jnode/apps/console/ShellEmu.java 2007-04-15 21:49:12 UTC (rev 3170)
+++ trunk/distr/src/apps/org/jnode/apps/console/ShellEmu.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -1,21 +0,0 @@
-package org.jnode.apps.console;
-
-import org.jnode.test.gui.Emu;
-import org.jnode.driver.console.swing.SwingTextScreenConsoleManager;
-import org.jnode.driver.console.TextConsole;
-import org.jnode.driver.console.ConsoleManager;
-import org.jnode.shell.CommandShell;
-
-/**
- * @author Levente S\u00e1ntha
- */
-public class ShellEmu extends Emu {
-
- public static void main(String[] argv) throws Exception {
- initEnv();
- SwingTextScreenConsoleManager cm = new SwingTextScreenConsoleManager();
- new Thread(new CommandShell((TextConsole) cm.createConsole("Console 1",
- ConsoleManager.CreateOptions.TEXT | ConsoleManager.CreateOptions.SCROLLABLE))).
- start();
- }
-}
Deleted: trunk/distr/src/apps/org/jnode/apps/editor/EditEmu.java
===================================================================
--- trunk/distr/src/apps/org/jnode/apps/editor/EditEmu.java 2007-04-15 21:49:12 UTC (rev 3170)
+++ trunk/distr/src/apps/org/jnode/apps/editor/EditEmu.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -1,31 +0,0 @@
-package org.jnode.apps.editor;
-
-import org.jnode.driver.console.ConsoleManager;
-import org.jnode.driver.console.swing.SwingTextScreenConsoleManager;
-import org.jnode.driver.console.textscreen.TextScreenConsole;
-import org.jnode.test.gui.Emu;
-
-import java.io.File;
-
-/**
- * @author Levente S\u00e1ntha
- */
-public class EditEmu extends Emu {
- public static void main(String[] argv) throws Exception{
- initEnv();
-
-
- if(argv.length == 0){
- System.out.println("No file specified");
- return;
- }
-
- SwingTextScreenConsoleManager cm = new SwingTextScreenConsoleManager();
- final TextScreenConsole console = cm.createConsole(null,
- ConsoleManager.CreateOptions.TEXT | ConsoleManager.CreateOptions.NO_SYSTEM_OUT_ERR_IN);
-
- TextEditor te = new TextEditor(console);
- File f = new File(argv[0]);
- te.loadFile(f);
- }
-}
Modified: trunk/distr/src/apps/org/jnode/apps/jpartition/JPartition.java
===================================================================
--- trunk/distr/src/apps/org/jnode/apps/jpartition/JPartition.java 2007-04-15 21:49:12 UTC (rev 3170)
+++ trunk/distr/src/apps/org/jnode/apps/jpartition/JPartition.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -7,11 +7,11 @@
import org.jnode.naming.InitialNaming;
import org.jnode.naming.NameSpace;
import org.jnode.test.fs.driver.stubs.StubDeviceManager;
-import org.jnode.test.gui.Emu;
import org.jnode.util.OsUtils;
+import org.jnode.emu.Emu;
+import org.jnode.driver.DeviceManager;
-public class JPartition extends Emu
-{
+public class JPartition extends Emu {
private static final Logger log = Logger.getLogger(JPartition.class);
public static void main(String[] args) throws Throwable
Added: trunk/distr/src/emu/org/jnode/emu/DeviceManager.java
===================================================================
--- trunk/distr/src/emu/org/jnode/emu/DeviceManager.java (rev 0)
+++ trunk/distr/src/emu/org/jnode/emu/DeviceManager.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -0,0 +1,101 @@
+/*
+ * $Id$
+ */
+package org.jnode.emu;
+
+import org.jnode.driver.*;
+import org.apache.log4j.Logger;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Collections;
+
+/**
+ * @author Levente S\xE1ntha
+*/
+public class DeviceManager extends AbstractDeviceManager {
+ public static final Logger log = Logger.getLogger(DeviceManager.class);
+
+ public static final DeviceManager INSTANCE = new DeviceManager();
+
+ private List<DeviceFinder> finders = new ArrayList<DeviceFinder>();
+
+ private List<DeviceToDriverMapper> mappers = new ArrayList<DeviceToDriverMapper>();
+
+ private DeviceManager() {
+ }
+
+ public void removeAll() {
+ finders.clear();
+ mappers.clear();
+
+ for (Device device : getDevices()) {
+ try {
+ unregister(device);
+ } catch (DriverException e) {
+ log.error("can't unregister " + device);
+ }
+ }
+ }
+
+ public void add(DeviceFinder finder, DeviceToDriverMapper mapper) {
+ boolean doStart = false;
+
+ if (!finders.contains(finder)) {
+ finders.add(finder);
+ doStart = true;
+ }
+
+ if (!mappers.contains(mapper)) {
+ mappers.add(mapper);
+ doStart = true;
+ }
+
+ if (doStart) {
+ start();
+ }
+ }
+
+ /**
+ * Start this manager
+ */
+ final public void start() {
+ // Thread thread = new Thread()
+ // {
+ // public void run()
+ // {
+ log.debug("Loading extensions ...");
+ loadExtensions();
+ log.debug("Extensions loaded !");
+ // }
+ // };
+ // thread.start();
+
+ try {
+ // must be called before findDeviceDrivers
+ log.debug("findDevices ...");
+ findDevices();
+
+ log.debug("findDeviceDrivers ...");
+ findDeviceDrivers();
+
+ log.debug("StubDeviceManager initialized !");
+ } catch (InterruptedException e) {
+ log.fatal("can't find devices", e);
+ }
+ }
+
+ protected final void refreshFinders(List<DeviceFinder> finders) {
+ log.info("refreshFinders");
+ finders.clear();
+ finders.addAll(this.finders);
+ }
+
+ protected final void refreshMappers(List<DeviceToDriverMapper> mappers) {
+ log.info("refreshMappers");
+ mappers.clear();
+ mappers.addAll(this.mappers);
+
+ // Now sort them
+ Collections.sort(mappers, MapperComparator.INSTANCE);
+ }
+}
Added: trunk/distr/src/emu/org/jnode/emu/DummyExtensionPoint.java
===================================================================
--- trunk/distr/src/emu/org/jnode/emu/DummyExtensionPoint.java (rev 0)
+++ trunk/distr/src/emu/org/jnode/emu/DummyExtensionPoint.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -0,0 +1,43 @@
+/*
+ * $Id$
+ */
+package org.jnode.emu;
+
+import org.jnode.plugin.ExtensionPoint;
+import org.jnode.plugin.Extension;
+import org.jnode.plugin.ExtensionPointListener;
+import org.jnode.plugin.PluginDescriptor;
+
+/**
+ * @author Levente S\xE1ntha
+*/
+class DummyExtensionPoint implements ExtensionPoint {
+ public String getSimpleIdentifier() {
+ return "A";
+ }
+
+ public String getUniqueIdentifier() {
+ return "aaa";
+ }
+
+ public String getName() {
+ return "B";
+ }
+
+ public Extension[] getExtensions() {
+ return new Extension[0];
+ }
+
+ public void addListener(ExtensionPointListener listener) {
+ }
+
+ public void addPriorityListener(ExtensionPointListener listener) {
+ }
+
+ public void removeListener(ExtensionPointListener listener) {
+ }
+
+ public PluginDescriptor getDeclaringPluginDescriptor() {
+ return null;
+ }
+}
Added: trunk/distr/src/emu/org/jnode/emu/EditEmu.java
===================================================================
--- trunk/distr/src/emu/org/jnode/emu/EditEmu.java (rev 0)
+++ trunk/distr/src/emu/org/jnode/emu/EditEmu.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -0,0 +1,31 @@
+package org.jnode.emu;
+
+import org.jnode.driver.console.ConsoleManager;
+import org.jnode.driver.console.swing.SwingTextScreenConsoleManager;
+import org.jnode.driver.console.textscreen.TextScreenConsole;
+import org.jnode.apps.editor.TextEditor;
+
+import java.io.File;
+
+/**
+ * @author Levente S\u00e1ntha
+ */
+public class EditEmu extends Emu {
+ public static void main(String[] argv) throws Exception{
+ initEnv();
+
+
+ if(argv.length == 0){
+ System.out.println("No file specified");
+ return;
+ }
+
+ SwingTextScreenConsoleManager cm = new SwingTextScreenConsoleManager();
+ final TextScreenConsole console = cm.createConsole(null,
+ ConsoleManager.CreateOptions.TEXT | ConsoleManager.CreateOptions.NO_SYSTEM_OUT_ERR_IN);
+
+ TextEditor te = new TextEditor(console);
+ File f = new File(argv[0]);
+ te.loadFile(f);
+ }
+}
Added: trunk/distr/src/emu/org/jnode/emu/Emu.java
===================================================================
--- trunk/distr/src/emu/org/jnode/emu/Emu.java (rev 0)
+++ trunk/distr/src/emu/org/jnode/emu/Emu.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -0,0 +1,61 @@
+package org.jnode.emu;
+
+import org.jnode.naming.InitialNaming;
+import org.jnode.naming.NameSpace;
+import org.jnode.shell.alias.AliasManager;
+import org.jnode.shell.alias.def.DefaultAliasManager;
+import org.jnode.shell.ShellManager;
+import org.jnode.shell.help.Help;
+import org.jnode.shell.help.def.DefaultHelp;
+import org.jnode.shell.def.DefaultShellManager;
+
+import javax.naming.NamingException;
+import javax.naming.NameAlreadyBoundException;
+import javax.naming.NameNotFoundException;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Set;
+
+/**
+ * @author Levente S\u00e1ntha
+ */
+public class Emu {
+ protected static void initEnv() throws NamingException {
+ if(true){
+ InitialNaming.setNameSpace(new NameSpace() {
+ private Map<Class<?>, Object> space = new HashMap<Class<?>, Object>();
+
+ public <T> void bind(Class<T> name, T service) throws NamingException, NameAlreadyBoundException {
+ if (space.get(name) != null) throw new NameAlreadyBoundException();
+ space.put(name, service);
+ }
+
+ public void unbind(Class<?> name) {
+ space.remove(name);
+ }
+
+ public <T> T lookup(Class<T> name) throws NameNotFoundException {
+ T obj = (T) space.get(name);
+ if (obj == null) throw new NameNotFoundException(name.getName());
+ return obj;
+ }
+
+ public Set<Class<?>> nameSet() {
+ return space.keySet();
+ }
+ });
+ InitialNaming.bind(DeviceManager.NAME, DeviceManager.INSTANCE);
+ AliasManager alias_mgr = new DefaultAliasManager(new DummyExtensionPoint()).createAliasManager();
+ alias_mgr.add("console", "org.jnode.shell.command.driver.console.ConsoleCommand");
+ alias_mgr.add("help", "org.jnode.shell.command.HelpCommand");
+ alias_mgr.add("alias", "org.jnode.shell.command.AliasCommand");
+ alias_mgr.add("exit", "org.jnode.shell.command.ExitCommand");
+ alias_mgr.add("edit", "org.jnode.apps.edit.EditCommand");
+ alias_mgr.add("leed", "org.jnode.apps.editor.LeedCommand");
+ alias_mgr.add("sconsole", "org.jnode.apps.console.SwingConsole");
+ InitialNaming.bind(AliasManager.NAME, alias_mgr);
+ InitialNaming.bind(ShellManager.NAME, new DefaultShellManager());
+ InitialNaming.bind(Help.NAME, new DefaultHelp());
+ }
+ }
+}
Added: trunk/distr/src/emu/org/jnode/emu/ShellEmu.java
===================================================================
--- trunk/distr/src/emu/org/jnode/emu/ShellEmu.java (rev 0)
+++ trunk/distr/src/emu/org/jnode/emu/ShellEmu.java 2007-04-21 13:11:19 UTC (rev 3171)
@@ -0,0 +1,19 @@
+package org.jnode.emu;
+
+import org.jnode.driver.console.swing.SwingTextScreenConsoleManager;
+import org.jnode.driver.console.ConsoleManager;
+import org.jnode.shell.CommandShell;
+
+/**
+ * @author Levente S\u00e1ntha
+ */
+public class ShellEmu extends Emu {
+
+ public static void main(String[] argv) throws Exception {
+ initEnv();
+ SwingTextScreenConsoleManager cm = new SwingTextScreenConsoleManager();
+ new Thread(new CommandShell(cm.createConsole("Console 1",
+ ConsoleManager.CreateOptions.TEXT | ConsoleManager.CreateOptions.SCROLLABLE))).
+ start();
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|