Author: olamy
Date: Wed Apr 13 20:35:58 2011
New Revision: 1091909

URL: http://svn.apache.org/viewvc?rev=1091909&view=rev
Log:
add junit

Added:
    maven/shared/trunk/reporting-exec/src/test/
    maven/shared/trunk/reporting-exec/src/test/java/
    maven/shared/trunk/reporting-exec/src/test/java/org/
    maven/shared/trunk/reporting-exec/src/test/java/org/apache/
    maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/
    maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/
    
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/
    
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java
   (with props)
Modified:
    maven/shared/trunk/.gitignore
    maven/shared/trunk/reporting-exec/pom.xml

Modified: maven/shared/trunk/.gitignore
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/.gitignore?rev=1091909&r1=1091908&r2=1091909&view=diff
==============================================================================
--- maven/shared/trunk/.gitignore (original)
+++ maven/shared/trunk/.gitignore Wed Apr 13 20:35:58 2011
@@ -2,6 +2,7 @@
 atlassian-ide-plugin.xml
 *.iml
 *.iws
+.idea
 target
 .classpath
 .project

Modified: maven/shared/trunk/reporting-exec/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/reporting-exec/pom.xml?rev=1091909&r1=1091908&r2=1091909&view=diff
==============================================================================
--- maven/shared/trunk/reporting-exec/pom.xml (original)
+++ maven/shared/trunk/reporting-exec/pom.xml Wed Apr 13 20:35:58 2011
@@ -84,13 +84,139 @@
       <artifactId>maven-plugin-testing-harness</artifactId>
       <version>2.0-alpha-1</version>
       <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-container-default</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.8.2</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-compat</artifactId>
+      <version>${mavenVersion}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-embedder</artifactId>
+      <version>${mavenVersion}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven</groupId>
+      <artifactId>maven-aether-provider</artifactId>
+      <version>${mavenVersion}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.sonatype.aether</groupId>
+      <artifactId>aether-connector-wagon</artifactId>
+      <version>1.7</version>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-container-default</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.wagon</groupId>
+      <artifactId>wagon-http-lightweight</artifactId>
+      <version>1.0-beta-6</version>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-container-default</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
+      <version>r07</version>
+      <scope>test</scope>
+    </dependency>
+
+
+    <dependency>
+      <groupId>org.apache.maven.doxia</groupId>
+      <artifactId>doxia-site-renderer</artifactId>
+      <version>1.1.4</version>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-container-default</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.velocity</groupId>
+          <artifactId>velocity</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.sonatype.sisu</groupId>
+      <artifactId>sisu-inject-plexus</artifactId>
+      <version>2.2.0</version>
+      <scope>provided</scope>
     </dependency>
 
+    <dependency>
+      <groupId>org.sonatype.sisu</groupId>
+      <artifactId>sisu-inject-bean</artifactId>
+      <version>2.2.0</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.sonatype.sisu</groupId>
+          <artifactId>sisu-guice</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.sonatype.sisu</groupId>
+      <artifactId>sisu-guice</artifactId>
+      <version>3.0.1</version>
+      <scope>provided</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-velocity</artifactId>
+      <version>1.1.8</version>
+      <scope>test</scope>
+      <exclusions>
+        <exclusion>
+          <groupId>org.codehaus.plexus</groupId>
+          <artifactId>plexus-container-default</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.velocity</groupId>
+      <artifactId>velocity</artifactId>
+      <version>1.5</version>
+    </dependency>
+
+    <dependency>
+      <groupId>velocity</groupId>
+      <artifactId>velocity</artifactId>
+      <version>1.5</version>
+    </dependency>
+
+
   </dependencies>
 
   <build>
@@ -108,6 +234,18 @@
     </pluginManagement>
     <plugins>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.8</version>
