You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2008/11/17 17:38:20 UTC

svn commit: r718272 - in /geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry: AliasMetaMapper.java CommandResolverImpl.java

Author: jdillon
Date: Mon Nov 17 08:38:19 2008
New Revision: 718272

URL: http://svn.apache.org/viewvc?rev=718272&view=rev
Log:
Use virtul file system to root meta:/aliases for resolving aliases

Modified:
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/AliasMetaMapper.java
    geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandResolverImpl.java

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/AliasMetaMapper.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/AliasMetaMapper.java?rev=718272&r1=718271&r2=718272&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/AliasMetaMapper.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/AliasMetaMapper.java Mon Nov 17 08:38:19 2008
@@ -97,6 +97,10 @@
         metaRegistry.registerData(fileName, data);
     }
 
+    //
+    // FIXME: This seems to have problems, when adding/removing alias, first alias value keeps, probably due to the cached VFS FileObject
+    //
+    
     private void remove(final String name) throws Exception {
         assert name != null;
 

Modified: geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandResolverImpl.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandResolverImpl.java?rev=718272&r1=718271&r2=718272&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandResolverImpl.java (original)
+++ geronimo/gshell/trunk/gshell-wisdom/gshell-wisdom-core/src/main/java/org/apache/geronimo/gshell/wisdom/registry/CommandResolverImpl.java Mon Nov 17 08:38:19 2008
@@ -61,7 +61,7 @@
     
     private FileObject commandsDirectory;
 
-    private FileObject aliasesDirectory;
+    private FileObject aliasesRoot;
 
     private BeanContainer container;
 
@@ -117,6 +117,14 @@
         return command;
     }
 
+    private FileObject getAliasesRoot() throws FileSystemException {
+        if (aliasesRoot == null) {
+            aliasesRoot = fileSystemAccess.createVirtualFileSystem(ALIASES_ROOT);
+        }
+
+        return aliasesRoot;
+    }
+
     private AliasCommand resolveAliasCommand(final String name, final Variables variables) {
         assert name != null;
         assert variables != null;
@@ -126,23 +134,12 @@
         AliasCommand command = null;
 
         try {
-            FileObject file = fileSystemAccess.resolveFile(getAliasesDirectory(), name);
+            FileObject root = getAliasesRoot();
+            FileObject file = root.resolveFile(name);
 
             if (file != null && file.exists()) {
                 log.trace("Resolved file: {}", file);
-
-                // Make sure whatever file we resolved is actually a meta file
-                if (!isMetaFile(file)) {
-                    log.debug("Command name '{}' did not resolve to a meta-file; found: {}", name, file);
-                    return null;
-                }
-
-                // Make sure we found a file in the meta:/commands tree
-                if (!file.getName().getPath().startsWith("/aliases")) {
-                    log.debug("Command name '{}' did not resolve under " + ALIASES_ROOT + "; found: {}", name, file);
-                    return null;
-                }
-
+                
                 command = createAliasCommand(file);
             }
         }
@@ -153,6 +150,14 @@
         return command;
     }
 
+    private FileObject getCommandsDirectory() throws FileSystemException {
+        if (commandsDirectory == null) {
+            commandsDirectory = fileSystemAccess.resolveFile(null, COMMANDS_ROOT);
+        }
+
+        return commandsDirectory;
+    }
+
     private FileObject resolveCommandFile(final String name, final Variables variables) throws FileSystemException {
         assert name != null;
         assert variables != null;
@@ -289,22 +294,6 @@
         return MetaFileName.SCHEME.equals(file.getName().getScheme());
     }
 
-    private FileObject getCommandsDirectory() throws FileSystemException {
-        if (commandsDirectory == null) {
-            commandsDirectory = fileSystemAccess.resolveFile(null, COMMANDS_ROOT);
-        }
-
-        return commandsDirectory;
-    }
-
-    private FileObject getAliasesDirectory() throws FileSystemException {
-        if (aliasesDirectory == null) {
-            aliasesDirectory = fileSystemAccess.resolveFile(null, ALIASES_ROOT);
-        }
-
-        return aliasesDirectory;
-    }
-
     private Command createCommand(final FileObject file) throws FileSystemException, CommandException {
         assert file != null;