jdk/src/java.scripting/share/classes/javax/script/package.html
changeset 35669 9ff296647fde
parent 35668 21c2a1c93810
parent 34949 304424bbae03
child 35670 320e424b168c
equal deleted inserted replaced
35668:21c2a1c93810 35669:9ff296647fde
     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
       
     2 <html>
       
     3 <head>
       
     4 <!--
       
     5 Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
       
     6 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     7 
       
     8 This code is free software; you can redistribute it and/or modify it
       
     9 under the terms of the GNU General Public License version 2 only, as
       
    10 published by the Free Software Foundation.  Oracle designates this
       
    11 particular file as subject to the "Classpath" exception as provided
       
    12 by Oracle in the LICENSE file that accompanied this code.
       
    13 
       
    14 This code is distributed in the hope that it will be useful, but WITHOUT
       
    15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    16 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    17 version 2 for more details (a copy is included in the LICENSE file that
       
    18 accompanied this code).
       
    19 
       
    20 You should have received a copy of the GNU General Public License version
       
    21 2 along with this work; if not, write to the Free Software Foundation,
       
    22 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    23 
       
    24 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    25 or visit www.oracle.com if you need additional information or have any
       
    26 questions.
       
    27 -->
       
    28 
       
    29 </head>
       
    30 <body bgcolor="white">
       
    31 <p>The scripting API consists of interfaces and classes that define
       
    32 Java&trade; Scripting Engines and provides
       
    33 a framework for their use in Java applications. This API is intended
       
    34 for use by application programmers who wish to execute programs
       
    35 written in scripting languages in their Java applications. The
       
    36 scripting language programs are usually provided by the end-users of
       
    37 the applications. 
       
    38 </p>
       
    39 <p>The main areas of functionality of <code>javax.script</code>
       
    40 package include 
       
    41 </p>
       
    42 <ol>
       
    43 	<li><p><b>Script execution</b>: Scripts
       
    44 	are streams of characters used as sources for  programs executed by
       
    45 	script engines. Script execution uses 
       
    46         {@link javax.script.ScriptEngine#eval eval} methods of
       
    47 	{@link javax.script.ScriptEngine ScriptEngine} and methods of the 
       
    48         {@link javax.script.Invocable Invocable} interface. 
       
    49 	</p>
       
    50 	<li><p><b>Binding</b>: This facility
       
    51 	allows Java objects to be exposed to script programs as named
       
    52 	variables. {@link javax.script.Bindings Bindings} and 
       
    53         {@link javax.script.ScriptContext ScriptContext}
       
    54 	classes are used for this purpose. 
       
    55 	</p>
       
    56 	<li><p><b>Compilation</b>: This
       
    57 	functionality allows the intermediate code generated by the
       
    58 	front-end of a script engine to be stored and executed repeatedly.
       
    59 	This benefits applications that execute the same script multiple
       
    60 	times. These applications can gain efficiency since the engines'
       
    61 	front-ends only need to execute once per script rather than once per
       
    62 	script execution. Note that this functionality is optional and
       
    63 	script engines may choose not to implement it. Callers need to check
       
    64 	for availability of the {@link javax.script.Compilable Compilable}
       
    65         interface using an <I>instanceof</I> check. 
       
    66 	</p>
       
    67 	<li><p><b>Invocation</b>: This
       
    68 	functionality allows the reuse of intermediate code generated by a
       
    69 	script engine's front-end. Whereas Compilation allows entire scripts
       
    70 	represented by intermediate code to be re-executed, Invocation
       
    71 	functionality allows individual procedures/methods in the scripts to
       
    72 	be re-executed. As in the case with compilation, not all script
       
    73 	engines are required to provide this facility. Caller has to check
       
    74 	for {@link javax.script.Invocable Invocable} availability. 
       
    75 	</p>
       
    76 	<li><p><b>Script engine discovery and Metadata</b>: Applications
       
    77 	written to the Scripting API might have specific requirements on
       
    78 	script engines. Some may require a specific scripting language
       
    79 	and/or version while others may require a specific implementation
       
    80 	engine and/or version. Script engines are packaged in a specified
       
    81 	way so that engines can be discovered at runtime and queried for
       
    82 	attributes. The Engine discovery mechanism is based on the Service
       
    83 	discovery mechanism described in the <b>Jar File Specification</b>.
       
    84 	Script engine implementing classes are packaged in jar files that
       
    85 	include a  text resource named
       
    86 	<b>META-INF/services/javax.script.ScriptEngineFactory</b>. This
       
    87 	resource must include a line for each 
       
    88         {@link javax.script.ScriptEngineFactory ScriptEngineFactory}
       
    89 	that is packaged in the jar file. 
       
    90         {@link javax.script.ScriptEngineManager ScriptEngineManager}
       
    91 	includes 
       
    92         {@link javax.script.ScriptEngineManager#getEngineFactories getEngineFactories} method to get all
       
    93 	{@link javax.script.ScriptEngineFactory ScriptEngineFactory} instances 
       
    94         discovered using this mechanism. <code>ScriptEngineFactory</code> has 
       
    95         methods to query attributes about script engine.
       
    96 	</p>
       
    97 </ol>
       
    98 
       
    99 @since 1.6
       
   100 
       
   101 </body>
       
   102 </html>