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)