1 package org.apache.maven.continuum.utils;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.continuum.configuration.ConfigurationService;
23 import org.apache.maven.continuum.model.project.Project;
24 import org.springframework.stereotype.Service;
25
26 import java.io.File;
27
28 import javax.annotation.Resource;
29
30
31
32
33
34 @Service("workingDirectoryService")
35 public class DefaultWorkingDirectoryService
36 implements WorkingDirectoryService
37 {
38 @Resource
39 private ConfigurationService configurationService;
40
41 public void setConfigurationService( ConfigurationService configurationService )
42 {
43 this.configurationService = configurationService;
44 }
45
46 public ConfigurationService getConfigurationService()
47 {
48 return configurationService;
49 }
50
51
52
53
54
55 public File getWorkingDirectory( Project project )
56 {
57
58
59
60
61
62
63 if ( project.getWorkingDirectory() == null )
64 {
65 project.setWorkingDirectory( Integer.toString( project.getId() ) );
66 }
67
68 File workDir;
69 File projectWorkingDirectory = new File( project.getWorkingDirectory() );
70 if ( projectWorkingDirectory.isAbsolute() )
71 {
72
73 if ( projectWorkingDirectory.getAbsolutePath().startsWith(
74 getConfigurationService().getWorkingDirectory().getAbsolutePath() ) )
75 {
76 String pwd = projectWorkingDirectory.getAbsolutePath().substring(
77 getConfigurationService().getWorkingDirectory().getAbsolutePath().length() );
78 if ( pwd.startsWith( "/" ) || pwd.startsWith( "\\" ) )
79 {
80 pwd = pwd.substring( 1 );
81 }
82 project.setWorkingDirectory( pwd );
83 }
84
85 workDir = projectWorkingDirectory;
86 }
87 else
88 {
89 workDir = new File( getConfigurationService().getWorkingDirectory(), project.getWorkingDirectory() );
90 }
91 return workDir;
92 }
93 }