Skip to content

Commit

Permalink
Changed GradlePomModuleDescriptorParser to treat a timestamp version …
Browse files Browse the repository at this point in the history
…in the pom as a -SNAPSHOT version in the meta-data.

- Removed DescriptorParseContext.getCurrentRevisionId() as it is no longer required.
  • Loading branch information
adammurdoch committed Mar 21, 2014
1 parent eab783d commit 9c7ca9b
Show file tree
Hide file tree
Showing 10 changed files with 39 additions and 83 deletions.
Expand Up @@ -15,15 +15,12 @@
*/
package org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser;

import org.apache.ivy.core.module.id.ModuleRevisionId;
import org.gradle.api.artifacts.ModuleVersionIdentifier;
import org.gradle.api.internal.artifacts.metadata.ModuleVersionArtifactMetaData;
import org.gradle.api.internal.externalresource.LocallyAvailableExternalResource;

public interface DescriptorParseContext {
boolean artifactExists(ModuleVersionArtifactMetaData artifact);

ModuleRevisionId getCurrentRevisionId();

LocallyAvailableExternalResource getMetaDataArtifact(ModuleVersionIdentifier moduleVersionIdentifier);
}
Expand Up @@ -16,7 +16,6 @@

package org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser;

import org.apache.ivy.core.module.id.ModuleRevisionId;
import org.gradle.api.artifacts.ModuleVersionIdentifier;
import org.gradle.api.internal.artifacts.metadata.ModuleVersionArtifactMetaData;
import org.gradle.api.internal.externalresource.LocallyAvailableExternalResource;
Expand All @@ -30,10 +29,6 @@ public boolean artifactExists(ModuleVersionArtifactMetaData artifact) {
return false;
}

public ModuleRevisionId getCurrentRevisionId() {
throw new UnsupportedOperationException();
}

