JS backend: add Specification-Title to manifest and LibraryUtils.isKotlinJavascriptLibrary

This commit is contained in:
Michael Nedzelsky
2014-10-24 12:25:38 +04:00
parent 68113ff33d
commit 34411dcf01
@@ -33,9 +33,11 @@ public class LibraryUtils {
public static final String TITLE_KOTLIN_JVM_RUNTIME_AND_STDLIB;
public static final String TITLE_KOTLIN_JAVASCRIPT_STDLIB;
public static final String TITLE_KOTLIN_JAVASCRIPT_LIB;
static {
String jsStdLib = "";
String jsLib = "";
String jvmStdLib = "";
InputStream manifestProperties = LibraryUtils.class.getResourceAsStream("/manifest.properties");
@@ -45,6 +47,7 @@ public class LibraryUtils {
properties.load(manifestProperties);
jvmStdLib = properties.getProperty("manifest.impl.title.kotlin.jvm.runtime");
jsStdLib = properties.getProperty("manifest.impl.title.kotlin.javascript.stdlib");
jsLib = properties.getProperty("manifest.spec.title.kotlin.javascript.lib");
}
catch (IOException e) {
LOG.error(e);
@@ -56,6 +59,7 @@ public class LibraryUtils {
TITLE_KOTLIN_JVM_RUNTIME_AND_STDLIB = jvmStdLib;
TITLE_KOTLIN_JAVASCRIPT_STDLIB = jsStdLib;
TITLE_KOTLIN_JAVASCRIPT_LIB = jsLib;
}
private LibraryUtils() {}
@@ -92,6 +96,18 @@ public class LibraryUtils {
return title != null && title.equals(expected);
}
private static boolean checkSpecTitle(@NotNull File library, String expected) {
Attributes attributes = getManifestMainAttributesFromJar(library);
if (attributes == null) return false;
String title = attributes.getValue(Attributes.Name.SPECIFICATION_TITLE);
return title != null && title.equals(expected);
}
public static boolean isKotlinJavascriptLibrary(@NotNull File library) {
return checkSpecTitle(library, TITLE_KOTLIN_JAVASCRIPT_LIB);
}
public static boolean isJsRuntimeLibrary(@NotNull File library) {
return checkImplTitle(library, TITLE_KOTLIN_JAVASCRIPT_STDLIB);
}