JAL-3274 import build properties and authors resources from JalviewJS site or classes...
[jalview.git] / src / jalview / bin / Cache.java
index fda04cb..362fca8 100755 (executable)
@@ -278,8 +278,7 @@ public class Cache
   /** Default file is ~/.jalview_properties */
   static String propertiesFile;
 
-  private static boolean propsAreReadOnly = Platform.isJS();/// ** @j2sNative
-                                                            /// true || */false;
+  private static boolean propsAreReadOnly = Platform.isJS();
 
   private final static String JS_PROPERTY_PREFIX = "jalview_";
 
@@ -397,10 +396,7 @@ public class Cache
     }
 
     // LOAD THE AUTHORS FROM THE authors.props file
-    String authorDetails = (Platform.isJS() ? null
-            : "jar:".concat(Cache.class.getProtectionDomain()
-                    .getCodeSource().getLocation().toString()
-                    .concat("!/authors.props")));
+    String authorDetails = resolveResourceURLFor("authors.props");
 
     try
     {
@@ -426,10 +422,8 @@ public class Cache
     // FIND THE VERSION NUMBER AND BUILD DATE FROM jalview.jar
     // MUST FOLLOW READING OF LOCAL PROPERTIES FILE AS THE
     // VERSION MAY HAVE CHANGED SINCE LAST USING JALVIEW
-    String buildDetails = (Platform.isJS() ? null
-            : "jar:".concat(Cache.class.getProtectionDomain()
-                    .getCodeSource().getLocation().toString()
-                    .concat("!/.build_properties")));
+    String buildDetails = resolveResourceURLFor("/.build_properties");
+
     if (buildDetails != null)
     {
       try
@@ -574,6 +568,34 @@ public class Cache
   }
 
 
+  /**
+   * construct a resource URL for the given absolute resource pathname
+   * 
+   * @param resourcePath
+   * @return
+   */
+  private static String resolveResourceURLFor(String resourcePath)
+  {
+    String url = null;
+    if (Platform.isJS() || !Cache.class.getProtectionDomain()
+            .getCodeSource().getLocation().toString().endsWith(".jar"))
+    {
+      try
+      {
+        url = Cache.class.getResource(resourcePath).toString();
+      } catch (Exception ex)
+      {
+
+      }
+    }
+    else
+    {
+      url = "jar:".concat(Cache.class.getProtectionDomain().getCodeSource()
+              .getLocation().toString().concat("!" + resourcePath));
+    }
+    return url;
+  }
+
   private static void deleteBuildProperties()
   {
     applicationProperties.remove("LATEST_VERSION");
@@ -1089,18 +1111,4 @@ public class Cache
     }
   }
 
-       /**
-        * Add a known domain that implements access-control-allow-origin:* bh 2018
-        * 
-        * @param defaultUniprotDomain
-        */
-       public static void addJ2SDirectDatabaseCall(String domain) 
-       {
-
-               /**
-                * @j2sNative
-                * 
-                *                      J2S.addDirectDatabaseCall(domain);
-                */
-       }
 }