1 package org.apache.maven.scm.provider.synergy.command.tag;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import org.apache.maven.scm.ScmException;
27 import org.apache.maven.scm.ScmFile;
28 import org.apache.maven.scm.ScmFileSet;
29 import org.apache.maven.scm.ScmFileStatus;
30 import org.apache.maven.scm.ScmResult;
31 import org.apache.maven.scm.ScmTagParameters;
32 import org.apache.maven.scm.command.tag.AbstractTagCommand;
33 import org.apache.maven.scm.command.tag.TagScmResult;
34 import org.apache.maven.scm.provider.ScmProviderRepository;
35 import org.apache.maven.scm.provider.synergy.command.SynergyCommand;
36 import org.apache.maven.scm.provider.synergy.repository.SynergyScmProviderRepository;
37 import org.apache.maven.scm.provider.synergy.util.SynergyRole;
38 import org.apache.maven.scm.provider.synergy.util.SynergyUtil;
39
40
41
42
43
44
45 public class SynergyTagCommand
46 extends AbstractTagCommand
47 implements SynergyCommand
48 {
49
50 protected ScmResult executeTagCommand( ScmProviderRepository repository, ScmFileSet fileSet, String tag,
51 String message )
52 throws ScmException
53 {
54 return executeTagCommand( repository, fileSet, tag, new ScmTagParameters( message ) );
55 }
56
57
58 protected ScmResult executeTagCommand( ScmProviderRepository repository, ScmFileSet fileSet, String tag,
59 ScmTagParameters scmTagParameters )
60 throws ScmException
61 {
62 if ( getLogger().isDebugEnabled() )
63 {
64 getLogger().debug( "executing tag command..." );
65 }
66
67 SynergyScmProviderRepository repo = (SynergyScmProviderRepository) repository;
68
69 if ( getLogger().isDebugEnabled() )
70 {
71 getLogger().debug( "basedir: " + fileSet.getBasedir() );
72 }
73
74 String ccmAddr = SynergyUtil.start( getLogger(), repo.getUser(), repo.getPassword(), SynergyRole.BUILD_MGR );
75
76 try
77 {
78
79
80 SynergyUtil.reconfigureProperties( getLogger(), repo.getProjectSpec(), ccmAddr );
81 SynergyUtil.reconfigure( getLogger(), repo.getProjectSpec(), ccmAddr);
82
83 SynergyUtil.createBaseline( getLogger(), repo.getProjectSpec(), tag, repo.getProjectRelease(),
84 repo.getProjectPurpose(), ccmAddr );
85 }
86 finally
87 {
88 SynergyUtil.stop( getLogger(), ccmAddr );
89 }
90 List<ScmFile> files = new ArrayList<ScmFile>( fileSet.getFileList().size() );
91 for ( File f : fileSet.getFileList() )
92 {
93 files.add( new ScmFile( f.getPath(), ScmFileStatus.TAGGED ) );
94 }
95 return new TagScmResult( "", files );
96 }
97
98 }