Mercurial > hg > graal-jvmci-8
comparison mx/mx_graal.py @ 21142:0b221b4ad707
Merge
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Tue, 28 Apr 2015 12:58:40 -0700 |
parents | 7f78f999512a |
children | bdeaa5a7b83c |
comparison
equal
deleted
inserted
replaced
21141:2b1228d97525 | 21142:0b221b4ad707 |
---|---|
599 return className[:className.index('<')] | 599 return className[:className.index('<')] |
600 return className | 600 return className |
601 | 601 |
602 def _classifyGraalServices(classNames, graalJars): | 602 def _classifyGraalServices(classNames, graalJars): |
603 classification = {} | 603 classification = {} |
604 if not classNames: | |
605 return classification | |
604 for className in classNames: | 606 for className in classNames: |
605 classification[className] = None | 607 classification[className] = None |
606 javap = mx.java().javap | 608 javap = mx.java().javap |
607 output = subprocess.check_output([javap, '-cp', os.pathsep.join(graalJars)] + classNames, stderr=subprocess.STDOUT) | 609 output = subprocess.check_output([javap, '-cp', os.pathsep.join(graalJars)] + classNames, stderr=subprocess.STDOUT) |
608 lines = output.split(os.linesep) | 610 lines = output.split(os.linesep) |
678 serviceName = basename(member) | 680 serviceName = basename(member) |
679 # we don't handle directories | 681 # we don't handle directories |
680 assert serviceName and member == 'META-INF/services/' + serviceName | 682 assert serviceName and member == 'META-INF/services/' + serviceName |
681 with zf.open(member) as serviceFile: | 683 with zf.open(member) as serviceFile: |
682 serviceImpls = servicesMap.setdefault(serviceName, []) | 684 serviceImpls = servicesMap.setdefault(serviceName, []) |
683 serviceImpls.extend(serviceFile.readlines()) | 685 for line in serviceFile.readlines(): |
686 line = line.strip() | |
687 if line: | |
688 serviceImpls.append(line) | |
684 graalServices = _filterGraalService(servicesMap.keys(), graalJars) | 689 graalServices = _filterGraalService(servicesMap.keys(), graalJars) |
685 for serviceName in graalServices: | 690 for serviceName in graalServices: |
686 serviceImpls = servicesMap[serviceName] | 691 serviceImpls = servicesMap[serviceName] |
687 fd, tmp = tempfile.mkstemp(prefix=serviceName) | 692 fd, tmp = tempfile.mkstemp(prefix=serviceName) |
688 f = os.fdopen(fd, 'w+') | 693 f = os.fdopen(fd, 'w+') |
689 for serviceImpl in serviceImpls: | 694 for serviceImpl in serviceImpls: |
690 f.write(serviceImpl.rstrip() + os.linesep) | 695 f.write(serviceImpl + os.linesep) |
691 target = join(destination, serviceName) | 696 target = join(destination, serviceName) |
692 f.close() | 697 f.close() |
693 shutil.move(tmp, target) | 698 shutil.move(tmp, target) |
694 if mx.get_os() != 'windows': | 699 if mx.get_os() != 'windows': |
695 os.chmod(target, JDK_UNIX_PERMISSIONS_FILE) | 700 os.chmod(target, JDK_UNIX_PERMISSIONS_FILE) |