def _filterMultipleVersions(self, artifactList): logging.debug("Filtering multi-version artifacts to have just a single version.") regExps = maven_repo_util.getRegExpsFromStrings(self.config.multiVersionGAs, False) for ga in sorted(artifactList.keys()): if maven_repo_util.somethingMatch(regExps, ga): continue # Gather all priorities priorities = sorted(artifactList[ga].keys()) priority = priorities[0] # Gather all versions versions = list(artifactList[ga][priority].keys()) if len(versions) > 1: # list of 1 is sorted by definition versions = maven_repo_util._sortVersionsWithAtlas(versions) # Remove version, priorities and gats from artifactList as necessary for version in versions[1:]: logging.debug("Dropping GAV %s:%s from priority %i because only single version is allowed.", ga, version, priority) del artifactList[ga][priority][version] for p in priorities[1:]: logging.debug("Dropping GA %s from priority %i because of no version left.", ga, p) del artifactList[ga][p] if not artifactList[ga]: logging.debug("Dropping GA %s because of no priority left.", ga) del artifactList[ga] return artifactList
def _filterMultipleVersions(self, artifactList): logging.debug("Filtering multi-version artifacts to have just a single version.") regExps = maven_repo_util.getRegExpsFromStrings(self.config.multiVersionGAs, False) removeT = lambda gat: re.sub('\:[^:]+$', '', gat) for ga, gats in groupby(sorted(artifactList.keys()), removeT): gats = list(gats) if maven_repo_util.somethingMatch(regExps, ga): continue # Gather all priorities from all types priorities = set() for gat in gats: priorities.update(artifactList[gat].keys()) priorities = sorted(priorities) priority = priorities[0] # Gather all versions from all types versions = set() for gat in gats: # update versions only if this gat contains highest priority versions.update(artifactList[gat].get(priority, {}).keys()) versions = list(versions) if len(versions) > 1: # list of 1 is sorted by definition versions = maven_repo_util._sortVersionsWithAtlas(versions) # Remove version, priorities and gats from artifactList as necessary for gat in gats: for version in versions[1:]: artifactList[gat].get(priority, {}).pop(version, None) for p in priorities[1:]: artifactList[gat].pop(p, None) if not artifactList[gat] or not artifactList[gat][priority]: del artifactList[gat] # all versions or priorities were removed return artifactList
def _filterMultipleVersions(self, artifactList): logging.debug( "Filtering multi-version artifacts to have just a single version.") regExps = maven_repo_util.getRegExpsFromStrings( self.config.multiVersionGAs, False) for ga in sorted(artifactList.keys()): if maven_repo_util.somethingMatch(regExps, ga): continue # Gather all priorities priorities = sorted(artifactList[ga].keys()) priority = priorities[0] # Gather all versions versions = list(artifactList[ga][priority].keys()) if len(versions) > 1: # list of 1 is sorted by definition versions = maven_repo_util._sortVersionsWithAtlas(versions) # Remove version, priorities and gats from artifactList as necessary for version in versions[1:]: logging.debug( "Dropping GAV %s:%s from priority %i because only single version is allowed.", ga, version, priority) del artifactList[ga][priority][version] for p in priorities[1:]: logging.debug( "Dropping GA %s from priority %i because of no version left.", ga, p) del artifactList[ga][p] if not artifactList[ga]: logging.debug("Dropping GA %s because of no priority left.", ga) del artifactList[ga] return artifactList
parser = OptionParser(usage='%prog [directories]') (opts, directories) = parser.parse_args() sorterdir = os.path.dirname(os.path.realpath(__file__)) + '/versionSorter/' for directory in directories: n_dir = os.path.normpath(directory) if not os.path.isdir(directory): raise Exception("%s is not a directory" % directory) group_id = '.'.join(os.path.dirname(n_dir).split('/')) art_id = os.path.basename(n_dir) versions = [d for d in os.listdir(n_dir) if ffilter(n_dir, d, art_id)] versionsReversed = maven_repo_util._sortVersionsWithAtlas(versions, sorterdir) versions = copy.deepcopy(versionsReversed) versions.reverse() latest = versions[-1] releaseVersion = None for version in versionsReversed: if not _isSnapshot(version): releaseVersion = version break last_updated = datetime.datetime.now().strftime('%Y%m%d%H%M%S') content = "<metadata>" content += "<groupId>%s</groupId>" % group_id content += "<artifactId>%s</artifactId>" % art_id content += "<versioning>"