Author: jdcasey
Date: Mon Jun 18 16:52:17 2007
New Revision: 548535
URL: http://svn.apache.org/viewvc?view=rev&rev=548535
Log:
Adding new unit test for MASSEMBLY-210. It doesn't work yet, even to the extent
that it should without fixing MASSEMBLY-210, so I've excluded it in the POM's
surefire config.
Added:
maven/shared/trunk/maven-repository-builder/src/test/java/org/
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java
(with props)
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java
(with props)
maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt
(with props)
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml
(with props)
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml
(with props)
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java
(with props)
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java
(with props)
Modified:
maven/shared/trunk/maven-repository-builder/pom.xml
maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java
Modified: maven/shared/trunk/maven-repository-builder/pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/pom.xml?view=diff&rev=548535&r1=548534&r2=548535
==============================================================================
--- maven/shared/trunk/maven-repository-builder/pom.xml (original)
+++ maven/shared/trunk/maven-repository-builder/pom.xml Mon Jun 18 16:52:17 2007
@@ -50,7 +50,18 @@
</dependency>
</dependencies>
<build>
- <plugins>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.3</version>
+
+ <configuration>
+ <excludes>
+ <exclude>**/DefaultRepositoryAssemblerTest.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-maven-plugin</artifactId>
Modified:
maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java?view=diff&rev=548535&r1=548534&r2=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java
(original)
+++
maven/shared/trunk/maven-repository-builder/src/main/java/org/apache/maven/shared/repository/DefaultRepositoryAssembler.java
Mon Jun 18 16:52:17 2007
@@ -111,6 +111,24 @@
*/
protected MavenProjectBuilder projectBuilder;
+ public DefaultRepositoryAssembler()
+ {
+ // used for plexus init.
+ }
+
+ public DefaultRepositoryAssembler( ArtifactFactory artifactFactory,
ArtifactResolver artifactResolver,
+ ArtifactRepositoryLayout
repositoryLayout,
+ ArtifactRepositoryFactory
artifactRepositoryFactory,
+ ArtifactMetadataSource metadataSource,
MavenProjectBuilder projectBuilder )
+ {
+ this.artifactFactory = artifactFactory;
+ this.artifactResolver = artifactResolver;
+ this.repositoryLayout = repositoryLayout;
+ this.artifactRepositoryFactory = artifactRepositoryFactory;
+ this.metadataSource = metadataSource;
+ this.projectBuilder = projectBuilder;
+ }
+
public void buildRemoteRepository( File repositoryDirectory,
RepositoryInfo repository,
RepositoryBuilderConfigSource
configSource )
throws RepositoryAssemblyException
Added:
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java?view=auto&rev=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java
(added)
+++
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java
Mon Jun 18 16:52:17 2007
@@ -0,0 +1,127 @@
+package org.apache.maven.shared.repository;
+
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.model.Profile;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.RepositoryPolicy;
+import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.profiles.ProfileManager;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.shared.repository.model.DefaultRepositoryInfo;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+public class DefaultRepositoryBuilderTest
+ extends PlexusTestCase
+{
+
+ private MavenProjectBuilder projectBuilder;
+
+ private ArtifactRepositoryLayout defaultLayout;
+
+ private ArtifactRepositoryFactory repoFactory;
+
+ private ArtifactFactory artifactFactory;
+
+ private ArtifactRepository localRepository;
+
+ private ArtifactResolver artifactResolver;
+
+ private ArtifactMetadataSource metadataSource;
+
+ private DefaultProfileManager profileManager;
+
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ projectBuilder = (MavenProjectBuilder) lookup(
MavenProjectBuilder.class.getName() );
+
+ File localRepo = new File( getBasedir(), "target/local-repository" );
+
+ defaultLayout = (ArtifactRepositoryLayout) lookup(
ArtifactRepositoryLayout.class.getName(), "default" );
+ repoFactory = (ArtifactRepositoryFactory) lookup(
ArtifactRepositoryFactory.class.getName() );
+ artifactFactory = (ArtifactFactory) lookup(
ArtifactFactory.class.getName() );
+ artifactResolver = (ArtifactResolver) lookup(
ArtifactResolver.class.getName() );
+ metadataSource = (ArtifactMetadataSource) lookup(
ArtifactMetadataSource.class.getName() );
+
+ localRepository = repoFactory.createArtifactRepository( "local",
localRepo.getAbsolutePath(), defaultLayout,
+ null, null );
+
+ }
+
+ private MavenProject getProject( String projectResource )
+ throws ProjectBuildingException, IOException
+ {
+ ClassLoader cloader = Thread.currentThread().getContextClassLoader();
+ URL res = cloader.getResource( projectResource );
+
+ File projectFile = new File( res.getPath() );
+
+ return projectBuilder.build( projectFile, localRepository,
getProfileManager() );
+ }
+
+ private ProfileManager getProfileManager() throws IOException
+ {
+ if ( profileManager == null )
+ {
+ ClassLoader cloader =
Thread.currentThread().getContextClassLoader();
+ URL res = cloader.getResource( "marker.txt" );
+
+ File markerFile = new File( res.getPath() );
+ markerFile = markerFile.getCanonicalFile();
+
+ File repoDir = new File( markerFile.getParentFile(),
"remote-repository" );
+
+ Profile profile = new Profile();
+ Repository repo = new Repository();
+ repo.setId( "test.repo" );
+ repo.setUrl( repoDir.toURL().toExternalForm() );
+
+ repo.setReleases( new RepositoryPolicy() );
+ repo.setSnapshots( new RepositoryPolicy() );
+
+ profileManager = new DefaultProfileManager( getContainer() );
+ profileManager.addProfile( profile );
+ profileManager.explicitlyActivate( "test.repo" );
+ }
+
+ return profileManager;
+ }
+
+ public void test_MASSEMBLY_210_projectParentIsIncludedInRepository()
+ throws ProjectBuildingException, RepositoryAssemblyException,
IOException
+ {
+ MavenProject project = getProject(
"projects/massembly-210-direct-parent/pom.xml" );
+
+ TestRepositoryBuilderConfigSource cs = new
TestRepositoryBuilderConfigSource();
+ cs.setProject( project );
+ cs.setLocalRepository( localRepository );
+
+ DefaultRepositoryAssembler assembler = new DefaultRepositoryAssembler(
artifactFactory, artifactResolver,
+
defaultLayout, repoFactory,
+
metadataSource, projectBuilder );
+
+ File repositoryDirectory = new File( getBasedir(),
"target/test-repositories/massembly-210-direct-parent" );
+
+ DefaultRepositoryInfo repoInfo = new DefaultRepositoryInfo();
+
+ assembler.buildRemoteRepository( repositoryDirectory, repoInfo, cs );
+
+ File parentFile = new File( repositoryDirectory,
"massembly/210/parent/1.0-SNAPSHOT/parent-1.0-SNAPSHOT.pom" );
+
+ assertTrue( parentFile.exists() );
+ }
+
+}
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/DefaultRepositoryBuilderTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java?view=auto&rev=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java
(added)
+++
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java
Mon Jun 18 16:52:17 2007
@@ -0,0 +1,34 @@
+package org.apache.maven.shared.repository;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.project.MavenProject;
+
+public class TestRepositoryBuilderConfigSource
+ implements RepositoryBuilderConfigSource
+{
+
+ private ArtifactRepository localRepository;
+
+ private MavenProject project;
+
+ public void setLocalRepository( ArtifactRepository localRepository )
+ {
+ this.localRepository = localRepository;
+ }
+
+ public void setProject( MavenProject project )
+ {
+ this.project = project;
+ }
+
+ public ArtifactRepository getLocalRepository()
+ {
+ return localRepository;
+ }
+
+ public MavenProject getProject()
+ {
+ return project;
+ }
+
+}
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/java/org/apache/maven/shared/repository/TestRepositoryBuilderConfigSource.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt?view=auto&rev=548535
==============================================================================
--- maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt
(added)
+++ maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt
Mon Jun 18 16:52:17 2007
@@ -0,0 +1 @@
+marker file for classpath basedir location...
\ No newline at end of file
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/marker.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml?view=auto&rev=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml
(added)
+++
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml
Mon Jun 18 16:52:17 2007
@@ -0,0 +1,24 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>massembly.210</groupId>
+ <artifactId>parent</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+ <groupId>massembly.210.test</groupId>
+ <artifactId>massembly-210-direct-parent</artifactId>
+ <packaging>jar</packaging>
+ <version>1.0-SNAPSHOT</version>
+ <name>massembly-210-direct-parent</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml?view=auto&rev=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml
(added)
+++
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml
Mon Jun 18 16:52:17 2007
@@ -0,0 +1,15 @@
+<assembly>
+ <id>repo</id>
+ <formats>
+ <format>dir</format>
+ </formats>
+
+ <includeBaseDirectory>false</includeBaseDirectory>
+
+ <repositories>
+ <repository>
+ <includeMetadata>true</includeMetadata>
+ <outputDirectory>/</outputDirectory>
+ </repository>
+ </repositories>
+</assembly>
\ No newline at end of file
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/assembly/repo.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java?view=auto&rev=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java
(added)
+++
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java
Mon Jun 18 16:52:17 2007
@@ -0,0 +1,13 @@
+package massembly210;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/main/java/massembly210/App.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java
URL:
http://svn.apache.org/viewvc/maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java?view=auto&rev=548535
==============================================================================
---
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java
(added)
+++
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java
Mon Jun 18 16:52:17 2007
@@ -0,0 +1,38 @@
+package massembly210;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/shared/trunk/maven-repository-builder/src/test/resources/projects/massembly-210-direct-parent/src/test/java/massembly210/AppTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"