Author: ogusakov Date: Fri Mar 6 22:14:31 2009 New Revision: 751105 URL: http://svn.apache.org/viewvc?rev=751105&view=rev Log: [MNG-3849] simplifying mercury
Added: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java (with props) maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java (with props) Modified: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java Modified: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java (original) +++ maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/Artifact.java Fri Mar 6 22:14:31 2009 @@ -20,14 +20,6 @@ import java.util.regex.Pattern; -/* - * Description of an artifact. - * - * @todo do we really need an interface here? - * - * @todo get rid of the multiple states we can have (project, parent, etc artifacts, file == null, - * snapshot, etc) - construct subclasses and use accordingly? - */ public interface Artifact extends Comparable<Artifact> { @@ -99,8 +91,4 @@ void setGroupId( String groupId ); void setArtifactId( String artifactId ); - - boolean isResolved(); - - void setResolved( boolean resolved ); } \ No newline at end of file Modified: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java (original) +++ maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactBasicMetadata.java Fri Mar 6 22:14:31 2009 @@ -304,6 +304,11 @@ return groupId + ":" + artifactId; } + public String toManagementString() + { + return groupId + ":" + artifactId + ":" + type + ( classifier != null ? ":" + classifier : "" ); + } + public String getBaseName() { return artifactId + "-" + version + ( classifier == null ? "" : "-" + classifier ); Modified: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java (original) +++ maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactCoordinates.java Fri Mar 6 22:14:31 2009 @@ -33,11 +33,10 @@ protected String version; - /** - * @param groupId - * @param artifactId - * @param version - */ + protected String classifier; + + protected String type; + public ArtifactCoordinates( String groupId, String artifactId, String version ) { this.groupId = groupId; @@ -45,6 +44,18 @@ this.version = version; } + public ArtifactCoordinates( String groupId, String artifactId, String version, String type ) + { + this( groupId, artifactId, version ); + this.type = type; + } + + public ArtifactCoordinates( String groupId, String artifactId, String version, String type, String classifier ) + { + this( groupId, artifactId, version, type ); + this.classifier = classifier; + } + public String getGroupId() { return groupId; @@ -74,11 +85,27 @@ { this.version = version; } + + public String getClassifier() + { + return classifier; + } + + public void setClassifier( String classifier ) + { + this.classifier = classifier; + } + + public String getType() + { + return type; + } + + public void setType( String type ) + { + this.type = type; + } - /* - * (non-Javadoc) - * @see java.lang.Object#toString() - */ @Override public String toString() { Modified: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java (original) +++ maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/ArtifactMetadata.java Fri Mar 6 22:14:31 2009 @@ -30,30 +30,12 @@ public class ArtifactMetadata extends ArtifactBasicMetadata { - // in addition to basic coordinates - - private boolean release; - - /** - * explanation: why this MD was chosen over it's siblings in the resulting structure (classpath for now) - */ - protected String why; - /** dependencies of the artifact behind this metadata */ protected List<ArtifactBasicMetadata> dependencies; - /** is metadata found anywhere */ - protected boolean resolved = false; - - /** does the actual artifact for this metadata exists */ - protected boolean artifactExists = false; - /** artifact URI */ protected String artifactUri; - /** error message */ - private String error; - /** * for testing - required for mock MetadataSource */ @@ -74,9 +56,6 @@ this.artifactScope = artifactScope; this.classifier = classifier; this.artifactUri = artifactUri; - this.why = why; - this.resolved = resolved; - this.error = error; this.attributes = attributes; } @@ -95,26 +74,6 @@ this( new ArtifactBasicMetadata( gav ) ); } - public boolean isResolved() - { - return resolved; - } - - public void setResolved( boolean resolved ) - { - this.resolved = resolved; - } - - public boolean isArtifactExists() - { - return artifactExists; - } - - public void setArtifactExists( boolean artifactExists ) - { - this.artifactExists = artifactExists; - } - public List<ArtifactBasicMetadata> getDependencies() { return dependencies; @@ -135,39 +94,4 @@ this.artifactUri = artifactUri; } - public String getWhy() - { - return why; - } - - public void setWhy( String why ) - { - this.why = why; - } - - public String getError() - { - return error; - } - - public void setError( String error ) - { - this.error = error; - } - - public boolean isError() - { - return error == null; - } - - public void setRelease( boolean release ) - { - this.release = release; - } - - public boolean isRelease() - { - return release; - } - } Added: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java?rev=751105&view=auto ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java (added) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java Fri Mar 6 22:14:31 2009 @@ -0,0 +1,52 @@ +/* +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. +*/ + +package org.apache.maven.mercury.metadata; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.apache.maven.mercury.util.Util; + +/** + * + * + * @author Oleg Gusakov + * @version $Id$ + * + */ +public class ArtifactFilterList +{ + List<MetadataTreeArtifactFilter> _filters = new ArrayList<MetadataTreeArtifactFilter>(4); + + public ArtifactFilterList() + { + } + + public ArtifactFilterList( Map<String, Collection<String>> filter ) + { + if( Util.isEmpty( filter ) ) + return; + + _filters.add( new MetadataTreeArtifactFilterMap(filter) ); + } + +} Propchange: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ArtifactFilterList.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClasspathContainer.java Fri Mar 6 22:14:31 2009 @@ -88,7 +88,7 @@ for ( ArtifactMetadata md : classpath ) { // TODO Oleg: is null for query good here ?? - node = new MetadataTreeNode( md, parent, null, md.isResolved() ); + node = new MetadataTreeNode( md, parent, null ); if ( tree == null ) { Added: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java?rev=751105&view=auto ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java (added) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java Fri Mar 6 22:14:31 2009 @@ -0,0 +1,57 @@ +/* +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. +*/ + +package org.apache.maven.mercury.metadata; + +import java.util.Collection; +import java.util.Map; + +import org.apache.maven.mercury.artifact.ArtifactBasicMetadata; +import org.apache.maven.mercury.util.Util; + +/** + * + * + * @author Oleg Gusakov + * @version $Id$ + * + */ +public class MetadataTreeArtifactFilterMap + implements MetadataTreeArtifactFilter +{ + Map<String, Collection<String>> _vetos; + + public MetadataTreeArtifactFilterMap(Map<String, Collection<String>> vetos) + { + _vetos = vetos; + } + + public boolean veto( ArtifactBasicMetadata md ) + { + String key = md.toManagementString(); + + Collection<String> ver = _vetos.get( key ); + + if( Util.isEmpty( ver ) ) + return false; + + return ver.contains( md.getVersion() ); + } + +} Propchange: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeArtifactFilterMap.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java Fri Mar 6 22:14:31 2009 @@ -136,13 +136,11 @@ public MetadataTreeNode( ArtifactMetadata md , MetadataTreeNode parent , ArtifactBasicMetadata query - , boolean resolved ) { if ( md != null ) { md.setArtifactScope( ArtifactScopeEnum.checkScope(md.getArtifactScope()) ); - md.setResolved(resolved); } this.md = md; @@ -150,11 +148,6 @@ this.query = query; } //------------------------------------------------------------------------ - public MetadataTreeNode( ArtifactMetadata md, MetadataTreeNode parent, ArtifactBasicMetadata query ) - { - this( md, parent, query, true ); - } - //------------------------------------------------------------------------ /** * dependencies are ordered in the POM - they should be added in the POM order */ @@ -278,7 +271,6 @@ MetadataTreeNode res = new MetadataTreeNode( node.getMd() , node.getParent() , node.getQuery() - , true ); res.setId( node.getId() ); Modified: maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java?rev=751105&r1=751104&r2=751105&view=diff ============================================================================== --- maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java (original) +++ maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java Fri Mar 6 22:14:31 2009 @@ -260,9 +260,12 @@ } // --------------------------------------------------------------- - public List<ArtifactMetadata> resolve( List<Repository> repos, ArtifactScopeEnum scope, - ArtifactQueryList artifacts, ArtifactInclusionList inclusions, - ArtifactExclusionList exclusions ) + public List<ArtifactMetadata> resolve( List<Repository> repos + , ArtifactScopeEnum scope + , ArtifactQueryList artifacts + , ArtifactInclusionList inclusions + , ArtifactExclusionList exclusions + ) throws RepositoryException { if ( Util.isEmpty( artifacts ) || artifacts.isEmpty() ) @@ -271,7 +274,7 @@ try { DependencyBuilder depBuilder = - DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos ); + DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null ); List<ArtifactMetadata> res = depBuilder.resolveConflicts( scope, artifacts, inclusions, exclusions );