package com.atlassian.labs.speakeasy.ui; import com.atlassian.plugin.webresource.UrlMode; import com.atlassian.plugin.webresource.WebResourceManager; import org.apache.commons.io.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; import java.io.InputStream; /** * */ @Component public class FirefoxXpi { private final String hash; private String xpiUrl; private String iconUrl; private final WebResourceManager webResourceManager; @Autowired public FirefoxXpi(WebResourceManager webResourceManager) { this.webResourceManager = webResourceManager; InputStream in = null; try { in = getClass().getClassLoader().getResourceAsStream("speakeasy.xpi.sha1"); String sha = IOUtils.toString(in); if (sha.endsWith("\n")) { sha = sha.substring(0, sha.length() - 1); } this.hash = sha; } catch (IOException e) { throw new RuntimeException("Cannot load firefox xpi sha1", e); } finally { IOUtils.closeQuietly(in); } } public String getHash() { return hash; } public String getXpiUrl() { init(); return xpiUrl; } public String getIconUrl() { init(); return iconUrl; } private void init() { // ok if this gets ran twice if (xpiUrl == null) { this.xpiUrl = webResourceManager.getStaticPluginResource("com.atlassian.labs.speakeasy-plugin:firefox-extension", "speakeasy.xpi", UrlMode.AUTO); this.iconUrl = webResourceManager.getStaticPluginResource("com.atlassian.labs.speakeasy-plugin:firefox-extension", "icon.png", UrlMode.AUTO); } } }