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.add;
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.add.AbstractAddCommand;
28 import org.apache.maven.scm.command.add.AddScmResult;
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
39 public class JGitAddCommand extends AbstractAddCommand implements GitCommand {
40
41
42
43 protected ScmResult executeAddCommand(
44 ScmProviderRepository repo, ScmFileSet fileSet, String message, boolean binary) throws ScmException {
45
46 if (fileSet.getFileList().isEmpty()) {
47 throw new ScmException("You must provide at least one file/directory to add (e.g. -Dincludes=...)");
48 }
49 Git git = null;
50 try {
51 git = JGitUtils.openRepo(fileSet.getBasedir());
52
53 List<ScmFile> addedFiles = JGitUtils.addAllFiles(git, fileSet);
54
55 if (logger.isDebugEnabled()) {
56 for (ScmFile scmFile : addedFiles) {
57 logger.info("added file: " + scmFile);
58 }
59 }
60
61 return new AddScmResult("JGit add", addedFiles);
62
63 } catch (Exception e) {
64 throw new ScmException("JGit add failure!", e);
65 } finally {
66 JGitUtils.closeRepo(git);
67 }
68 }
69 }