489 * @return the function initializer |
489 * @return the function initializer |
490 */ |
490 */ |
491 private FunctionInitializer install(final StoredScript script) { |
491 private FunctionInitializer install(final StoredScript script) { |
492 |
492 |
493 final Map<String, Class<?>> installedClasses = new HashMap<>(); |
493 final Map<String, Class<?>> installedClasses = new HashMap<>(); |
|
494 final Map<String, byte[]> classBytes = script.getClassBytes(); |
494 final String mainClassName = script.getMainClassName(); |
495 final String mainClassName = script.getMainClassName(); |
495 final byte[] mainClassBytes = script.getClassBytes().get(mainClassName); |
496 final byte[] mainClassBytes = classBytes.get(mainClassName); |
496 |
497 |
497 final Class<?> mainClass = installer.install(mainClassName, mainClassBytes); |
498 final Class<?> mainClass = installer.install(mainClassName, mainClassBytes); |
498 |
499 |
499 installedClasses.put(mainClassName, mainClass); |
500 installedClasses.put(mainClassName, mainClass); |
500 |
501 |
501 for (final Map.Entry<String, byte[]> entry : script.getClassBytes().entrySet()) { |
502 for (final Map.Entry<String, byte[]> entry : classBytes.entrySet()) { |
502 final String className = entry.getKey(); |
503 final String className = entry.getKey(); |
503 final byte[] code = entry.getValue(); |
504 final byte[] code = entry.getValue(); |
504 |
505 |
505 if (className.equals(mainClassName)) { |
506 if (className.equals(mainClassName)) { |
506 continue; |
507 continue; |