1   package org.apache.maven.wagon;
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  import org.apache.maven.wagon.authorization.AuthorizationException;
23  import org.codehaus.plexus.util.FileUtils;
24  
25  import java.io.File;
26  import java.io.IOException;
27  import java.util.LinkedList;
28  
29  
30  
31  
32  
33  
34  public final class WagonUtils
35  {
36      private WagonUtils()
37      {
38      }
39  
40      public static String toString( String resource, Wagon wagon )
41          throws IOException, TransferFailedException, ResourceDoesNotExistException, AuthorizationException
42      {
43  
44          File file = null;
45  
46          try
47          {
48              file = File.createTempFile( "wagon", "tmp" );
49  
50              wagon.get( resource, file );
51  
52              return FileUtils.fileRead( file );
53          }
54          finally
55          {
56              if ( file != null )
57              {
58                  boolean deleted = file.delete();
59  
60                  if ( !deleted )
61                  {
62                      file.deleteOnExit();
63                  }
64              }
65          }
66  
67      }
68  
69  
70      public static void putDirectory( File dir, Wagon wagon, boolean includeBasdir )
71          throws ResourceDoesNotExistException, TransferFailedException, AuthorizationException
72      {
73  
74          LinkedList queue = new LinkedList();
75  
76          if ( includeBasdir )
77          {
78              queue.add( dir.getName() );
79          }
80          else
81          {
82              queue.add( "" );
83          }
84  
85          while ( !queue.isEmpty() )
86          {
87              String path = (String) queue.removeFirst();
88  
89              File currentDir = new File( dir, path );
90  
91              File[] files = currentDir.listFiles();
92  
93              for ( int i = 0; i < files.length; i++ )
94              {
95                  File file = files[i];
96  
97                  String resource;
98  
99                  if ( path.length() > 0 )
100                 {
101                     resource = path + "/" + file.getName();
102                 }
103                 else
104                 {
105                     resource = file.getName();
106                 }
107 
108                 if ( file.isDirectory() )
109                 {
110                     queue.add( resource );
111                 }
112                 else
113                 {
114                     wagon.put( file, resource );
115                 }
116 
117             }
118 
119         }
120 
121     }
122 }