001package org.apache.maven.project.inheritance.t12scm; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import java.io.File; 023 024import org.apache.maven.project.MavenProject; 025import org.apache.maven.project.inheritance.AbstractProjectInheritanceTestCase; 026 027/** 028 * Verifies SCM inheritance uses modules statement from parent. 029 * 030 * @author jdcasey 031 */ 032public class ProjectInheritanceTest 033 extends AbstractProjectInheritanceTestCase 034{ 035 // ---------------------------------------------------------------------- 036 // 037 // p1 inherits from p0 038 // p0 inhertis from super model 039 // 040 // or we can show it graphically as: 041 // 042 // p1 ---> p0 --> super model 043 // 044 // ---------------------------------------------------------------------- 045 046 public void testScmInfoCalculatedCorrectlyOnParentAndChildRead() 047 throws Exception 048 { 049 File localRepo = getLocalRepositoryPath(); 050 051 File pom0 = new File( localRepo, "p0/pom.xml" ); 052 File pom0Basedir = pom0.getParentFile(); 053 File pom1 = new File( pom0Basedir, "modules/p1/pom.xml" ); 054 055 // load the child project, which inherits from p0... 056 MavenProject project0 = getProject( pom0 ); 057 MavenProject project1 = getProject( pom1 ); 058 059 System.out.println( "\n\n" ); 060 System.out.println( "Parent SCM URL is: " + project0.getScm().getUrl() ); 061 System.out.println( "Child SCM URL is: " + project1.getScm().getUrl() ); 062 System.out.println(); 063 System.out.println( "Parent SCM connection is: " + project0.getScm().getConnection() ); 064 System.out.println( "Child SCM connection is: " + project1.getScm().getConnection() ); 065 System.out.println(); 066 System.out.println( "Parent SCM developer connection is: " 067 + project0.getScm().getDeveloperConnection() ); 068 System.out.println( "Child SCM developer connection is: " 069 + project1.getScm().getDeveloperConnection() ); 070 071 assertEquals( project1.getScm().getUrl(), project0.getScm().getUrl() + "/modules/p1" ); 072 assertEquals( project1.getScm().getConnection(), project0.getScm().getConnection() 073 + "/modules/p1" ); 074 assertEquals( project1.getScm().getDeveloperConnection(), project0.getScm() 075 .getDeveloperConnection() 076 + "/modules/p1" ); 077 } 078 079 public void testScmInfoCalculatedCorrectlyOnChildOnlyRead() 080 throws Exception 081 { 082 File localRepo = getLocalRepositoryPath(); 083 084 File pom1 = new File( localRepo, "p0/modules/p1/pom.xml" ); 085 086 // load the child project, which inherits from p0... 087 MavenProject project1 = getProject( pom1 ); 088 089 System.out.println( "\n\n" ); 090 System.out.println( "Child SCM URL is: " + project1.getScm().getUrl() ); 091 System.out.println( "Child SCM connection is: " + project1.getScm().getConnection() ); 092 System.out.println( "Child SCM developer connection is: " 093 + project1.getScm().getDeveloperConnection() ); 094 095 assertEquals( "http://host/viewer?path=/p0/modules/p1", project1.getScm().getUrl() ); 096 assertEquals( "scm:svn:http://host/p0/modules/p1", project1.getScm().getConnection() ); 097 assertEquals( "scm:svn:https://host/p0/modules/p1", project1.getScm().getDeveloperConnection() ); 098 } 099 100// public void testScmInfoCalculatedCorrectlyOnChildReadFromLocalRepository() 101// throws Exception 102// { 103// File localRepo = getLocalRepositoryPath(); 104// 105// ArtifactFactory factory = (ArtifactFactory) lookup( ArtifactFactory.class ); 106// Artifact artifact = factory.createProjectArtifact( "maven", "p1", "1.0" ); 107// 108// ArtifactRepositoryFactory repoFactory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.class ); 109// ArtifactRepository localArtifactRepo = repoFactory.createLocalRepository( localRepo ); 110// 111// MavenProject project1 = getProjectBuilder().buildFromRepository( artifact, Collections.EMPTY_LIST, localArtifactRepo ); 112// 113// System.out.println( "\n\n" ); 114// System.out.println( "Child SCM URL is: " + project1.getScm().getUrl() ); 115// System.out.println( "Child SCM connection is: " + project1.getScm().getConnection() ); 116// System.out.println( "Child SCM developer connection is: " 117// + project1.getScm().getDeveloperConnection() ); 118// 119// assertEquals( project1.getScm().getUrl(), "http://host/viewer?path=/p0/modules/p1" ); 120// assertEquals( project1.getScm().getConnection(), "scm:svn:http://host/p0/modules/p1" ); 121// assertEquals( project1.getScm().getDeveloperConnection(), 122// "scm:svn:https://host/p0/modules/p1" ); 123// } 124 125}