|
5 | 5 | import copy
|
6 | 6 | import javaos as os
|
7 | 7 | from sets import Set
|
8 |
| -import zipfile |
9 | 8 |
|
10 | 9 | from java.io import File
|
11 | 10 | from java.io import IOException
|
| 11 | +from java.io import FileNotFoundException |
| 12 | +from java.util.zip import ZipException |
12 | 13 | from java.security import NoSuchAlgorithmException
|
| 14 | +from java.util.jar import JarFile |
| 15 | +from java.util.jar import Manifest |
| 16 | +from java.lang import IllegalStateException |
| 17 | +from java.io import ByteArrayOutputStream |
13 | 18 |
|
14 | 19 | import oracle.weblogic.deploy.util.FileUtils as FileUtils
|
15 | 20 | import oracle.weblogic.deploy.util.PyOrderedDict as OrderedDict
|
@@ -776,9 +781,14 @@ def __get_deployable_library_versioned_name(self, source_path, model_name):
|
776 | 781 | old_name_tuple = deployer_utils.get_library_name_components(model_name, self.wlst_mode)
|
777 | 782 | try:
|
778 | 783 | source_path = self.model_context.replace_token_string(source_path)
|
779 |
| - archive = zipfile.ZipFile(source_path) |
780 |
| - manifest = archive.read('META-INF/MANIFEST.MF') |
781 |
| - tokens = manifest.split() |
| 784 | + archive = JarFile(source_path) |
| 785 | + manifest_object = archive.getManifest() |
| 786 | + tokens = [] |
| 787 | + if manifest_object is not None: |
| 788 | + bao = ByteArrayOutputStream() |
| 789 | + manifest_object.write(bao) |
| 790 | + manifest = bao.toString('UTF-8') |
| 791 | + tokens = manifest.split() |
782 | 792 |
|
783 | 793 | if 'Extension-Name:' in tokens:
|
784 | 794 | extension_index = tokens.index('Extension-Name:')
|
@@ -812,7 +822,7 @@ def __get_deployable_library_versioned_name(self, source_path, model_name):
|
812 | 822 | raise ex
|
813 | 823 | self.logger.info('WLSDPLY-09324', model_name, versioned_name,
|
814 | 824 | class_name=self._class_name, method_name=_method_name)
|
815 |
| - except (zipfile.BadZipfile, IOError), e: |
| 825 | + except (IOException, FileNotFoundException, ZipException, IllegalStateException), e: |
816 | 826 | ex = exception_helper.create_deploy_exception('WLSDPLY-09325', model_name, source_path, str(e), error=e)
|
817 | 827 | self.logger.throwing(ex, class_name=self._class_name, method_name=_method_name)
|
818 | 828 | raise ex
|
|
0 commit comments