1 package org.apache.maven.it;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.io.File;
23
24 import org.apache.maven.it.util.ResourceExtractor;
25 import org.apache.maven.shared.utils.io.FileUtils;
26
27 /**
28 * This is a test set for <a href="https://issues.apache.org/jira/browse/MNG-3693">MNG-3693</a>:
29 * it tests that changes to a project's POM file reference (MavenProject.setFile(..))
30 * doesn't affect the basedir of the project instance for using that project's classes directory
31 * in the classpath of another project's build...this happens when both projects are
32 * built in the same reactor, and one project depends on the other.
33 *
34 * @author jdcasey
35 */
36 public class MavenITmng3693PomFileBasedirChangeTest
37 extends AbstractMavenIntegrationTestCase
38 {
39 public MavenITmng3693PomFileBasedirChangeTest()
40 {
41 super( ALL_MAVEN_VERSIONS );
42 }
43
44 public void testitMNG3693 ()
45 throws Exception
46 {
47 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-3693" );
48
49 File pluginDir = new File( testDir, "maven-mng3693-plugin" );
50 File projectsDir = new File( testDir, "projects" );
51
52 Verifier verifier = newVerifier( pluginDir.getAbsolutePath(), "remote" );
53
54 verifier.executeGoal( "install" );
55
56 verifier.verifyErrorFreeLog();
57 verifier.resetStreams();
58
59 String depPath = verifier.getArtifactPath( "org.apache.maven.its.mng3693", "dep", "1", "pom" );
60
61 File dep = new File( depPath );
62 dep = dep.getParentFile().getParentFile();
63
64 // remove the dependency from the local repository.
65 FileUtils.deleteDirectory( dep );
66
67 verifier = newVerifier( projectsDir.getAbsolutePath() );
68
69 verifier.executeGoal( "package" );
70
71 verifier.verifyErrorFreeLog();
72 verifier.resetStreams();
73
74 }
75 }