Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Rhino JavaScript Java Library Source Code
Rhino JavaScript Java Library is an open-source implementation of JavaScript written entirely in Java.
Rhino JavaScript Java Library Source Code files are provided in binary package (rhino-1.7.14.zip).
You can also browse the source code below:
✍: FYIcenter.com
⏎ org/mozilla/javascript/commonjs/module/provider/SoftCachingModuleScriptProvider.java
/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.javascript.commonjs.module.provider; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.lang.ref.ReferenceQueue; import java.lang.ref.SoftReference; import java.net.URI; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import org.mozilla.javascript.Context; import org.mozilla.javascript.Script; import org.mozilla.javascript.Scriptable; import org.mozilla.javascript.commonjs.module.ModuleScript; /** * A module script provider that uses a module source provider to load modules * and caches the loaded modules. It softly references the loaded modules' * Rhino {@link Script} objects, thus a module once loaded can become eligible * for garbage collection if it is otherwise unused under memory pressure. * Instances of this class are thread safe. * @author Attila Szegedi * @version $Id: SoftCachingModuleScriptProvider.java,v 1.3 2011/04/07 20:26:12 hannes%helma.at Exp $ */ public class SoftCachingModuleScriptProvider extends CachingModuleScriptProviderBase { private static final long serialVersionUID = 1L; private transient ReferenceQueue<Script> scriptRefQueue = new ReferenceQueue<Script>(); private transient ConcurrentMap<String, ScriptReference> scripts = new ConcurrentHashMap<String, ScriptReference>(16, .75f, getConcurrencyLevel()); /** * Creates a new module provider with the specified module source provider. * @param moduleSourceProvider provider for modules' source code */ public SoftCachingModuleScriptProvider( ModuleSourceProvider moduleSourceProvider) { super(moduleSourceProvider); } @Override public ModuleScript getModuleScript(Context cx, String moduleId, URI uri, URI base, Scriptable paths) throws Exception { // Overridden to clear the reference queue before retrieving the // script. for(;;) { ScriptReference ref = (ScriptReference)scriptRefQueue.poll(); if(ref == null) { break; } scripts.remove(ref.getModuleId(), ref); } return super.getModuleScript(cx, moduleId, uri, base, paths); } @Override protected CachedModuleScript getLoadedModule(String moduleId) { final ScriptReference scriptRef = scripts.get(moduleId); return scriptRef != null ? scriptRef.getCachedModuleScript() : null; } @Override protected void putLoadedModule(String moduleId, ModuleScript moduleScript, Object validator) { scripts.put(moduleId, new ScriptReference(moduleScript.getScript(), moduleId, moduleScript.getUri(), moduleScript.getBase(), validator, scriptRefQueue)); } private static class ScriptReference extends SoftReference<Script> { private final String moduleId; private final URI uri; private final URI base; private final Object validator; ScriptReference(Script script, String moduleId, URI uri, URI base, Object validator, ReferenceQueue<Script> refQueue) { super(script, refQueue); this.moduleId = moduleId; this.uri = uri; this.base = base; this.validator = validator; } CachedModuleScript getCachedModuleScript() { final Script script = get(); if(script == null) { return null; } return new CachedModuleScript(new ModuleScript(script, uri, base), validator); } String getModuleId() { return moduleId; } } @SuppressWarnings("unchecked") private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { scriptRefQueue = new ReferenceQueue<Script>(); scripts = new ConcurrentHashMap<String, ScriptReference>(); final Map<String, CachedModuleScript> serScripts = (Map)in.readObject(); for(Map.Entry<String, CachedModuleScript> entry: serScripts.entrySet()) { final CachedModuleScript cachedModuleScript = entry.getValue(); putLoadedModule(entry.getKey(), cachedModuleScript.getModule(), cachedModuleScript.getValidator()); } } private void writeObject(ObjectOutputStream out) throws IOException { final Map<String, CachedModuleScript> serScripts = new HashMap<String, CachedModuleScript>(); for(Map.Entry<String, ScriptReference> entry: scripts.entrySet()) { final CachedModuleScript cachedModuleScript = entry.getValue().getCachedModuleScript(); if(cachedModuleScript != null) { serScripts.put(entry.getKey(), cachedModuleScript); } } out.writeObject(serScripts); } }
⏎ org/mozilla/javascript/commonjs/module/provider/SoftCachingModuleScriptProvider.java
Or download all of them as a single archive file:
File name: rhino-1.7.14-sources.jar File size: 1029165 bytes Release date: 2022-01-06 Download
⇒ Example code to Test rhino-runtime-1.7.14.jar
⇐ Download Rhino JavaScript Binary Package
2022-05-03, 34554👍, 1💬
Popular Posts:
JDK 7 tools.jar is the JAR file for JDK 7 tools. It contains Java classes to support different JDK t...
JRE 8 deploy.jar is the JAR file for JRE 8 Java Control Panel and other deploy tools. JRE (Java Runt...
JDK 11 jdk.crypto.cryptoki.jmod is the JMOD file for JDK 11 Crypto Cryptoki module. JDK 11 Crypto KI...
JDK 11 java.management.jmod is the JMOD file for JDK 11 Management module. JDK 11 Management module ...
JDK 11 jdk.xml.dom.jmod is the JMOD file for JDK 11 XML DOM module. JDK 11 XML DOM module compiled c...