+        <configuration>
+          <systemPropertyVariables>
+            <localRepository>${settings.localRepository}</localRepository>
+            <mavenHome>${env.M2_HOME}</mavenHome>
+          </systemPropertyVariables>
+          <forkMode>none</forkMode>
+        </configuration>
+      </plugin>
+      <plugin>
         <groupId>org.codehaus.plexus</groupId>
         <artifactId>plexus-component-metadata</artifactId>
         <version>1.5.5</version>
@@ -119,6 +257,31 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <id>ensure-no-container-api</id>
+            <configuration>
+              <rules>
+                <bannedDependencies>
+                  <excludes>
+                    <exclude>org.codehaus.plexus:plexus-component-api</exclude>
+                    
<exclude>org.codehaus.plexus:plexus-container-default</exclude>
+                  </excludes>
+                  <message>The new containers are not supported. You probably 
added a dependency that is missing the exclusions.</message>
+                </bannedDependencies>
+              </rules>
+              <fail>true</fail>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>

Added: 
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java
URL: 
http://svn.apache.org/viewvc/maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java?rev=1091909&view=auto
==============================================================================
--- 
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java
 (added)
+++ 
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java
 Wed Apr 13 20:35:58 2011
@@ -0,0 +1,322 @@
+package org.apache.maven.reporting.exec;
+
+import com.google.common.collect.Lists;
+import org.apache.maven.DefaultMaven;
+import org.apache.maven.Maven;
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.cli.MavenCli;
+import org.apache.maven.execution.DefaultMavenExecutionRequest;
+import org.apache.maven.execution.DefaultMavenExecutionResult;
+import org.apache.maven.execution.MavenExecutionRequest;
+import org.apache.maven.execution.MavenExecutionRequestPopulator;
+import org.apache.maven.execution.MavenExecutionResult;
+import org.apache.maven.execution.MavenSession;
+import org.apache.maven.model.Build;
+import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.repository.RepositorySystem;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.building.DefaultSettingsBuildingRequest;
+import org.apache.maven.settings.building.SettingsBuilder;
+import org.apache.maven.settings.building.SettingsBuildingException;
+import org.apache.maven.settings.building.SettingsBuildingRequest;
+import org.codehaus.plexus.ContainerConfiguration;
+import org.codehaus.plexus.PlexusTestCase;
+import org.codehaus.plexus.classworlds.ClassWorld;
+import org.codehaus.plexus.classworlds.realm.ClassRealm;
+import org.codehaus.plexus.classworlds.realm.DuplicateRealmException;
+import 
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.logging.Logger;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.artifact.Artifact;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.repository.WorkspaceReader;
+import org.sonatype.aether.repository.WorkspaceRepository;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.net.MalformedURLException;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author Olivier Lamy
+ */
+public class TestDefaultMavenReportExecutor
+    extends PlexusTestCase
+{
+
+    MavenExecutionRequest request = null;
+
+    ArtifactRepository localArtifactRepository;
+
+    protected void customizeContainerConfiguration( final 
ContainerConfiguration containerConfiguration )
+    {
+        String mavenHome = System.getProperty( "mavenHome" );
+        File mavenLibs = new File( mavenHome, "lib" );
+        File[] jars = mavenLibs.listFiles( new FilenameFilter()
+        {
+            public boolean accept( File dir, String name )
+            {
+                return name.endsWith( ".jar" );
+            }
+        } );
+
+        ClassWorld classWorld = new ClassWorld();
+        try
+        {
+            ClassRealm classRealm = classWorld.newRealm( "foo" );
+            for ( File file : jars )
+            {
+                classRealm.addURL( file.toURI().toURL() );
+
+            }
+            containerConfiguration.setRealm( classRealm );
+        }
+        catch ( MalformedURLException e )
+        {
+            e.printStackTrace();
+        }
+        catch ( DuplicateRealmException e )
+        {
+            e.printStackTrace();
+        }
+
+    }
+
+    public void testSimpleLookup()
+        throws Exception
+    {
+        MavenReportExecutor mavenReportExecutor = lookup( 
MavenReportExecutor.class );
+        assertNotNull( mavenReportExecutor );
+    }
+
+    public void testSimpleBuildReports()
+        throws Exception
+    {
+        ClassLoader orig = Thread.currentThread().getContextClassLoader();
+        ClassRealm realm = getContainer().getContainerRealm();
+        System.out.println( "realm " + Arrays.asList( realm.getURLs() ) );
+        Thread.currentThread().setContextClassLoader( realm );
+        try
+        {
+            MavenReportExecutorRequest mavenReportExecutorRequest = new 
MavenReportExecutorRequest();
+
+            mavenReportExecutorRequest.setLocalRepository( 
getLocalArtifactRepository() );
+
+            MavenProject mavenProject = getMavenProject();
+
+            mavenReportExecutorRequest.setProject( mavenProject );
+
+            MavenSession mavenSession = getMavenSession( 
getLocalArtifactRepository(), mavenProject );
+            mavenSession.setCurrentProject( mavenProject );
+            mavenSession.setProjects( Lists.<MavenProject>newArrayList( 
mavenProject ) );
+            mavenReportExecutorRequest.setMavenSession( mavenSession );
+
+            ReportPlugin reportPlugin = new ReportPlugin();
+            reportPlugin.setGroupId( "org.apache.maven.plugins" );
+            reportPlugin.setArtifactId( "maven-javadoc-plugin" );
+            reportPlugin.setVersion( "2.8-SNAPSHOT" );
+
+            ReportSet reportSet = new ReportSet();
+            reportSet.getReports().add( "javadoc" );
+            reportSet.getReports().add( "test-javadoc" );
+            reportPlugin.getReportSets().add( reportSet );
+
+            List<ReportPlugin> reportPlugins = Lists.newArrayList( 
reportPlugin );
+
+            mavenReportExecutorRequest.setReportPlugins( 
reportPlugins.toArray( new ReportPlugin[1] ) );
+
+            MavenReportExecutor mavenReportExecutor = lookup( 
MavenReportExecutor.class );
+
+            List<MavenReportExecution> mavenReportExecutions =
+                mavenReportExecutor.buildMavenReports( 
mavenReportExecutorRequest );
+
+            assertNotNull( mavenReportExecutions );
+            System.out.println( "size " + mavenReportExecutions.size() );
+            System.out.println( mavenReportExecutions.get( 0 
).getMavenReport().getOutputName() );
+        }
+        finally
+        {
+            Thread.currentThread().setContextClassLoader( orig );
+        }
+    }
+
+    protected MavenSession getMavenSession( ArtifactRepository 
localRepository, final MavenProject mavenProject )
+        throws Exception
+    {
+        request = new DefaultMavenExecutionRequest();
+        request.setLocalRepository( localRepository );
+
+        request.setWorkspaceReader( new WorkspaceReader()
+        {
+            public WorkspaceRepository getRepository()
+            {
+                return new WorkspaceRepository();
+            }
+
+            public File findArtifact( Artifact artifact )
+            {
+                return null;
+            }
+
+            public List<String> findVersions( Artifact artifact )
+            {
+                return Collections.emptyList();
+            }
+        } );
+        final Settings settings = getSettings();
+
+        getContainer().lookup( MavenExecutionRequestPopulator.class 
).populateFromSettings( request, settings );
+
+        getContainer().lookup( MavenExecutionRequestPopulator.class 
).populateDefaults( request );
+
+        request.setLocalRepository( getLocalArtifactRepository() );
+        request.setLocalRepositoryPath( 
getLocalArtifactRepository().getBasedir() );
+        request.setCacheNotFound( false );
+
+        request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_DEBUG );
+        getContainer().lookup( Logger.class ).setThreshold( 0 );
+
+        request.setSystemProperties( System.getProperties() );
+
+        MavenExecutionResult result = new DefaultMavenExecutionResult();
+
+        RepositorySystemSession repositorySystemSession = 
buildRepositorySystemSession( request );
+
+        MavenSession mavenSession = new MavenSession( getContainer(), 
repositorySystemSession, request, result )
+        {
+            @Override
+            public MavenProject getTopLevelProject()
+            {
+                return mavenProject;
+            }
+
+            @Override
+            public Settings getSettings()
+            {
+                return settings;
+            }
+
+            @Override
+            public List<MavenProject> getProjects()
+            {
+                return Lists.newArrayList( mavenProject );
+            }
+
+            @Override
+            public MavenProject getCurrentProject()
+            {
+                return mavenProject;
+            }
+
+        };
+        return mavenSession;
+    }
+
+    private ArtifactRepository getLocalArtifactRepository()
+        throws Exception
+    {
+        if ( localArtifactRepository != null )
+        {
+            return localArtifactRepository;
+        }
+        String localRepoPath =
+            System.getProperty( "localRepository", 
MavenCli.userMavenConfigurationHome.getPath() + "/repository" );
+
+        localArtifactRepository = lookup( RepositorySystem.class 
).createLocalRepository( new File( localRepoPath ) );
+        return localArtifactRepository;
+    }
+
+    public Settings getSettings()
+        throws ComponentLookupException, SettingsBuildingException
+    {
+
+        SettingsBuildingRequest settingsBuildingRequest = new 
DefaultSettingsBuildingRequest();
+
+        settingsBuildingRequest.setGlobalSettingsFile( 
MavenCli.DEFAULT_GLOBAL_SETTINGS_FILE );
+
+        settingsBuildingRequest.setUserSettingsFile( 
MavenCli.DEFAULT_USER_SETTINGS_FILE );
+
+        settingsBuildingRequest.getSystemProperties().putAll( 
System.getProperties() );
+
+        Settings settings =
+            getContainer().lookup( SettingsBuilder.class ).build( 
settingsBuildingRequest ).getEffectiveSettings();
+
+        return settings;
+
+    }
+
+    protected MavenProject getMavenProject()
+    {
+        MavenProjectStub mavenProjectStub = new MavenProjectStub()
+        {
+            @Override
+            public List<RemoteRepository> getRemotePluginRepositories()
+            {
+                if ( super.getRemotePluginRepositories() == null )
+                {
+                    return RepositoryUtils.toRepos( 
request.getRemoteRepositories() );
+                }
+                return super.getRemotePluginRepositories();
+            }
+
+            @Override
+            public List getRemoteArtifactRepositories()
+            {
+                if ( super.getRemotePluginRepositories() == null )
+                {
+                    return RepositoryUtils.toRepos( 
request.getRemoteRepositories() );
+                }
+                return super.getRemotePluginRepositories();
+            }
+
+            @Override
+            public String getName()
+            {
+                return "foo";
+            }
+
+            @Override
+            public String getVersion()
+            {
+                return "1.0-SNAPSHOT";
+            }
+
+            @Override
+            public boolean isExecutionRoot()
+            {
+                return true;
+            }
+
+            @Override
+            public List getCompileSourceRoots()
+            {
+                return Lists.newArrayList("src/main/java");
+            }
+        };
+
+        mavenProjectStub.setPackaging( "jar" );
+
+        Build build = new Build();
+
+        build.setOutputDirectory( "target" );
+
+        build.setSourceDirectory( "src/main/java" );
+
+        mavenProjectStub.setBuild( build );
+
+        return mavenProjectStub;
+    }
+
+    private RepositorySystemSession buildRepositorySystemSession( 
MavenExecutionRequest request )
+        throws ComponentLookupException
+    {
+        DefaultMaven defaultMaven = (DefaultMaven) getContainer().lookup( 
Maven.class );
+
+        return defaultMaven.newRepositorySession( request );
+    }
+
+}

Propchange: 
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
maven/shared/trunk/reporting-exec/src/test/java/org/apache/maven/reporting/exec/TestDefaultMavenReportExecutor.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision


Reply via email to