You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/01/16 03:20:12 UTC
svn commit: r612333 - in /maven/components/trunk:
maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/
maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/
maven-embedder/src/test/erro...
Author: jdcasey
Date: Tue Jan 15 18:20:08 2008
New Revision: 612333
URL: http://svn.apache.org/viewvc?rev=612333&view=rev
Log:
Adding more unit tests for error reporting. Almost done with project-based errors now.
Added:
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml (with props)
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java (with props)
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml (with props)
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/
maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml (with props)
Modified:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/DefaultProfileAdvisor.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/ProfileAdvisor.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml?rev=612333&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml (added)
+++ maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml Tue Jan 15 18:20:08 2008
@@ -0,0 +1,38 @@
+<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>
+ <groupId>org.apache.maven.errortest</groupId>
+ <artifactId>testReportActivatorLookupError-ext</artifactId>
+ <version>1</version>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.3.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.3</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.1</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.0.2</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java?rev=612333&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java (added)
+++ maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java Tue Jan 15 18:20:08 2008
@@ -0,0 +1,13 @@
+package org.ext;
+
+/**
+ * Hello world!
+ *
+ */
+public class App
+{
+ public static void main( String[] args )
+ {
+ System.out.println( "Hello World!" );
+ }
+}
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/java/org/ext/App.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml?rev=612333&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml (added)
+++ maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml Tue Jan 15 18:20:08 2008
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<component-set>
+ <components>
+ <component>
+ <role>org.apache.maven.profiles.activation.ProfileActivator</role>
+ <role-hint>faulty</role-hint>
+ <implementation>org.ext.App</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.artifact.ArtifactResolver</role>
+ <field-name>artifactResolver</field-name>
+ </requirement>
+ </requirements>
+ </component>
+ </components>
+</component-set>
\ No newline at end of file
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/ext/src/main/resources/META-INF/plexus/components.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml?rev=612333&view=auto
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml (added)
+++ maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml Tue Jan 15 18:20:08 2008
@@ -0,0 +1,46 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.errortest</groupId>
+ <artifactId>testReportActivatorLookupError</artifactId>
+ <version>1</version>
+
+ <profiles>
+ <profile>
+ <id>test-profile</id>
+ <activation>
+ <property>
+ <name>java.version</name>
+ </property>
+ </activation>
+ </profile>
+ </profiles>
+
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.errortest</groupId>
+ <artifactId>testReportActivatorLookupError-ext</artifactId>
+ <version>1</version>
+ </extension>
+ </extensions>
+ </build>
+</project>
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-embedder/src/test/error-reporting-projects/testReportActivatorLookupError/project/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java (original)
+++ maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/error/ErrorReporterPointcutTest.java Tue Jan 15 18:20:08 2008
@@ -754,11 +754,17 @@
MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory( projectDir )
.setShowErrors( true )
.setErrorReporter( reporter )
+// .setErrorReporter( new DummyCoreErrorReporter() )
.setGoals( Arrays.asList( new String[] {
"initialize"
} ) );
- maven.execute( request );
+ MavenExecutionResult result = maven.execute( request );
+
+// if ( result.hasExceptions() )
+// {
+// reportExceptions( result, projectDir );
+// }
reporterCtl.verify();
}
@@ -766,33 +772,39 @@
public void testReportActivatorLookupError()
throws IOException
{
-// if ( !checkOnline() )
+ if ( !checkOnline() )
+ {
+ return;
+ }
+
+ File projectDir = prepareProjectDir();
+
+ buildTestAccessory( new File( projectDir, "ext" ) );
+
+ File project = new File( projectDir, "project" );
+
+ reporter.reportActivatorLookupError( null, null, null, null, null );
+ reporterCtl.setMatcher( MockControl.ALWAYS_MATCHER );
+ reporterCtl.setVoidCallable();
+
+ reporterCtl.replay();
+
+ MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory( project )
+ .setShowErrors( true )
+ .setErrorReporter( reporter )
+// .setErrorReporter( new DummyCoreErrorReporter() )
+ .setGoals( Arrays.asList( new String[] {
+ "initialize"
+ } ) );
+
+ MavenExecutionResult result = maven.execute( request );
+
+// if ( result.hasExceptions() )
// {
-// return;
+// reportExceptions( result, project );
// }
-//
-// File projectDir = prepareProjectDir();
-//
-// buildTestAccessory( new File( projectDir, "ext" ) );
-//
-// File project = new File( projectDir, "project" );
-//
-// reporter.reportActivatorLookupError( null, null, null, null );
-// reporterCtl.setMatcher( MockControl.ALWAYS_MATCHER );
-// reporterCtl.setVoidCallable();
-//
-// reporterCtl.replay();
-//
-// MavenExecutionRequest request = new DefaultMavenExecutionRequest().setBaseDirectory( project )
-// .setShowErrors( true )
-// .setErrorReporter( reporter )
-// .setGoals( Arrays.asList( new String[] {
-// "initialize"
-// } ) );
-//
-// maven.execute( request );
-//
-// reporterCtl.verify();
+
+ reporterCtl.verify();
}
public void testReportBadDependencyVersion()
Modified: maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj (original)
+++ maven/components/trunk/maven-project/src/main/aspect/org/apache/maven/project/aspect/ProfileErrorReporterAspect.aj Tue Jan 15 18:20:08 2008
@@ -8,8 +8,10 @@
import org.apache.maven.profiles.activation.ProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationException;
import org.apache.maven.profiles.build.DefaultProfileAdvisor;
+import org.apache.maven.profiles.build.ProfileAdvisor;
import org.apache.maven.model.Profile;
import org.apache.maven.profiles.DefaultProfileManager;
+import org.apache.maven.profiles.ProfileManager;
import org.apache.maven.profiles.MavenProfilesBuilder;
import org.apache.maven.profiles.ProfilesRoot;
import org.apache.maven.artifact.repository.ArtifactRepository;
@@ -32,29 +34,19 @@
extends AbstractProjectErrorReporterAspect
{
- protected pointcut componentLookupException( ComponentLookupException cause ):
- handler( ComponentLookupException )
- && args( cause )
- && notWithinAspect();
+ private pointcut within_pMgr_isActiveExec( Profile profile, ProfileActivationContext context ):
+ withincode( boolean DefaultProfileManager.isActive( Profile, ProfileActivationContext ) )
+ && args( profile, context );
private pointcut pMgr_isActiveExec( Profile profile, ProfileActivationContext context ):
execution( boolean DefaultProfileManager.isActive( Profile, ProfileActivationContext ) )
- && args( profile, context )
- && notWithinAspect();
+ && args( profile, context );
private pointcut pAdv_applyActivatedProfiles( Model model, File pomFile ):
execution( private List DefaultProfileAdvisor.applyActivatedProfiles( Model, File, .. ) )
&& args( model, pomFile, .. )
&& notWithinAspect();
- private pointcut applyActivatedProfiles_ComponentLookupException( Model model,
- File pomFile,
- Profile profile ):
- call( List PlexusContainer+.lookupList( .. ) )
- && cflow( pAdv_applyActivatedProfiles( model, pomFile ) )
- && cflow( pMgr_isActiveExec( profile, ProfileActivationContext ) )
- && notWithinAspect();
-
// =========================================================================
// Call Stack:
// =========================================================================
@@ -68,27 +60,48 @@
// <-- ProfileActivationException
// <------ ProjectBuildingException
// =========================================================================
- after( Model model, File pomFile, Profile profile )
+ after( Model model, File pomFile, Profile profile, ProfileActivationContext context )
throwing( ComponentLookupException cause ):
- applyActivatedProfiles_ComponentLookupException( model, pomFile, profile )
+ call( List PlexusContainer+.lookupList( .. ) )
+ && cflow( pAdv_applyActivatedProfiles( model, pomFile ) )
+ && cflow( pMgr_isActiveExec( profile, context ) )
{
- getReporter().reportActivatorLookupError( model.getId(), pomFile, profile, cause );
+ getReporter().reportActivatorLookupError( model, pomFile, profile, context, cause );
}
- protected pointcut profileActivatorCall( ProfileActivator activator ):
- call( * ProfileActivator+.*( .. ) )
- && target( activator )
- && notWithinAspect();
+ private pointcut pAdv_getArtifactRepositoriesFromActiveProfiles_1( Model model, File pomFile ):
+ execution( LinkedHashSet ProfileAdvisor+.getArtifactRepositoriesFromActiveProfiles( Model, File, ProfileManager ) )
+ && args( model, pomFile, * );
- private pointcut applyActivatedProfiles_ActivatorThrown( ProfileActivator activator,
- Model model,
- File pomFile,
- Profile profile,
- ProfileActivationContext context ):
- profileActivatorCall( activator )
- && cflow( pAdv_applyActivatedProfiles( model, pomFile ) )
- && cflow( pMgr_isActiveExec( profile, context ) )
- && notWithinAspect();
+ private pointcut pAdv_getArtifactRepositoriesFromActiveProfiles_2( Model model, File pomFile ):
+ execution( LinkedHashSet ProfileAdvisor+.getArtifactRepositoriesFromActiveProfiles( Model, File, boolean, ProfileActivationContext ) )
+ && args( model, pomFile, *, * );
+
+ private pointcut pAdv_getArtifactRepos( Model model, File pomFile ):
+ pAdv_getArtifactRepositoriesFromActiveProfiles_1( model, pomFile )
+ || pAdv_getArtifactRepositoriesFromActiveProfiles_2( model, pomFile );
+
+ // =========================================================================
+ // Call Stack:
+ // =========================================================================
+ // DefaultProfileAdvisor.applyActivatedProfiles(..)
+ // DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
+ // --> DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
+ // --> DefaultProfileManager.getActiveProfiles(..)
+ // --> DefaultProfileManager.isActive(..) (private)
+ // --> PlexusContainer.lookupList(..)
+ // <-- ComponentLookupException
+ // <-- ProfileActivationException
+ // <------ ProjectBuildingException
+ // =========================================================================
+ after( Model model, File pomFile, Profile profile, ProfileActivationContext context )
+ throwing( ComponentLookupException cause ):
+ call( List PlexusContainer+.lookupList( .. ) )
+ && cflow( pAdv_getArtifactRepos( model, pomFile ) )
+ && cflow( pMgr_isActiveExec( profile, context ) )
+ {
+ getReporter().reportActivatorLookupError( model, pomFile, profile, context, cause );
+ }
// =========================================================================
// Call Stack:
@@ -105,9 +118,12 @@
// =========================================================================
after( ProfileActivator activator, Model model, File pomFile, Profile profile, ProfileActivationContext context )
throwing( ProfileActivationException cause ):
- applyActivatedProfiles_ActivatorThrown( activator, model, pomFile, profile, context )
+ call( * ProfileActivator+.*( .. ) )
+ && target( activator )
+ && cflow( pAdv_applyActivatedProfiles( model, pomFile ) )
+ && cflow( pMgr_isActiveExec( profile, context ) )
{
- getReporter().reportActivatorError( activator, model.getId(), pomFile, profile, context, cause );
+ getReporter().reportActivatorError( activator, model, pomFile, profile, context, cause );
}
private pointcut pAdv_loadExternalProjectProfiles( Model model, File pomFile ):
@@ -115,14 +131,6 @@
&& args( *, model, pomFile )
&& notWithinAspect();
- private pointcut loadExternalProfiles_profileBuilding( Model model,
- File pomFile,
- File projectDir ):
- call( ProfilesRoot MavenProfilesBuilder+.buildProfiles( File ) )
- && cflow( pAdv_loadExternalProjectProfiles( model, pomFile ) )
- && args( projectDir )
- && notWithinAspect();
-
// =========================================================================
// Call Stack:
// =========================================================================
@@ -136,7 +144,9 @@
// =========================================================================
after( Model model, File pomFile, File projectDir )
throwing( IOException cause ):
- loadExternalProfiles_profileBuilding( model, pomFile, projectDir )
+ call( ProfilesRoot MavenProfilesBuilder+.buildProfiles( File ) )
+ && cflow( pAdv_loadExternalProjectProfiles( model, pomFile ) )
+ && args( projectDir )
{
getReporter().reportErrorLoadingExternalProfilesFromFile( model, pomFile, projectDir, cause );
}
@@ -154,7 +164,9 @@
// =========================================================================
after( Model model, File pomFile, File projectDir )
throwing( XmlPullParserException cause ):
- loadExternalProfiles_profileBuilding( model, pomFile, projectDir )
+ call( ProfilesRoot MavenProfilesBuilder+.buildProfiles( File ) )
+ && cflow( pAdv_loadExternalProjectProfiles( model, pomFile ) )
+ && args( projectDir )
{
getReporter().reportErrorLoadingExternalProfilesFromFile( model, pomFile, projectDir, cause );
}
@@ -164,45 +176,6 @@
&& args( *, pomFile, projectId )
&& notWithinAspect();
- private pointcut getArtifactRepositoriesFromActiveProfiles_ComponentLookupException( String projectId,
- File pomFile,
- Profile profile ):
- call( List PlexusContainer+.lookupList( .. ) )
- && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, pomFile ) )
- && cflow( pMgr_isActiveExec( profile, ProfileActivationContext ) )
- && notWithinAspect();
-
- // =========================================================================
- // Call Stack:
- // =========================================================================
- // DefaultProfileAdvisor.applyActivatedProfiles(..)
- // DefaultProfileAdvisor.applyActivatedExternalProfiles(..)
- // --> DefaultProfileAdvisor.getArtifactRepositoriesFromActiveProfiles(..)
- // --> DefaultProfileManager.getActiveProfiles(..)
- // --> DefaultProfileManager.isActive(..) (private)
- // --> PlexusContainer.lookupList(..)
- // <-- ComponentLookupException
- // <-- ProfileActivationException
- // <------ ProjectBuildingException
- // =========================================================================
- after( String projectId, File pomFile, Profile profile )
- throwing( ComponentLookupException cause ):
- getArtifactRepositoriesFromActiveProfiles_ComponentLookupException( projectId, pomFile, profile )
- {
- getReporter().reportActivatorLookupError( projectId, pomFile, profile, cause );
- }
-
- private pointcut getArtifactRepositoriesFromActiveProfiles_ActivatorThrown( ProfileActivator activator,
- String projectId,
- File pomFile,
- Profile profile,
- ProfileActivationContext context ):
- profileActivatorCall( activator )
- && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, pomFile ) )
- && cflow( pMgr_isActiveExec( profile, context ) )
- && within( DefaultProfileManager )
- && notWithinAspect();
-
// =========================================================================
// Call Stack:
// =========================================================================
@@ -216,22 +189,17 @@
// <------ ProfileActivationException
// <------ ProjectBuildingException
// =========================================================================
- after( ProfileActivator activator, String projectId, File pomFile, Profile profile, ProfileActivationContext context )
+ after( ProfileActivator activator, Model model, File pomFile, Profile profile, ProfileActivationContext context )
throwing( ProfileActivationException cause ):
- getArtifactRepositoriesFromActiveProfiles_ActivatorThrown( activator, projectId, pomFile, profile, context )
+ call( * ProfileActivator+.*( .. ) )
+ && target( activator )
+ && cflow( pAdv_getArtifactRepos( model, pomFile ) )
+ && cflow( pMgr_isActiveExec( profile, context ) )
+ && within( DefaultProfileManager )
{
- getReporter().reportActivatorError( activator, projectId, pomFile, profile, context, cause );
+ getReporter().reportActivatorError( activator, model, pomFile, profile, context, cause );
}
- private pointcut getArtifactRepositoriesFromActiveProfiles_InvalidRepository( Repository repo,
- String projectId,
- File pomFile ):
- call( ArtifactRepository MavenTools+.buildArtifactRepository( Repository ) )
- && args( repo )
- && cflow( pAdv_getArtifactRepositoriesFromActiveProfiles( projectId, pomFile ) )
- && within( DefaultProfileAdvisor )
- && notWithinAspect();
-
// =========================================================================
// Call Stack:
// =========================================================================
@@ -242,11 +210,14 @@
// <-- InvalidRepositoryException
// <-- ProjectBuildingException
// =========================================================================
- after( Repository repo, String projectId, File pomFile )
+ after( Repository repo, Model model, File pomFile )
throwing( InvalidRepositoryException cause ):
- getArtifactRepositoriesFromActiveProfiles_InvalidRepository( repo, projectId, pomFile )
+ call( ArtifactRepository MavenTools+.buildArtifactRepository( Repository ) )
+ && args( repo )
+ && cflow( pAdv_getArtifactRepos( model, pomFile ) )
+ && within( DefaultProfileAdvisor )
{
- getReporter().reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( repo, projectId, pomFile, cause );
+ getReporter().reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( repo, model, pomFile, cause );
}
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/DefaultProfileManager.java Tue Jan 15 18:20:08 2008
@@ -20,14 +20,17 @@
*/
import org.apache.maven.model.Activation;
+import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
import org.apache.maven.profiles.activation.DefaultProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationException;
import org.apache.maven.profiles.activation.ProfileActivator;
+import org.apache.maven.project.ModelUtils;
import org.apache.maven.realm.DefaultMavenRealmManager;
import org.apache.maven.realm.MavenRealmManager;
import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.Logger;
@@ -167,68 +170,92 @@
}
}
- /* (non-Javadoc)
- * @see org.apache.maven.profiles.ProfileManager#getActiveProfiles()
- */
public List getActiveProfiles()
throws ProfileActivationException
{
- List activeFromPom = new ArrayList();
- List activeExternal = new ArrayList();
+ return getActiveProfiles( null );
+ }
+
+ public List getActiveProfiles( Model model )
+ throws ProfileActivationException
+ {
+ MavenRealmManager realmManager = profileActivationContext.getRealmManager();
- for ( Iterator it = profilesById.entrySet().iterator(); it.hasNext(); )
+ ClassRealm projectRealm = null;
+ ClassRealm oldLookupRealm = null;
+
+ if ( ( model != null ) && ( realmManager != null ) )
{
- Map.Entry entry = (Entry) it.next();
+ projectRealm = realmManager.getProjectRealm( ModelUtils.getGroupId( model ), model.getArtifactId(), ModelUtils.getVersion( model ) );
+ oldLookupRealm = container.setLookupRealm( projectRealm );
+ }
- String profileId = (String) entry.getKey();
- Profile profile = (Profile) entry.getValue();
+ try
+ {
+ List activeFromPom = new ArrayList();
+ List activeExternal = new ArrayList();
- boolean shouldAdd = false;
- if ( profileActivationContext.isExplicitlyActive( profileId ) )
- {
- shouldAdd = true;
- }
- else if ( !profileActivationContext.isExplicitlyInactive( profileId ) && isActive( profile, profileActivationContext ) )
+ for ( Iterator it = profilesById.entrySet().iterator(); it.hasNext(); )
{
- shouldAdd = true;
- }
+ Map.Entry entry = (Entry) it.next();
- if ( shouldAdd )
- {
- if ( "pom".equals( profile.getSource() ) )
+ String profileId = (String) entry.getKey();
+ Profile profile = (Profile) entry.getValue();
+
+ boolean shouldAdd = false;
+ if ( profileActivationContext.isExplicitlyActive( profileId ) )
{
- activeFromPom.add( profile );
+ shouldAdd = true;
}
- else
+ else if ( !profileActivationContext.isExplicitlyInactive( profileId ) && isActive( profile, profileActivationContext ) )
{
- activeExternal.add( profile );
+ shouldAdd = true;
}
- }
- }
- if ( activeFromPom.isEmpty() )
- {
- List defaultIds = profileActivationContext.getActiveByDefaultProfileIds();
+ if ( shouldAdd )
+ {
+ if ( "pom".equals( profile.getSource() ) )
+ {
+ activeFromPom.add( profile );
+ }
+ else
+ {
+ activeExternal.add( profile );
+ }
+ }
+ }
- for ( Iterator it = defaultIds.iterator(); it.hasNext(); )
+ if ( activeFromPom.isEmpty() )
{
- String profileId = (String) it.next();
-
- Profile profile = (Profile) profilesById.get( profileId );
+ List defaultIds = profileActivationContext.getActiveByDefaultProfileIds();
- if ( profile != null )
+ for ( Iterator it = defaultIds.iterator(); it.hasNext(); )
{
- activeFromPom.add( profile );
+ String profileId = (String) it.next();
+
+ Profile profile = (Profile) profilesById.get( profileId );
+
+ if ( profile != null )
+ {
+ activeFromPom.add( profile );
+ }
}
}
- }
- List allActive = new ArrayList( activeFromPom.size() + activeExternal.size() );
+ List allActive = new ArrayList( activeFromPom.size() + activeExternal.size() );
- allActive.addAll( activeExternal );
- allActive.addAll( activeFromPom );
+ allActive.addAll( activeExternal );
+ allActive.addAll( activeFromPom );
- return allActive;
+ return allActive;
+ }
+ finally
+ {
+ if ( projectRealm != null )
+ {
+ container.setLookupRealm( oldLookupRealm );
+ }
+ }
}
private boolean isActive( Profile profile, ProfileActivationContext context )
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/ProfileManager.java Tue Jan 15 18:20:08 2008
@@ -19,6 +19,7 @@
* under the License.
*/
+import org.apache.maven.model.Model;
import org.apache.maven.model.Profile;
import org.apache.maven.profiles.activation.ProfileActivationContext;
import org.apache.maven.profiles.activation.ProfileActivationException;
@@ -59,6 +60,9 @@
void setProfileActivationContext( ProfileActivationContext profileActivationContext );
+ /**
+ * @deprecated Use {@link ProfileManager#getActiveProfiles(Model)} instead.
+ */
List getActiveProfiles()
throws ProfileActivationException;
@@ -80,4 +84,7 @@
* @deprecated Use {@link ProfileActivationContext} methods instead.
*/
List getIdsActivatedByDefault();
+
+ List getActiveProfiles( Model model )
+ throws ProfileActivationException;
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/DefaultProfileAdvisor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/DefaultProfileAdvisor.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/DefaultProfileAdvisor.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/DefaultProfileAdvisor.java Tue Jan 15 18:20:08 2008
@@ -110,7 +110,7 @@
{
try
{
- activeProfiles = profileManager.getActiveProfiles();
+ activeProfiles = profileManager.getActiveProfiles( model );
}
catch ( ProfileActivationException e )
{
@@ -164,9 +164,9 @@
return profileManager;
}
- public LinkedHashSet getArtifactRepositoriesFromActiveProfiles( ProfileManager profileManager,
+ public LinkedHashSet getArtifactRepositoriesFromActiveProfiles( Model model,
File pomFile,
- String modelId )
+ ProfileManager profileManager )
throws ProjectBuildingException
{
@@ -179,12 +179,12 @@
{
try
{
- activeExternalProfiles = profileManager.getActiveProfiles();
+ activeExternalProfiles = profileManager.getActiveProfiles( model );
}
catch ( ProfileActivationException e )
{
throw new ProjectBuildingException(
- modelId,
+ model.getId(),
"Failed to compute active profiles for repository aggregation.",
pomFile, e );
}
@@ -207,7 +207,7 @@
}
catch ( InvalidRepositoryException e )
{
- throw new ProjectBuildingException( modelId, e.getMessage(), e );
+ throw new ProjectBuildingException( model.getId(), e.getMessage(), e );
}
remoteRepositories.add( artifactRepo );
@@ -230,7 +230,7 @@
useProfilesXml,
activationContext );
- return getArtifactRepositoriesFromActiveProfiles( profileManager, pomFile, model.getId() );
+ return getArtifactRepositoriesFromActiveProfiles( model, pomFile, profileManager );
}
private void loadExternalProjectProfiles( ProfileManager profileManager,
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/ProfileAdvisor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/ProfileAdvisor.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/ProfileAdvisor.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/profiles/build/ProfileAdvisor.java Tue Jan 15 18:20:08 2008
@@ -38,9 +38,9 @@
String ROLE = ProfileAdvisor.class.getName();
- LinkedHashSet getArtifactRepositoriesFromActiveProfiles( ProfileManager profileManager,
+ LinkedHashSet getArtifactRepositoriesFromActiveProfiles( Model model,
File pomFile,
- String modelId )
+ ProfileManager profileManager )
throws ProjectBuildingException;
LinkedHashSet getArtifactRepositoriesFromActiveProfiles( Model model,
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Tue Jan 15 18:20:08 2008
@@ -225,14 +225,20 @@
superModel = ModelUtils.cloneModel( superModel );
- List activeProfiles;
+ List activeProfiles = new ArrayList();
if ( profileManager != null )
{
- activeProfiles = profileAdvisor.applyActivatedExternalProfiles( superModel, null, profileManager );
- }
- else
- {
- activeProfiles = Collections.EMPTY_LIST;
+ List activated = profileAdvisor.applyActivatedProfiles( superModel, null, false, profileManager.getProfileActivationContext() );
+ if ( !activated.isEmpty() )
+ {
+ activeProfiles.addAll( activated );
+ }
+
+ activated = profileAdvisor.applyActivatedExternalProfiles( superModel, null, profileManager );
+ if ( !activated.isEmpty() )
+ {
+ activeProfiles.addAll( activated );
+ }
}
MavenProject project = new MavenProject( superModel );
@@ -593,13 +599,13 @@
}
LinkedHashSet activeInSuperPom = new LinkedHashSet();
- List activated = profileAdvisor.applyActivatedExternalProfiles( superModel, projectDescriptor, externalProfileManager );
+ List activated = profileAdvisor.applyActivatedProfiles( superModel, projectDescriptor, validProfilesXmlLocation, profileActivationContext );
if ( !activated.isEmpty() )
{
activeInSuperPom.addAll( activated );
}
- activated = profileAdvisor.applyActivatedProfiles( superModel, projectDescriptor, validProfilesXmlLocation, profileActivationContext );
+ activated = profileAdvisor.applyActivatedExternalProfiles( superModel, projectDescriptor, externalProfileManager );
if ( !activated.isEmpty() )
{
activeInSuperPom.addAll( activated );
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java Tue Jan 15 18:20:08 2008
@@ -1121,4 +1121,30 @@
return new ArrayList( depsMap.values() );
}
+ public static String getGroupId( Model model )
+ {
+ Parent parent = model.getParent();
+
+ String groupId = model.getGroupId();
+ if ( ( parent != null ) && ( groupId == null ) )
+ {
+ groupId = parent.getGroupId();
+ }
+
+ return groupId;
+ }
+
+ public static String getVersion( Model model )
+ {
+ Parent parent = model.getParent();
+
+ String version = model.getVersion();
+ if ( ( parent != null ) && ( version == null ) )
+ {
+ version = parent.getVersion();
+ }
+
+ return version;
+ }
+
}
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/build/model/DefaultModelLineageBuilder.java Tue Jan 15 18:20:08 2008
@@ -291,9 +291,9 @@
context = new DefaultProfileActivationContext( System.getProperties(), false );
}
- LinkedHashSet profileRepos = profileAdvisor.getArtifactRepositoriesFromActiveProfiles( profileManager,
+ LinkedHashSet profileRepos = profileAdvisor.getArtifactRepositoriesFromActiveProfiles( model,
pomFile,
- model.getId() );
+ profileManager );
getLogger().debug( "Got external-profile repositories: " + profileRepos );
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/DefaultProjectErrorReporter.java Tue Jan 15 18:20:08 2008
@@ -115,7 +115,7 @@
* @see org.apache.maven.project.error.ProjectErrorReporter#reportActivatorErrorWhileApplyingProfiles(org.apache.maven.profiles.activation.ProfileActivator, org.apache.maven.model.Model, java.io.File, org.apache.maven.model.Profile, org.apache.maven.profiles.activation.ProfileActivationContext, org.apache.maven.profiles.activation.ProfileActivationException)
*/
public void reportActivatorError( ProfileActivator activator,
- String projectId,
+ Model model,
File pomFile,
Profile profile,
ProfileActivationContext context,
@@ -139,9 +139,9 @@
writer.write( NEWLINE );
writer.write( cause.getMessage() );
- addStandardInfo( projectId, pomFile, writer );
+ addStandardInfo( model.getId(), pomFile, writer );
addTips( ProjectErrorTips.getTipsForActivatorError( activator,
- projectId,
+ model.getId(),
pomFile,
profile,
context,
@@ -153,9 +153,10 @@
/**
* @see org.apache.maven.project.error.ProjectErrorReporter#reportActivatorLookupError(java.lang.String, java.io.File, org.apache.maven.model.Profile, org.codehaus.plexus.component.repository.exception.ComponentLookupException)
*/
- public void reportActivatorLookupError( String projectId,
+ public void reportActivatorLookupError( Model model,
File pomFile,
Profile profile,
+ ProfileActivationContext context,
ComponentLookupException cause )
{
StringWriter writer = new StringWriter();
@@ -174,8 +175,8 @@
writer.write( NEWLINE );
writer.write( cause.getMessage() );
- addStandardInfo( projectId, pomFile, writer );
- addTips( ProjectErrorTips.getTipsForActivatorLookupError( projectId,
+ addStandardInfo( model.getId(), pomFile, writer );
+ addTips( ProjectErrorTips.getTipsForActivatorLookupError( model.getId(),
pomFile,
profile,
cause ), writer );
@@ -252,7 +253,7 @@
* @see org.apache.maven.project.error.ProjectErrorReporter#reportInvalidRepositoryWhileGettingRepositoriesFromProfiles(org.apache.maven.model.Repository, java.lang.String, java.io.File, org.apache.maven.artifact.InvalidRepositoryException)
*/
public void reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( Repository repo,
- String projectId,
+ Model model,
File pomFile,
InvalidRepositoryException cause )
{
@@ -271,8 +272,8 @@
writer.write( NEWLINE );
writer.write( cause.getMessage() );
- addStandardInfo( projectId, pomFile, writer );
- addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, projectId, pomFile, cause ),
+ addStandardInfo( model.getId(), pomFile, writer );
+ addTips( ProjectErrorTips.getTipsForInvalidRepositorySpec( repo, model.getId(), pomFile, cause ),
writer );
registerBuildError( cause, writer.toString(), cause.getCause() );
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java?rev=612333&r1=612332&r2=612333&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/error/ProjectErrorReporter.java Tue Jan 15 18:20:08 2008
@@ -55,7 +55,7 @@
* </pre>
*/
void reportActivatorError( ProfileActivator activator,
- String projectId,
+ Model model,
File pomFile,
Profile profile,
ProfileActivationContext context,
@@ -77,9 +77,10 @@
* <------ ProjectBuildingException
* </pre>
*/
- void reportActivatorLookupError( String projectId,
+ void reportActivatorLookupError( Model model,
File pomFile,
Profile profile,
+ ProfileActivationContext context,
ComponentLookupException cause );
/**
@@ -131,7 +132,7 @@
* </pre>
*/
void reportInvalidRepositoryWhileGettingRepositoriesFromProfiles( Repository repo,
- String projectId,
+ Model model,
File pomFile,
InvalidRepositoryException cause );