1 package org.apache.maven.plugins.scm;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import java.io.File;
22 import java.util.Iterator;
23 import java.util.List;
24
25 import org.apache.maven.scm.ScmFile;
26 import org.apache.maven.scm.ScmFileSet;
27 import org.apache.maven.scm.command.status.StatusScmResult;
28 import org.apache.maven.scm.manager.ScmManager;
29 import org.apache.maven.scm.repository.ScmRepository;
30
31 /**
32 * A bean for using the Maven SCM API because wrangling objects in Jelly is no fun.
33 *
34 * @author <a href="mailto:brett@apache.org">Brett Porter</a>
35 */
36 public class ScmStatusBean
37 extends ScmBean
38 {
39 private List changedFiles;
40
41 public void status()
42 throws Exception
43 {
44 ScmManager scmManager = lookupScmManager();
45
46 ScmRepository repository = getScmRepository( scmManager );
47
48 StatusScmResult result = scmManager.getProviderByRepository( repository )
49 .status( repository, new ScmFileSet( new File( getWorkingDirectory() ) ) );
50
51 checkResult( result );
52
53 changedFiles = result.getChangedFiles();
54
55 for ( Iterator i = changedFiles.iterator(); i.hasNext(); )
56 {
57 ScmFile f = (ScmFile) i.next();
58 if ( f.getPath().equals( "project.xml" ) || f.getPath().equals( "project.xml.backup" )
59 || f.getPath().equals( "xdocs/changes.xml" ) || f.getPath().equals( "xdocs/changes.xml.backup" ) )
60 {
61 i.remove();
62 }
63 }
64 }
65
66 public List getChangedFiles()
67 {
68 return changedFiles;
69 }
70 }