Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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>"