Skip to content

Commit

Permalink
handle maven meta missing latest, fall back to versions
Browse files Browse the repository at this point in the history
  • Loading branch information
zspitzer committed Jun 19, 2024
1 parent 8461743 commit 0537bdb
Showing 1 changed file with 65 additions and 3 deletions.
68 changes: 65 additions & 3 deletions update/MavenMatcher.cfc
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,19 @@
}

public function getMatch(required string bundleName, string bundleVersion, boolean retry=true) {

systemOutput("", true);
systemOutput("--- #bundleName# ---", true);
if ( !structKeyExists( variables.mavenMappings, arguments.bundleName ) ) {
/*
var fallback = findLuceeBundles( bundleName );
if ( fallback.success ){
systemOutput( " findLuceeBundles( #bundleName# ) worked!", true );
variables.mavenMappings[arguments.bundleName] = fallback.mappings;
} else {
systemOutput( fallback, true );
throw "no maven information for OSGi id [#arguments.bundleName#] found";
};
*/
throw "no maven information for OSGi id [#arguments.bundleName#] found";
}
var mvnId=variables.mavenMappings[arguments.bundleName];
Expand Down Expand Up @@ -78,11 +89,62 @@
var meta['versions'] = [];
meta['groupId'] = xml.XmlRoot.groupId.XmlText;
meta['artifactId'] = xml.XmlRoot.artifactId.XmlText;
meta['latest'] = xml.XmlRoot.versioning.latest.XmlText;
loop array=xml.XmlRoot.versioning.versions.XmlChildren item="local.node" {
arrayAppend( meta.versions,node.XmlText );
arrayAppend( meta.versions, node.XmlText );
}

try {
meta['latest'] = xml.XmlRoot.versioning.latest.XmlText;
} catch ( e ){ // some like apache oro don't have latest?
meta['latest'] = meta.versions[ len( meta.versions) ];
}

fileWrite( arguments.metaFile, serializeJson(meta) );
return meta;
}

public struct function findLuceeBundles( string artifact ) cachedWithin="request" {

systemOutput("searching for lucee bundles [#artifact#]", true);

http url="https://search.maven.org/solrsearch/select" result="local.res" {
httpparam type="url" name="q" value="q=a:#arguments.artifact#+AND+g:org.lucee";
httpparam type="url" name="rows" value="20";
httpparam type="url" name="wt" value="json";
};

var result = {
success: false,
statusCode = ( res.status_code ?: 0 ),
error: "",
mapping: {}
}

if ( res.status_code neq 200 || !isJson( res.filecontent )){
result.error = res.filecontent;
return result;
}

var json = deserializeJSON ( res.filecontent );

if ( isNull( json.response.numFound ) || json.response.numFound < 1 ){
result.error= "no candidate matches returned" ;
return result;
}

for ( var b in json.response.docs ){
if (b.artifact == arguments.artifact ){
result.success = true;
result.mapping = {
"group": b.g,
"artifact": b.a,
"latest": b.latestVersion
}
return result;
}
}

result.error= "no matches found within returned results" ;
return result;
}
}

0 comments on commit 0537bdb

Please sign in to comment.