Author: jvanzyl Date: Sun Nov 11 00:10:35 2007 New Revision: 593857 URL: http://svn.apache.org/viewvc?rev=593857&view=rev Log: o adding PomMetadataSource for the changes to maven-artifact o adding in all the artifact handlers here as they are Maven specific and don't belong in maven-artifact
Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java - copied, changed from r593740, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java Modified: maven/components/trunk/build.properties maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml maven/components/trunk/pom.xml Modified: maven/components/trunk/build.properties URL: http://svn.apache.org/viewvc/maven/components/trunk/build.properties?rev=593857&r1=593856&r2=593857&view=diff ============================================================================== --- maven/components/trunk/build.properties (original) +++ maven/components/trunk/build.properties Sun Nov 11 00:10:35 2007 @@ -17,7 +17,7 @@ aspectj.version=1.5.3 classworlds.version=1.2-alpha-10 -plexus.version=1.0-alpha-38 +plexus.version=1.0-alpha-39 plexus-utils.version=1.4.5 maven-artifact.version=3.0-SNAPSHOT commons-cli.version=1.0 Modified: maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml?rev=593857&r1=593856&r2=593857&view=diff ============================================================================== --- maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml (original) +++ maven/components/trunk/maven-core/src/main/resources/META-INF/plexus/components.xml Sun Nov 11 00:10:35 2007 @@ -19,6 +19,167 @@ <component-set> <components> + + <!-- + | These are the artifacts handlers that were previously in maven-artifact and they don't belong there as these + | are Maven specific artifact handlers. We need to put these into their respective plugins and make this fully dynamic. jvz. + --> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>ejb</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>ejb</type> + <extension>jar</extension> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>jar</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>jar</type> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>test-jar</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <classifier>tests</classifier> + <extension>jar</extension> + <type>test-jar</type> + <packaging>jar</packaging> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>maven-plugin</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>maven-plugin</type> + <extension>jar</extension> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>pom</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>pom</type> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>java-source</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <classifier>sources</classifier> + <type>java-source</type> + <extension>jar</extension> + <language>java</language> + <addedToClasspath>false</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>javadoc</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <classifier>javadoc</classifier> + <type>javadoc</type> + <extension>jar</extension> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>war</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>war</type> + <includesDependencies>true</includesDependencies> + <language>java</language> + <addedToClasspath>false</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>ear</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>ear</type> + <includesDependencies>true</includesDependencies> + <language>java</language> + <addedToClasspath>false</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>ejb-client</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>ejb-client</type> + <extension>jar</extension> + <packaging>ejb</packaging> + <classifier>client</classifier> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>rar</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>rar</type> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>par</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>par</type> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + + <component> + <role>org.apache.maven.artifact.handler.ArtifactHandler</role> + <role-hint>ejb3</role-hint> + <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation> + <configuration> + <type>ejb3</type> + <language>java</language> + <addedToClasspath>true</addedToClasspath> + </configuration> + </component> + <component> <role>org.apache.maven.extension.BuildExtensionScanner</role> <role-hint>default</role-hint> Copied: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java (from r593740, maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java) URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java?p2=maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java&p1=maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java&r1=593740&r2=593857&rev=593857&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/MavenMetadataSource.java (original) +++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/artifact/PomMetadataSource.java Sun Nov 11 00:10:35 2007 @@ -22,31 +22,19 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; -import org.apache.maven.artifact.metadata.ArtifactMetadataSource; -import org.apache.maven.artifact.metadata.ResolutionGroup; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.metadata.ArtifactRepositoryMetadata; -import org.apache.maven.artifact.repository.metadata.Metadata; -import org.apache.maven.artifact.repository.metadata.RepositoryMetadata; import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager; -import org.apache.maven.artifact.repository.metadata.RepositoryMetadataResolutionException; -import org.apache.maven.artifact.resolver.filter.AndArtifactFilter; -import org.apache.maven.artifact.resolver.filter.ArtifactFilter; -import org.apache.maven.artifact.resolver.filter.ExcludesArtifactFilter; -import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException; -import org.apache.maven.artifact.versioning.VersionRange; +import org.apache.maven.artifact.resolver.metadata.ArtifactMetadata; +import org.apache.maven.artifact.resolver.metadata.MetadataResolution; +import org.apache.maven.artifact.resolver.metadata.MetadataRetrievalException; +import org.apache.maven.artifact.resolver.metadata.MetadataSource; import org.apache.maven.context.BuildContextManager; import org.apache.maven.model.Dependency; -import org.apache.maven.model.DistributionManagement; -import org.apache.maven.model.Exclusion; -import org.apache.maven.model.Relocation; import org.apache.maven.project.InvalidProjectModelException; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.ProjectBuildingException; import org.apache.maven.project.build.ProjectBuildCache; -import org.apache.maven.project.validation.ModelValidationResult; import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; @@ -54,24 +42,20 @@ import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; -import org.codehaus.plexus.util.StringUtils; -import java.io.File; import java.util.ArrayList; -import java.util.Collections; +import java.util.HashSet; import java.util.Iterator; -import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * @author Jason van Zyl - * @author <a href="mailto:[EMAIL PROTECTED]">Brett Porter</a> * @version $Id$ */ -public class MavenMetadataSource +public class PomMetadataSource extends AbstractLogEnabled - implements ArtifactMetadataSource, Contextualizable + implements MetadataSource, Contextualizable { public static final String ROLE_HINT = "default"; @@ -79,8 +63,6 @@ private ArtifactFactory artifactFactory; - private RepositoryMetadataManager repositoryMetadataManager; - private BuildContextManager buildContextManager; // lazily instantiated and cached. @@ -89,15 +71,12 @@ private PlexusContainer container; /** Unfortunately we have projects that are still sending us JARs without the accompanying POMs. */ - private boolean strictlyEnforceThePresenceOfAValidMavenPOM = false; + private boolean strictlyEnforceThePresenceOfAValidMavenPOM = true; - /** - * Retrieve the metadata for the project from the repository. - * Uses the ProjectBuilder, to enable post-processing and inheritance calculation before retrieving the - * associated artifacts. - */ - public ResolutionGroup retrieve( Artifact artifact, ArtifactRepository localRepository, List remoteRepositories ) - throws ArtifactMetadataRetrievalException + public MetadataResolution retrieve( ArtifactMetadata artifactMetadata, + ArtifactRepository localRepository, + List remoteRepositories ) + throws MetadataRetrievalException { try { @@ -105,177 +84,54 @@ } catch ( ComponentLookupException e ) { - throw new ArtifactMetadataRetrievalException( "Cannot lookup MavenProjectBuilder component instance: " + e.getMessage(), e ); + throw new MetadataRetrievalException( + "Cannot lookup MavenProjectBuilder component instance: " + e.getMessage(), e ); } ProjectBuildCache cache = ProjectBuildCache.read( buildContextManager ); - MavenProject project = null; + MavenProject project; - Artifact pomArtifact; - - boolean done = false; - do - { - // TODO: can we just modify the original? - pomArtifact = artifactFactory.createProjectArtifact( artifact.getGroupId(), artifact.getArtifactId(), - artifact.getVersion(), artifact.getScope() ); + Artifact pomArtifact = artifactFactory.createProjectArtifact( artifactMetadata.getGroupId(), artifactMetadata.getArtifactId(), + artifactMetadata.getVersion(), artifactMetadata.getScope() ); - if ( Artifact.SCOPE_SYSTEM.equals( artifact.getScope() ) ) + project = cache.getCachedProject( artifactMetadata.getGroupId(), artifactMetadata.getArtifactId(), artifactMetadata.getVersion() ); + + if ( project == null ) + { + try { - done = true; + project = mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository ); } - else + catch ( InvalidProjectModelException e ) { - project = cache.getCachedProject( artifact ); - - if ( project == null ) - { - try - { - project = mavenProjectBuilder.buildFromRepository( pomArtifact, remoteRepositories, localRepository ); - } - catch ( InvalidProjectModelException e ) - { - getLogger().warn( "POM for \'" + pomArtifact + - "\' is invalid. It will be ignored for artifact resolution. Reason: " + e.getMessage() ); - - if ( getLogger().isDebugEnabled() ) - { - getLogger().debug( "Reason: " + e.getMessage() ); - - ModelValidationResult validationResult = e.getValidationResult(); - - if ( validationResult != null ) - { - getLogger().debug( "\nValidation Errors:" ); - for ( Iterator i = validationResult.getMessages().iterator(); i.hasNext(); ) - { - getLogger().debug( i.next().toString() ); - } - getLogger().debug( "\n" ); - } - } - - project = null; - } - catch ( ProjectBuildingException e ) - { - if ( strictlyEnforceThePresenceOfAValidMavenPOM ) - { - throw new ArtifactMetadataRetrievalException( "Unable to read the metadata file for artifact '" + - artifact.getDependencyConflictId() + "': " + e.getMessage(), e, artifact ); - } - } - } - - if ( project != null ) - { - Relocation relocation = null; - - DistributionManagement distMgmt = project.getDistributionManagement(); - if ( distMgmt != null ) - { - relocation = distMgmt.getRelocation(); - - artifact.setDownloadUrl( distMgmt.getDownloadUrl() ); - pomArtifact.setDownloadUrl( distMgmt.getDownloadUrl() ); - } - - if ( relocation != null ) - { - if ( relocation.getGroupId() != null ) - { - artifact.setGroupId( relocation.getGroupId() ); - } - if ( relocation.getArtifactId() != null ) - { - artifact.setArtifactId( relocation.getArtifactId() ); - } - if ( relocation.getVersion() != null ) - { - artifact.setVersionRange( VersionRange.createFromVersion( relocation.getVersion() ) ); - } - - if ( ( artifact.getDependencyFilter() != null ) && - !artifact.getDependencyFilter().include( artifact ) ) - { - return null; - } - - String message = "\n This artifact has been relocated to " + artifact.getGroupId() + ":" + - artifact.getArtifactId() + ":" + artifact.getVersion() + ".\n"; - - if ( relocation.getMessage() != null ) - { - message += " " + relocation.getMessage() + "\n"; - } - - if ( ( artifact.getDependencyTrail() != null ) && ( artifact.getDependencyTrail().size() == 1 ) ) - { - getLogger().warn( "While downloading " + artifact.getGroupId() + ":" + - artifact.getArtifactId() + ":" + artifact.getVersion() + message + "\n" ); - } - else - { - getLogger().debug( "While downloading " + artifact.getGroupId() + ":" + - artifact.getArtifactId() + ":" + artifact.getVersion() + message + "\n" ); - } - } - else - { - done = true; - } - } - else + // We want to capture this in the graph so that we can display the error to the user + } + catch ( ProjectBuildingException e ) + { + if ( strictlyEnforceThePresenceOfAValidMavenPOM ) { - done = true; + throw new MetadataRetrievalException( + "Unable to read the metadata file for artifactMetadata '" + + artifactMetadata.getDependencyConflictId() + "': " + e.getMessage(), e, artifactMetadata ); } } } - while ( !done ); - // last ditch effort to try to get this set... - if ( artifact.getDownloadUrl() == null ) - { - // TODO: this could come straight from the project, negating the need to set it in the project itself? - artifact.setDownloadUrl( pomArtifact.getDownloadUrl() ); - } + Set artifacts = new HashSet(); - ResolutionGroup result; - - if ( project == null ) + for ( Iterator i = project.getDependencies().iterator(); i.hasNext(); ) { - // if the project is null, we encountered an invalid model (read: m1 POM) - // we'll just return an empty resolution group. - // or used the inherited scope (should that be passed to the buildFromRepository method above?) - result = new ResolutionGroup( pomArtifact, Collections.EMPTY_SET, Collections.EMPTY_LIST ); - } - else - { - Set artifacts = Collections.EMPTY_SET; - if ( !artifact.getArtifactHandler().isIncludesDependencies() ) - { - // TODO: we could possibly use p.getDependencyArtifacts instead of this call, but they haven't been filtered - // or used the inherited scope (should that be passed to the buildFromRepository method above?) - try - { - artifacts = project.createArtifacts( artifactFactory, artifact.getScope(), - artifact.getDependencyFilter() ); - } - catch ( InvalidDependencyVersionException e ) - { - throw new ArtifactMetadataRetrievalException( "Error in metadata for artifact '" + - artifact.getDependencyConflictId() + "': " + e.getMessage(), e ); - } - } - - List repositories = aggregateRepositoryLists( remoteRepositories, project.getRemoteArtifactRepositories() ); + Dependency d = (Dependency) i.next(); - result = new ResolutionGroup( pomArtifact, artifacts, repositories ); + artifacts.add( new ArtifactMetadata( d.getGroupId(), d.getArtifactId(), d.getVersion() ) ); } - return result; + // The remote repositories is intentially null here while working in the graph in the least invasive way + // and making sure repositories added for a POM are scope only for a particular POM. We don't want + // repositories lingering around or being aggregated after they are used. jvz + + return new MetadataResolution( artifacts, null ); } private void loadProjectBuilder() @@ -287,7 +143,8 @@ } } - private List aggregateRepositoryLists( List remoteRepositories, List remoteArtifactRepositories ) + private List aggregateRepositoryLists( List remoteRepositories, + List remoteArtifactRepositories ) throws ArtifactMetadataRetrievalException { if ( superProject == null ) @@ -341,126 +198,9 @@ return repositories; } - /** - * @todo desperately needs refactoring. It's just here because it's implementation is maven-project specific - * @return [EMAIL PROTECTED] Set} < [EMAIL PROTECTED] Artifact} > - */ - public static Set createArtifacts( ArtifactFactory artifactFactory, List dependencies, String inheritedScope, - ArtifactFilter dependencyFilter, MavenProject project ) - throws InvalidDependencyVersionException - { - Set projectArtifacts = new LinkedHashSet( dependencies.size() ); - - for ( Iterator i = dependencies.iterator(); i.hasNext(); ) - { - Dependency d = (Dependency) i.next(); - - String scope = d.getScope(); - - if ( StringUtils.isEmpty( scope ) ) - { - scope = Artifact.SCOPE_COMPILE; - - d.setScope( scope ); - } - - VersionRange versionRange; - try - { - versionRange = VersionRange.createFromVersionSpec( d.getVersion() ); - } - catch ( InvalidVersionSpecificationException e ) - { - throw new InvalidDependencyVersionException( project.getId(), d, project.getFile(), e ); - } - Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(), - versionRange, d.getType(), d.getClassifier(), - scope, inheritedScope, d.isOptional() ); - - if ( Artifact.SCOPE_SYSTEM.equals( scope ) ) - { - artifact.setFile( new File( d.getSystemPath() ) ); - } - - ArtifactFilter artifactFilter = dependencyFilter; - - if ( ( artifact != null ) && ( ( artifactFilter == null ) || artifactFilter.include( artifact ) ) ) - { - if ( ( d.getExclusions() != null ) && !d.getExclusions().isEmpty() ) - { - List exclusions = new ArrayList(); - for ( Iterator j = d.getExclusions().iterator(); j.hasNext(); ) - { - Exclusion e = (Exclusion) j.next(); - exclusions.add( e.getGroupId() + ":" + e.getArtifactId() ); - } - - ArtifactFilter newFilter = new ExcludesArtifactFilter( exclusions ); - - if ( artifactFilter != null ) - { - AndArtifactFilter filter = new AndArtifactFilter(); - filter.add( artifactFilter ); - filter.add( newFilter ); - artifactFilter = filter; - } - else - { - artifactFilter = newFilter; - } - } - - artifact.setDependencyFilter( artifactFilter ); - - if ( project != null ) - { - artifact = project.replaceWithActiveArtifact( artifact ); - } - - projectArtifacts.add( artifact ); - } - } - - return projectArtifacts; - } - - public List retrieveAvailableVersions( Artifact artifact, ArtifactRepository localRepository, - List remoteRepositories ) - throws ArtifactMetadataRetrievalException - { - RepositoryMetadata metadata = new ArtifactRepositoryMetadata( artifact ); - try - { - repositoryMetadataManager.resolve( metadata, remoteRepositories, localRepository ); - } - catch ( RepositoryMetadataResolutionException e ) - { - throw new ArtifactMetadataRetrievalException( e.getMessage(), e ); - } - - List versions; - Metadata repoMetadata = metadata.getMetadata(); - if ( ( repoMetadata != null ) && ( repoMetadata.getVersioning() != null ) ) - { - List metadataVersions = repoMetadata.getVersioning().getVersions(); - versions = new ArrayList( metadataVersions.size() ); - for ( Iterator i = metadataVersions.iterator(); i.hasNext(); ) - { - String version = (String) i.next(); - versions.add( new DefaultArtifactVersion( version ) ); - } - } - else - { - versions = Collections.EMPTY_LIST; - } - - return versions; - } - public void contextualize( Context context ) throws ContextException { container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); } -} +} \ No newline at end of file Modified: maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?rev=593857&r1=593856&r2=593857&view=diff ============================================================================== --- maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml (original) +++ maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml Sun Nov 11 00:10:35 2007 @@ -69,9 +69,6 @@ </requirements> </component> - - - <component> <role>org.apache.maven.project.build.model.ModelLineageBuilder</role> <role-hint>default</role-hint> @@ -338,6 +335,21 @@ </requirement> <requirement> <role>org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager</role> + </requirement> + <requirement> + <role>org.apache.maven.context.BuildContextManager</role> + <role-hint>default</role-hint> + </requirement> + </requirements> + </component> + + <component> + <role>org.apache.maven.artifact.resolver.metadata.MetadataSource</role> + <role-hint>default</role-hint> + <implementation>org.apache.maven.project.artifact.PomMetadataSource</implementation> + <requirements> + <requirement> + <role>org.apache.maven.artifact.factory.ArtifactFactory</role> </requirement> <requirement> <role>org.apache.maven.context.BuildContextManager</role> Modified: maven/components/trunk/pom.xml URL: http://svn.apache.org/viewvc/maven/components/trunk/pom.xml?rev=593857&r1=593856&r2=593857&view=diff ============================================================================== --- maven/components/trunk/pom.xml (original) +++ maven/components/trunk/pom.xml Sun Nov 11 00:10:35 2007 @@ -153,7 +153,7 @@ <module>maven-embedder</module> </modules> <properties> - <plexusVersion>1.0-alpha-38</plexusVersion> + <plexusVersion>1.0-alpha-39</plexusVersion> <wagonVersion>1.0-beta-2</wagonVersion> </properties> <dependencies> @@ -294,4 +294,4 @@ </modules> </profile> </profiles> -</project> \ No newline at end of file +</project>