1 package org.codehaus.mojo.wagon.shared;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 import java.io.File;
19 import java.util.Iterator;
20 import java.util.List;
21
22 import org.apache.maven.plugin.logging.Log;
23 import org.apache.maven.wagon.Wagon;
24 import org.apache.maven.wagon.WagonException;
25 import org.codehaus.plexus.util.StringUtils;
26
27
28
29
30
31 public class DefaultWagonDownload implements WagonDownload {
32
33 @Override
34 public List<?> getFileList(Wagon wagon, WagonFileSet fileSet, Log logger) throws WagonException {
35 logger.info("Scanning remote file system: " + wagon.getRepository().getUrl() + " ...");
36
37 WagonDirectoryScanner dirScan = new WagonDirectoryScanner();
38 dirScan.setLogger(logger);
39 dirScan.setWagon(wagon);
40 dirScan.setExcludes(fileSet.getExcludes());
41 dirScan.setIncludes(fileSet.getIncludes());
42 dirScan.setCaseSensitive(fileSet.isCaseSensitive());
43 dirScan.setDirectory(fileSet.getDirectory());
44 if (fileSet.isUseDefaultExcludes()) {
45 dirScan.addDefaultExcludes();
46 }
47
48 dirScan.scan();
49
50 return dirScan.getFilesIncluded();
51 }
52
53 @Override
54 public void download(Wagon wagon, WagonFileSet remoteFileSet, Log logger) throws WagonException {
55 List<?> fileList = this.getFileList(wagon, remoteFileSet, logger);
56
57 String url = wagon.getRepository().getUrl() + "/";
58
59 if (fileList.size() == 0) {
60 logger.info("Nothing to download.");
61 return;
62 }
63
64 for (Iterator<?> iterator = fileList.iterator(); iterator.hasNext();) {
65 String remoteFile = (String) iterator.next();
66
67 File destination = new File(remoteFileSet.getDownloadDirectory() + "/" + remoteFile);
68
69 if (!StringUtils.isBlank(remoteFileSet.getDirectory())) {
70 remoteFile = remoteFileSet.getDirectory() + "/" + remoteFile;
71 }
72
73 logger.info("Downloading " + url + remoteFile + " to " + destination + " ...");
74
75 wagon.get(remoteFile, destination);
76 }
77 }
78
79
80
81
82
83
84
85
86
87 @Override
88 public boolean exists(Wagon wagon, String resource) throws WagonException {
89 return wagon.resourceExists(resource);
90 }
91
92 }