1 package org.apache.maven.verifier;
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
23 import org.apache.maven.AbstractMavenComponent;
24 import org.apache.maven.project.Project;
25
26 /**
27 * Verify the integrity of the local repository.
28 *
29 * @author <a href="mailto:jason@zenplex.com">Jason van Zyl</a>
30 * @version $Id: LocalSettingsVerifier.java 517014 2007-03-11 21:15:50Z ltheussl $
31 */
32 public class LocalSettingsVerifier
33 extends AbstractMavenComponent
34 {
35 /**
36 * Default constructor.
37 * @param project the project to verify
38 */
39 public LocalSettingsVerifier( Project project )
40 {
41 super( project );
42 }
43
44 /**
45 * Verify user settings before attempting to verify the project.
46 *
47 * @throws RepoConfigException If an error occurs while trying to verify some basic
48 * maven settings.
49 */
50 public void verifyLocalRepository()
51 throws RepoConfigException
52 {
53
54 String localRepoProp = getProject().getContext().getMavenRepoLocal();
55
56 if ( localRepoProp == null )
57 {
58
59
60 throw new RepoConfigException( getMessage( "maven.repo.local.unset" ) );
61 }
62
63 File localRepo = new File( localRepoProp );
64
65 if ( !localRepo.exists() )
66 {
67 System.err.println( getMessage( "directory.nonexistant.warning", localRepo ) );
68
69 if ( !localRepo.mkdirs() )
70 {
71 throw new RepoConfigException( getMessage( "cannot.create.directory.warning", localRepo ) );
72 }
73 }
74
75 if ( !localRepo.isDirectory() )
76 {
77 throw new RepoConfigException( getMessage( "not.directory.warning", localRepo ) );
78 }
79
80 if ( !localRepo.canWrite() )
81 {
82 throw new RepoConfigException( getMessage( "not.writable.warning", localRepo ) );
83 }
84 }
85 }