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/09/24 19:56:11 UTC

svn commit: r698675 - in /geronimo/gshell/trunk/gshell-commands/gshell-vfs: ./ src/main/java/org/apache/geronimo/gshell/commands/vfs/ src/main/resources/META-INF/spring/

Author: jdillon
Date: Wed Sep 24 10:56:11 2008
New Revision: 698675

URL: http://svn.apache.org/viewvc?rev=698675&view=rev
Log:
Created factory bean to produce the FileSystemManager, autowire it into the copy command

Added:
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java   (with props)
Modified:
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/pom.xml
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/CopyAction.java
    geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml

Modified: geronimo/gshell/trunk/gshell-commands/gshell-vfs/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/pom.xml?rev=698675&r1=698674&r2=698675&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/pom.xml (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/pom.xml Wed Sep 24 10:56:11 2008
@@ -42,6 +42,11 @@
             <groupId>commons-vfs</groupId>
             <artifactId>commons-vfs</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.gshell.support</groupId>
+            <artifactId>gshell-spring</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file

Modified: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/CopyAction.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/CopyAction.java?rev=698675&r1=698674&r2=698675&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/CopyAction.java (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/CopyAction.java Wed Sep 24 10:56:11 2008
@@ -22,13 +22,12 @@
 import org.apache.commons.vfs.FileObject;
 import org.apache.commons.vfs.FileSystemManager;
 import org.apache.commons.vfs.FileUtil;
-import org.apache.commons.vfs.VFS;
-import org.apache.commons.vfs.FileSystemException;
 import org.apache.geronimo.gshell.clp.Argument;
-import org.apache.geronimo.gshell.command.CommandContext;
 import org.apache.geronimo.gshell.command.CommandAction;
+import org.apache.geronimo.gshell.command.CommandContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * Copy files.
@@ -39,7 +38,10 @@
     implements CommandAction
 {
     private final Logger log = LoggerFactory.getLogger(getClass());
-    
+
+    @Autowired
+    private FileSystemManager fsm;
+
     @Argument(index=0, required=true)
     private String sourceName;
 
@@ -48,8 +50,7 @@
 
     public Object execute(final CommandContext context) throws Exception {
         assert context != null;
-    
-        FileSystemManager fsm = getFileSystemManager();
+
         FileObject source = fsm.resolveFile(sourceName);
         FileObject target = fsm.resolveFile(targetName);
 
@@ -59,21 +60,4 @@
 
         return Result.SUCCESS;
     }
-
-    // TODO: Move this to a bean factory and inject
-
-    private FileSystemManager fsManager;
-
-    protected FileSystemManager getFileSystemManager() {
-        if (fsManager == null) {
-            try {
-                fsManager = VFS.getManager();
-            }
-            catch (FileSystemException e) {
-                throw new RuntimeException(e);
-            }
-        }
-
-        return fsManager;
-    }
 }
\ No newline at end of file

Added: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java?rev=698675&view=auto
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java (added)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java Wed Sep 24 10:56:11 2008
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License 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.apache.geronimo.gshell.commands.vfs;
+
+import org.apache.commons.vfs.FileSystemManager;
+import org.apache.commons.vfs.VFS;
+import org.springframework.beans.factory.FactoryBean;
+
+/**
+ * Sprint {@link FactoryBean} to construct the {@link FileSystemManager} instance.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FileSystemManagerFactoryBean
+    implements FactoryBean
+{
+    public Object getObject() throws Exception {
+        return VFS.getManager();
+    }
+
+    public Class getObjectType() {
+        return FileSystemManager.class;
+    }
+
+    public boolean isSingleton() {
+        return true;
+    }
+}

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/java/org/apache/geronimo/gshell/commands/vfs/FileSystemManagerFactoryBean.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml
URL: http://svn.apache.org/viewvc/geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml?rev=698675&r1=698674&r2=698675&view=diff
==============================================================================
--- geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml (original)
+++ geronimo/gshell/trunk/gshell-commands/gshell-vfs/src/main/resources/META-INF/spring/components.xml Wed Sep 24 10:56:11 2008
@@ -35,4 +35,6 @@
         </gshell:command-bundle>
     </gshell:plugin>
 
+    <bean id="fileSystemManager" class="org.apache.geronimo.gshell.commands.vfs.FileSystemManagerFactoryBean"/>
+
 </beans>
\ No newline at end of file