Author: ogusakov Date: Thu Mar 26 18:48:51 2009 New Revision: 758797 URL: http://svn.apache.org/viewvc?rev=758797&view=rev Log: [MERCURY-106] - added resolveAsTree to plexus component
Added: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java (contents, props changed) - copied, changed from r757659, maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java Removed: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicDepthComparator.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicVersionComparator.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/DependencyBuilder.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeDumper.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAComparator.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAVComparator.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolver.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/HelpingSatSolver.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatContext.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatOptimizer.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatSolver.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatVar.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/DefaultPlexusMercury.java maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/PlexusMercury.java maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java Copied: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java (from r757659, 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-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java?p2=maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java&p1=maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNode.java&r1=757659&r2=758797&rev=758797&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-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java Thu Mar 26 18:48:51 2009 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.maven.mercury.metadata; +package org.apache.maven.mercury.artifact; import java.io.IOException; import java.io.StringWriter; @@ -25,10 +25,6 @@ import java.util.List; import java.util.TreeSet; -import org.apache.maven.mercury.artifact.ArtifactMetadata; -import org.apache.maven.mercury.artifact.ArtifactScopeEnum; -import org.apache.maven.mercury.logging.IMercuryLogger; -import org.apache.maven.mercury.logging.MercuryLoggerManager; import org.codehaus.plexus.lang.DefaultLanguage; import org.codehaus.plexus.lang.Language; @@ -39,9 +35,11 @@ */ public class MetadataTreeNode { - private static final int DEFAULT_CHILDREN_COUNT = 8; + /** prevailing # of queries (dependencies) in the dirty tree node */ + private static final int DEFAULT_QUERY_COUNT = 8; - private static final IMercuryLogger LOG = MercuryLoggerManager.getLogger( MetadataTreeNode.class ); + /** prevailing # of children in the dirty tree node. If all queries are ranges - 2 hits per range */ + private static final int DEFAULT_CHILDREN_COUNT = 16; private static final Language LANG = new DefaultLanguage( MetadataTreeNode.class ); @@ -56,6 +54,11 @@ boolean optional = false; /** + * is there a real artifact behind this node, or it's just a helper ? + */ + boolean real = true; + + /** * parent node */ MetadataTreeNode parent; @@ -112,12 +115,6 @@ getDistinctNodes( this, nodes ); - if ( LOG.isDebugEnabled() ) - { - LOG.debug( "tree distinct nodes count" ); - LOG.debug( nodes.toString() ); - } - return nodes.size(); } @@ -190,7 +187,7 @@ if ( queries == null ) { - queries = new ArrayList<ArtifactMetadata>( DEFAULT_CHILDREN_COUNT ); + queries = new ArrayList<ArtifactMetadata>( DEFAULT_QUERY_COUNT ); } queries.add( query ); @@ -265,6 +262,16 @@ return optional; } + public boolean isReal() + { + return real; + } + + public void setReal( boolean real) + { + this.real = real; + } + public ArtifactMetadata getQuery() { return query; Propchange: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: maven/mercury/trunk/mercury-artifact/src/main/java/org/apache/maven/mercury/artifact/MetadataTreeNode.java ------------------------------------------------------------------------------ svn:mergeinfo = Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java (original) +++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/dependency/tests/DependencyTreeBuilderTest.java Thu Mar 26 18:48:51 2009 @@ -33,13 +33,13 @@ import org.apache.maven.mercury.artifact.Artifact; import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.event.DumbListener; import org.apache.maven.mercury.logging.IMercuryLogger; import org.apache.maven.mercury.logging.MercuryLoggerManager; import org.apache.maven.mercury.metadata.DependencyBuilder; import org.apache.maven.mercury.metadata.DependencyBuilderFactory; import org.apache.maven.mercury.metadata.MetadataTreeException; -import org.apache.maven.mercury.metadata.MetadataTreeNode; import org.apache.maven.mercury.repository.api.ArtifactResults; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.repository.api.RepositoryReader; Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java (original) +++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/plexus/DefaultPlexusMercuryTest.java Thu Mar 26 18:48:51 2009 @@ -33,6 +33,7 @@ import org.apache.maven.mercury.artifact.ArtifactQueryList; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; import org.apache.maven.mercury.artifact.DefaultArtifact; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.builder.api.DependencyProcessor; import org.apache.maven.mercury.crypto.api.StreamVerifierFactory; import org.apache.maven.mercury.crypto.pgp.PgpStreamVerifierFactory; @@ -340,6 +341,44 @@ } // ------------------------------------------------------------------------------------- + public void testResolveAsTree() + throws Exception + { + Server central = new Server( "central", new URL( "http://repo1.maven.org/maven2" ) ); + // Server central = new Server( "central", new URL("http://repository.sonatype.org/content/groups/public") ); + + repos.add( new RemoteRepositoryM2( central, pm.findDependencyProcessor() ) ); + + String artifactId = "asm:asm-xml:3.0"; + + MetadataTreeNode res = + pm.resolveAsTree( repos, ArtifactScopeEnum.compile, new ArtifactQueryList( artifactId ), null, null ); + + System.out.println( "Resolved as tree:" ); + MetadataTreeNode.showNode( res, 0 ); + + assertNotNull( res ); + + assertTrue( res.hasChildren() ); + + int nodes = res.countNodes(); + + /* tree structure: + 0 asm:asm-xml:3.0::jar + 1 asm:asm-util:3.0::jar + 2 asm:asm-tree:3.0::jar + 3 asm:asm:3.0::jar + */ + + assertEquals( 4, nodes ); + + assertTrue( res.getMd().equals( new ArtifactMetadata( "asm:asm-xml:3.0" ) ) ); + assertTrue( res.getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-util:3.0" ) ) ); + assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm-tree:3.0" ) ) ); + assertTrue( res.getChildren().get( 0 ).getChildren().get( 0 ).getChildren().get( 0 ).getMd().equals( new ArtifactMetadata( "asm:asm:3.0" ) ) ); + } + + // ------------------------------------------------------------------------------------- @SuppressWarnings( "unchecked" ) public void testResolveWithExclusion() throws Exception Modified: maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java (original) +++ maven/mercury/trunk/mercury-it/src/test/java/org/apache/maven/mercury/repository/tests/ComprehensiveRepositoryTest.java Thu Mar 26 18:48:51 2009 @@ -299,6 +299,41 @@ assertFalse( localRepo2Jar.exists() ); } + public void testWriteReadArtifactPom() + throws Exception + { + String name = "org.apache.maven:maven-core:2.0.9::pom"; + + File af = new File( _resourceBase, "maven-core-2.0.9.pom" ); + File ap = new File( _resourceBase, "maven-core-2.0.9.pom" ); + + File aJar1 = new File( _base1, "org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom"); + File aJar2 = new File( _base2, "org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom"); + + assertFalse( aJar1.exists() ); + assertFalse( aJar2.exists() ); + + writeArtifact( name, af, ap, _rr2, aJar2 ); + + assertFalse( aJar1.exists() ); + assertTrue( aJar2.exists() ); + + List<Artifact> al = readArtifact( name, _rrs ); + + System.out.println(al); + + File localRepo1Jar = new File( _lbase1, "org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom" ); + File localRepo2Jar = new File( _lbase2, "org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom" ); + + assertFalse( localRepo1Jar.exists() ); + assertFalse( localRepo2Jar.exists() ); + + al = readArtifact( name, _repos ); + + assertTrue( localRepo1Jar.exists() ); + assertFalse( localRepo2Jar.exists() ); + } + public void testWriteReadTimeStamp() throws Exception { Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicDepthComparator.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicDepthComparator.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicDepthComparator.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicDepthComparator.java Thu Mar 26 18:48:51 2009 @@ -20,6 +20,8 @@ import java.util.Comparator; +import org.apache.maven.mercury.artifact.MetadataTreeNode; + /** * classical depth comparator: shallower is better by default, but that could * be changed by appropriate constructor Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicVersionComparator.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicVersionComparator.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicVersionComparator.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/ClassicVersionComparator.java Thu Mar 26 18:48:51 2009 @@ -21,6 +21,7 @@ import java.util.Comparator; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.artifact.version.DefaultArtifactVersion; /** 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=758797&r1=758796&r2=758797&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 Thu Mar 26 18:48:51 2009 @@ -24,6 +24,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; /* * classpath container that is aware of the classpath scope Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilder.java Thu Mar 26 18:48:51 2009 @@ -25,6 +25,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactQueryList; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.event.MercuryEventListener; /** @@ -79,6 +80,23 @@ throws MetadataTreeException; /** + * consolidated entry point: give it a collection of GAVs, it + * will create a tree out of it + * + * @param root the tree to resolve conflicts on + * @return resolved metadata tree + * @throws MetadataTreeException + */ + public abstract MetadataTreeNode resolveConflictsAsTree( + ArtifactScopeEnum scope + , ArtifactQueryList artifacts + , ArtifactInclusionList inclusions + , ArtifactExclusionList exclusions + ) + + throws MetadataTreeException; + + /** * this one resolves the conflicts, removing all duplicate GAVs from the tree and * returning a copy of the resulting subtree - original tree should be intact * Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyBuilderFactory.java Thu Mar 26 18:48:51 2009 @@ -23,6 +23,7 @@ import java.util.List; import java.util.Map; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.artifact.api.ArtifactListProcessor; import org.apache.maven.mercury.repository.api.Repository; import org.apache.maven.mercury.repository.api.RepositoryException; Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeBuilder.java Thu Mar 26 18:48:51 2009 @@ -30,6 +30,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactQueryList; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.artifact.api.ArtifactListProcessor; import org.apache.maven.mercury.artifact.version.VersionException; import org.apache.maven.mercury.event.EventGenerator; @@ -85,6 +86,26 @@ private EventManager _eventManager; private boolean _buildIndividualTrees = true; + + class TruckLoad + { + List<ArtifactMetadata> cp; + MetadataTreeNode root; + + public TruckLoad() + { + } + + public TruckLoad( List<ArtifactMetadata> cp ) + { + this.cp = cp; + } + + public TruckLoad( MetadataTreeNode root ) + { + this.root = root; + } + } /** * creates an instance of MetadataTree. Use this instance to @@ -163,11 +184,38 @@ // ------------------------------------------------------------------------ public List<ArtifactMetadata> resolveConflicts( - ArtifactScopeEnum scope - , ArtifactQueryList artifacts + ArtifactScopeEnum scope + , ArtifactQueryList artifacts , ArtifactInclusionList inclusions , ArtifactExclusionList exclusions ) + throws MetadataTreeException + { + TruckLoad tl = resolveConflictsInternally( scope, artifacts, inclusions, exclusions, false ); + + return tl == null ? null : tl.cp; + } + // ------------------------------------------------------------------------ + public MetadataTreeNode resolveConflictsAsTree( + ArtifactScopeEnum scope + , ArtifactQueryList artifacts + , ArtifactInclusionList inclusions + , ArtifactExclusionList exclusions + ) + throws MetadataTreeException + { + TruckLoad tl = resolveConflictsInternally( scope, artifacts, inclusions, exclusions, true ); + + return tl == null ? null : tl.root; + } + // ------------------------------------------------------------------------ + public TruckLoad resolveConflictsInternally( + ArtifactScopeEnum scope + , ArtifactQueryList artifacts + , ArtifactInclusionList inclusions + , ArtifactExclusionList exclusions + , boolean asTree + ) throws MetadataTreeException { @@ -186,13 +234,25 @@ ArtifactMetadata bmd = startMDs.get( 0 ); MetadataTreeNode rooty = buildTree( bmd, scope ); + TruckLoad tl = null; + + if( asTree ) + { + MetadataTreeNode tr = resolveConflictsAsTree( rooty ); + + tl = new TruckLoad( tr ); + } + else + { + List<ArtifactMetadata> res = resolveConflicts( rooty ); + + tl = new TruckLoad( res ); + + if(_dumpDepTree ) + _dumper.dump( scope, artifacts, inclusions, exclusions, rooty, res ); + } - List<ArtifactMetadata> res = resolveConflicts( rooty ); - -if(_dumpDepTree ) - _dumper.dump( scope, artifacts, inclusions, exclusions, rooty, res ); - - return res; + return tl; } DUMMY_ROOT.setDependencies( startMDs ); @@ -260,16 +320,30 @@ DUMMY_ROOT.setDependencies( startMDs ); root = buildTree( DUMMY_ROOT, scope ); } + + + TruckLoad tl = null; + + if( asTree ) + { + MetadataTreeNode tr = resolveConflictsAsTree( root ); + + tl = new TruckLoad( tr ); + } + else + { + List<ArtifactMetadata> cp = resolveConflicts( root ); - List<ArtifactMetadata> res = resolveConflicts( root ); - - if( res != null ) - res.remove( DUMMY_ROOT ); - -if(_dumpDepTree ) - _dumper.dump( scope, artifacts, inclusions, exclusions, root, res ); + if( cp != null ) + cp.remove( DUMMY_ROOT ); + + if(_dumpDepTree ) + _dumper.dump( scope, artifacts, inclusions, exclusions, root, cp ); + + tl = new TruckLoad( cp ); + } - return res; + return tl; } // ----------------------------------------------------- private MetadataTreeNode createNode( ArtifactMetadata nodeMD, MetadataTreeNode parent @@ -424,24 +498,24 @@ { count++; // System.out.println("circ "+md+" vs "+p.md); - if ( md.sameGA( p.md ) ) + if ( md.sameGA( p.getMd() ) ) { p = parent; StringBuilder sb = new StringBuilder( 128 ); sb.append( md.toString() ); while ( p != null ) { - sb.append( " <- " + p.md.toString() ); + sb.append( " <- " + p.getMd().toString() ); - if ( md.sameGA( p.md ) ) + if ( md.sameGA( p.getMd() ) ) { throw new MetadataTreeCircularDependencyException( "circular dependency " + count - + " levels up. " + sb.toString() + " <= " + ( p.parent == null ? "no parent" : p.parent.md ) ); + + " levels up. " + sb.toString() + " <= " + ( p.getParent() == null ? "no parent" : p.getParent().getMd() ) ); } - p = p.parent; + p = p.getParent(); } } - p = p.parent; + p = p.getParent(); } } @@ -550,7 +624,7 @@ comma = " <== "; - p = p.parent; + p = p.getParent(); } return sb.toString(); Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeDumper.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeDumper.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeDumper.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/DependencyTreeDumper.java Thu Mar 26 18:48:51 2009 @@ -35,6 +35,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactQueryList; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.metadata.forest.Forest; import org.apache.maven.mercury.metadata.forest.Node; import org.apache.maven.mercury.metadata.forest.Tree; Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAComparator.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAComparator.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAComparator.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAComparator.java Thu Mar 26 18:48:51 2009 @@ -20,6 +20,8 @@ import java.util.Comparator; +import org.apache.maven.mercury.artifact.MetadataTreeNode; + /** * utility class for DefaultSatSolver. Assumes good data - no null's * Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAVComparator.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAVComparator.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAVComparator.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/MetadataTreeNodeGAVComparator.java Thu Mar 26 18:48:51 2009 @@ -20,6 +20,8 @@ import java.util.Comparator; +import org.apache.maven.mercury.artifact.MetadataTreeNode; + /** * utility class for DefaultSatSolver. Assumes good data - no null's * Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolver.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolver.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolver.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolver.java Thu Mar 26 18:48:51 2009 @@ -28,13 +28,13 @@ import java.util.Map; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.event.EventManager; import org.apache.maven.mercury.event.EventTypeEnum; import org.apache.maven.mercury.event.GenericEvent; import org.apache.maven.mercury.event.MercuryEventListener; import org.apache.maven.mercury.logging.IMercuryLogger; import org.apache.maven.mercury.logging.MercuryLoggerManager; -import org.apache.maven.mercury.metadata.MetadataTreeNode; import org.apache.maven.mercury.metadata.MetadataTreeNodeGAComparator; import org.apache.maven.mercury.metadata.MetadataTreeNodeGAVComparator; import org.codehaus.plexus.lang.DefaultLanguage; Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/HelpingSatSolver.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/HelpingSatSolver.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/HelpingSatSolver.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/HelpingSatSolver.java Thu Mar 26 18:48:51 2009 @@ -29,13 +29,13 @@ import java.util.Map; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.event.EventManager; import org.apache.maven.mercury.event.EventTypeEnum; import org.apache.maven.mercury.event.GenericEvent; import org.apache.maven.mercury.event.MercuryEventListener; import org.apache.maven.mercury.logging.IMercuryLogger; import org.apache.maven.mercury.logging.MercuryLoggerManager; -import org.apache.maven.mercury.metadata.MetadataTreeNode; import org.apache.maven.mercury.metadata.MetadataTreeNodeGAComparator; import org.apache.maven.mercury.metadata.MetadataTreeNodeGAVComparator; import org.codehaus.plexus.lang.DefaultLanguage; Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatContext.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatContext.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatContext.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatContext.java Thu Mar 26 18:48:51 2009 @@ -24,9 +24,9 @@ import java.util.Map; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.logging.IMercuryLogger; import org.apache.maven.mercury.logging.MercuryLoggerManager; -import org.apache.maven.mercury.metadata.MetadataTreeNode; import org.codehaus.plexus.lang.DefaultLanguage; import org.codehaus.plexus.lang.Language; Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatOptimizer.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatOptimizer.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatOptimizer.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatOptimizer.java Thu Mar 26 18:48:51 2009 @@ -18,7 +18,7 @@ */ package org.apache.maven.mercury.metadata.sat; -import org.apache.maven.mercury.metadata.MetadataTreeNode; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.sat4j.pb.ObjectiveFunction; /** Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatSolver.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatSolver.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatSolver.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatSolver.java Thu Mar 26 18:48:51 2009 @@ -22,8 +22,8 @@ import java.util.List; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.event.EventGenerator; -import org.apache.maven.mercury.metadata.MetadataTreeNode; /** * @author <a href="o...@codehaus.org">Oleg Gusakov</a> Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatVar.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatVar.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatVar.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/main/java/org/apache/maven/mercury/metadata/sat/SatVar.java Thu Mar 26 18:48:51 2009 @@ -19,7 +19,7 @@ package org.apache.maven.mercury.metadata.sat; import org.apache.maven.mercury.artifact.ArtifactMetadata; -import org.apache.maven.mercury.metadata.MetadataTreeNode; +import org.apache.maven.mercury.artifact.MetadataTreeNode; /** * @author <a href="o...@codehaus.org">Oleg Gusakov</a> Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/AbstractSimpleTreeTest.java Thu Mar 26 18:48:51 2009 @@ -21,6 +21,7 @@ import junit.framework.TestCase; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; public abstract class AbstractSimpleTreeTest extends TestCase Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicDepthComparatorTest.java Thu Mar 26 18:48:51 2009 @@ -20,6 +20,8 @@ import java.util.Comparator; +import org.apache.maven.mercury.artifact.MetadataTreeNode; + public class ClassicDepthComparatorTest extends AbstractSimpleTreeTest { Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/ClassicVersionComparatorTest.java Thu Mar 26 18:48:51 2009 @@ -20,6 +20,8 @@ import java.util.Comparator; +import org.apache.maven.mercury.artifact.MetadataTreeNode; + public class ClassicVersionComparatorTest extends AbstractSimpleTreeTest Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/DependencyTreeBuilderTest.java Thu Mar 26 18:48:51 2009 @@ -26,6 +26,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.builder.api.DependencyProcessor; import org.apache.maven.mercury.logging.IMercuryLogger; import org.apache.maven.mercury.logging.MercuryLoggerManager; Modified: maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java (original) +++ maven/mercury/trunk/mercury-md/mercury-md-sat/src/test/java/org/apache/maven/mercury/metadata/sat/DefaultSatSolverTest.java Thu Mar 26 18:48:51 2009 @@ -28,9 +28,9 @@ import junit.framework.TestCase; import org.apache.maven.mercury.artifact.ArtifactMetadata; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.metadata.ClassicDepthComparator; import org.apache.maven.mercury.metadata.ClassicVersionComparator; -import org.apache.maven.mercury.metadata.MetadataTreeNode; /** * @author <a href="o...@codehaus.org">Oleg Gusakov</a> 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=758797&r1=758796&r2=758797&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 Thu Mar 26 18:48:51 2009 @@ -35,6 +35,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactQueryList; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.builder.api.DependencyProcessor; import org.apache.maven.mercury.crypto.api.StreamObserverFactory; import org.apache.maven.mercury.crypto.api.StreamVerifierAttributes; @@ -286,6 +287,33 @@ } // --------------------------------------------------------------- + public MetadataTreeNode resolveAsTree( List<Repository> repos + , ArtifactScopeEnum scope + , ArtifactQueryList artifacts + , ArtifactInclusionList inclusions + , ArtifactExclusionList exclusions + ) + throws RepositoryException + { + if ( Util.isEmpty( artifacts ) || artifacts.isEmpty() ) + throw new IllegalArgumentException( LANG.getMessage( "no.artifacts" ) ); + + try + { + DependencyBuilder depBuilder = + DependencyBuilderFactory.create( DependencyBuilderFactory.JAVA_DEPENDENCY_MODEL, repos, null, null, null ); + + MetadataTreeNode res = depBuilder.resolveConflictsAsTree( scope, artifacts, inclusions, exclusions ); + + return res; + } + catch ( MetadataTreeException e ) + { + throw new RepositoryException( e ); + } + } + + // --------------------------------------------------------------- /** * get all available versions of for the artifact query. * Modified: maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/PlexusMercury.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/PlexusMercury.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/PlexusMercury.java (original) +++ maven/mercury/trunk/mercury-plexus/src/main/java/org/apache/maven/mercury/plexus/PlexusMercury.java Thu Mar 26 18:48:51 2009 @@ -31,6 +31,7 @@ import org.apache.maven.mercury.artifact.ArtifactMetadata; import org.apache.maven.mercury.artifact.ArtifactQueryList; import org.apache.maven.mercury.artifact.ArtifactScopeEnum; +import org.apache.maven.mercury.artifact.MetadataTreeNode; import org.apache.maven.mercury.builder.api.DependencyProcessor; import org.apache.maven.mercury.crypto.api.StreamObserverFactory; import org.apache.maven.mercury.crypto.api.StreamVerifierException; @@ -193,6 +194,11 @@ ArtifactExclusionList exclusions ) throws RepositoryException; + public MetadataTreeNode resolveAsTree( List<Repository> repos, ArtifactScopeEnum scope, + ArtifactQueryList artifacts, ArtifactInclusionList inclusions, + ArtifactExclusionList exclusions ) + throws RepositoryException; + public List<ArtifactMetadata> resolve( List<Repository> repos, ArtifactScopeEnum scope, ArtifactMetadata metadata ) throws RepositoryException; Modified: maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java?rev=758797&r1=758796&r2=758797&view=diff ============================================================================== --- maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java (original) +++ maven/mercury/trunk/mercury-repo/mercury-repo-api/src/main/java/org/apache/maven/mercury/repository/api/RepositoryUpdateIntervalPolicy.java Thu Mar 26 18:48:51 2009 @@ -41,6 +41,9 @@ public static final String UPDATE_POLICY_NAME_ALWAYS = "always"; + /** same as always - do it NOW */ + public static final String UPDATE_POLICY_NAME_NOW = "now"; + public static final String UPDATE_POLICY_NAME_DAILY = "daily"; public static final String UPDATE_POLICY_NAME_INTERVAL = "interval"; @@ -55,6 +58,10 @@ public static final RepositoryUpdateIntervalPolicy UPDATE_POLICY_ALWAYS = new RepositoryUpdateIntervalPolicy( UPDATE_POLICY_NAME_ALWAYS ); + public static final RepositoryUpdateIntervalPolicy UPDATE_POLICY_DAILY = + new RepositoryUpdateIntervalPolicy( UPDATE_POLICY_NAME_DAILY ); + + /** this is the default policy - don't update unless asked */ public static final RepositoryUpdateIntervalPolicy DEFAULT_UPDATE_POLICY = UPDATE_POLICY_NEVER; private static final long NEVER = -1L; @@ -97,6 +104,8 @@ if ( policy.startsWith( UPDATE_POLICY_NAME_ALWAYS ) ) return ALWAYS; + else if ( policy.startsWith( UPDATE_POLICY_NAME_NOW ) ) + return ALWAYS; else if ( policy.startsWith( UPDATE_POLICY_NAME_DAILY ) ) return DAYLY; else if ( policy.startsWith( UPDATE_POLICY_NAME_NEVER ) )