public LocallyAvailableExternalResource getMetaDataArtifact(ModuleVersionIdentifier moduleVersionIdentifier) {
throw new UnsupportedOperationException();
}
Expand Down
Expand Up @@ -38,6 +38,8 @@
import org.gradle.util.DeprecationLogger;

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
Expand Down Expand Up @@ -90,6 +92,7 @@ public class GradlePomModuleDescriptorBuilder {
static final Map<String, ConfMapper> MAVEN2_CONF_MAPPING = new HashMap<String, ConfMapper>();

private static final Collection<String> JAR_PACKAGINGS = Arrays.asList("ejb", "bundle", "maven-plugin", "eclipse-plugin");
private static final Pattern TIMESTAMP_PATTERN = Pattern.compile("(.+)-\\d{8}\\.\\d{6}-\\d+");

static interface ConfMapper {
public void addMappingConfs(DefaultDependencyDescriptor dd, boolean isOptional);
Expand Down Expand Up @@ -179,11 +182,19 @@ public DefaultModuleDescriptor getModuleDescriptor() {
return ivyModuleDescriptor;
}

public void setModuleRevId(ModuleRevisionId mrid, String group, String module, String version) {
this.mrid = mrid;
ivyModuleDescriptor.setModuleRevisionId(IvyUtil.createModuleRevisionId(group, module, version));
public void setModuleRevId(String group, String module, String version) {
String effectiveVersion = version;
if (version != null) {
Matcher matcher = TIMESTAMP_PATTERN.matcher(version);
if (matcher.matches()) {
effectiveVersion = matcher.group(1) + "-SNAPSHOT";
}
}

this.mrid = ModuleRevisionId.newInstance(group, module, effectiveVersion);
ivyModuleDescriptor.setModuleRevisionId(mrid);

if ((version == null) || version.endsWith("SNAPSHOT")) {
if (effectiveVersion != null && effectiveVersion.endsWith("SNAPSHOT")) {
ivyModuleDescriptor.setStatus("integration");
} else {
ivyModuleDescriptor.setStatus("release");
Expand Down
Expand Up @@ -90,7 +90,7 @@ private void doParsePom(DescriptorParseContext parserSettings, GradlePomModuleDe
String groupId = pomReader.getGroupId();
String artifactId = pomReader.getArtifactId();
String version = pomReader.getVersion();
mdBuilder.setModuleRevId(parserSettings.getCurrentRevisionId(), groupId, artifactId, version);
mdBuilder.setModuleRevId(groupId, artifactId, version);

mdBuilder.setHomePage(pomReader.getHomePage());
mdBuilder.setDescription(pomReader.getDescription());
Expand Down
Expand Up @@ -16,7 +16,6 @@

package org.gradle.api.internal.artifacts.ivyservice.modulecache;

import org.apache.ivy.core.module.id.ModuleRevisionId;
import org.gradle.api.artifacts.ModuleVersionIdentifier;
import org.gradle.api.internal.artifacts.ivyservice.ivyresolve.parser.DescriptorParseContext;
import org.gradle.api.internal.artifacts.metadata.ModuleVersionArtifactMetaData;
Expand All @@ -27,9 +26,6 @@
* Will only be used for parsing ivy.xml files, as pom files are converted before caching.
*/
class CachedModuleDescriptorParseContext implements DescriptorParseContext {
public ModuleRevisionId getCurrentRevisionId() {
throw new UnsupportedOperationException();
}

public boolean artifactExists(ModuleVersionArtifactMetaData artifact) {
throw new UnsupportedOperationException();
Expand Down
Expand Up @@ -32,6 +32,9 @@ public interface ModuleVersionMetaData {

ModuleSource getSource();

/**
* Makes a copy of this meta-data with the given source.
*/
ModuleVersionMetaData withSource(ModuleSource source);

/**
Expand Down
Expand Up @@ -200,7 +200,7 @@ protected MutableModuleVersionMetaData findMetaDataArtifact(DependencyMetaData d
}

protected MutableModuleVersionMetaData getArtifactMetadata(ArtifactIdentifier artifactId, ExternalResource resource) {
ExternalResourceResolverDescriptorParseContext context = new ExternalResourceResolverDescriptorParseContext(repositoryChain, this, artifactId.getModuleVersionIdentifier());
ExternalResourceResolverDescriptorParseContext context = new ExternalResourceResolverDescriptorParseContext(repositoryChain, this);
LocallyAvailableExternalResource cachedResource;
try {
cachedResource = downloadAndCacheResource(artifactId, resource);
Expand Down
Expand Up @@ -16,7 +16,6 @@
package org.gradle.api.internal.artifacts.repositories.resolver;

import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
import org.apache.ivy.core.module.id.ModuleRevisionId;
import org.gradle.api.artifacts.ModuleVersionIdentifier;
import org.gradle.api.internal.artifacts.ivyservice.*;
import org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChain;
Expand All @@ -39,16 +38,10 @@
public class ExternalResourceResolverDescriptorParseContext implements DescriptorParseContext {
private final RepositoryChain mainResolvers;
private final ExternalResourceResolver moduleResolver;
private final ModuleRevisionId moduleRevisionId;

public ExternalResourceResolverDescriptorParseContext(RepositoryChain mainResolvers, ExternalResourceResolver moduleResolver, ModuleVersionIdentifier moduleVersionIdentifier) {
public ExternalResourceResolverDescriptorParseContext(RepositoryChain mainResolvers, ExternalResourceResolver moduleResolver) {
this.mainResolvers = mainResolvers;
this.moduleResolver = moduleResolver;
this.moduleRevisionId = IvyUtil.createModuleRevisionId(moduleVersionIdentifier);
}

public ModuleRevisionId getCurrentRevisionId() {
return moduleRevisionId;
}

public boolean artifactExists(ModuleVersionArtifactMetaData artifact) {
Expand Down
Expand Up @@ -46,8 +46,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</profiles>
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')

when:
def descriptor = parsePom()
Expand Down Expand Up @@ -90,8 +88,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</profiles>
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')

when:
def descriptor = parsePom()
Expand Down Expand Up @@ -152,7 +148,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')
parseContext.getMetaDataArtifact(_) >> { new DefaultLocallyAvailableExternalResource(parent.toURI().toURL().toString(), new DefaultLocallyAvailableResource(parent)) }

when:
Expand Down Expand Up @@ -228,7 +223,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')
parseContext.getMetaDataArtifact({ it.name == 'parent' }) >> { new DefaultLocallyAvailableExternalResource(parent.toURI().toURL().toString(), new DefaultLocallyAvailableResource(parent)) }
parseContext.getMetaDataArtifact({ it.name == 'grandparent' }) >> { new DefaultLocallyAvailableExternalResource(grandParent.toURI().toURL().toString(), new DefaultLocallyAvailableResource(grandParent)) }

Expand Down Expand Up @@ -285,8 +279,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</profiles>
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')

when:
def descriptor = parsePom()
Expand Down Expand Up @@ -352,7 +344,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')
parseContext.getMetaDataArtifact(_) >> { new DefaultLocallyAvailableExternalResource(parent.toURI().toURL().toString(), new DefaultLocallyAvailableResource(parent)) }

when:
Expand Down Expand Up @@ -431,7 +422,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')
parseContext.getMetaDataArtifact({ it.name == 'parent' }) >> { new DefaultLocallyAvailableExternalResource(parent.toURI().toURL().toString(), new DefaultLocallyAvailableResource(parent)) }
parseContext.getMetaDataArtifact({ it.name == 'grandparent' }) >> { new DefaultLocallyAvailableExternalResource(grandParent.toURI().toURL().toString(), new DefaultLocallyAvailableResource(grandParent)) }

Expand Down Expand Up @@ -503,7 +493,6 @@ class GradlePomModuleDescriptorParserProfileTest extends AbstractGradlePomModule
</project>
"""
and:
parseContext.currentRevisionId >> moduleId('group-one', 'artifact-one', 'version-one')
parseContext.getMetaDataArtifact({ it.name == 'imported' }) >> { new DefaultLocallyAvailableExternalResource(imported.toURI().toURL().toString(), new DefaultLocallyAvailableResource(imported)) }

when:
Expand Down

0 comments on commit 9c7ca9b

Please sign in to comment.