1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.scm.provider.git.jgit.command.remove;
20
21 import java.util.List;
22
23 import org.apache.maven.scm.ScmException;
24 import org.apache.maven.scm.ScmFile;
25 import org.apache.maven.scm.ScmFileSet;
26 import org.apache.maven.scm.ScmResult;
27 import org.apache.maven.scm.command.remove.AbstractRemoveCommand;
28 import org.apache.maven.scm.command.remove.RemoveScmResult;
29 import org.apache.maven.scm.provider.ScmProviderRepository;
30 import org.apache.maven.scm.provider.git.command.GitCommand;
31 import org.apache.maven.scm.provider.git.jgit.command.JGitUtils;
32 import org.eclipse.jgit.api.Git;
33
34
35
36
37
38 public class JGitRemoveCommand extends AbstractRemoveCommand implements GitCommand {
39
40 @Override
41 protected ScmResult executeRemoveCommand(ScmProviderRepository repository, ScmFileSet fileSet, String message)
42 throws ScmException {
43
44 if (fileSet.getFileList().isEmpty()) {
45 throw new ScmException("You must provide at least one file/directory to remove");
46 }
47 Git git = null;
48 try {
49 git = JGitUtils.openRepo(fileSet.getBasedir());
50
51 List<ScmFile> removedFiles = JGitUtils.removeAllFiles(git, fileSet);
52
53 if (logger.isDebugEnabled()) {
54 for (ScmFile scmFile : removedFiles) {
55 logger.info("Removed file: " + scmFile);
56 }
57 }
58
59 return new RemoveScmResult("JGit remove", removedFiles);
60
61 } catch (Exception e) {
62 throw new ScmException("JGit remove failure!", e);
63 } finally {
64 JGitUtils.closeRepo(git);
65 }
66 }
67 }