Class JRubyScriptFactory
- java.lang.Object
- org.springframework.scripting.jruby.JRubyScriptFactory
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,ScriptFactory
@Deprecated public class JRubyScriptFactory extends Object implements ScriptFactory, BeanClassLoaderAware
Deprecated.in favor of JRuby support via the JSR-223 abstraction (StandardScriptFactory
)ScriptFactory
implementation for a JRuby script.Typically used in combination with a
ScriptFactoryPostProcessor
; see the latter's javadoc for a configuration example.Note: Spring 4.0 supports JRuby 1.5 and higher, with 1.7.x recommended. As of Spring 4.2, JRuby 9.0.0.0 is supported as well but primarily through
StandardScriptFactory
.- Since:
- 2.0
- Author:
- Juergen Hoeller, Rob Harrop
- See Also:
JRubyScriptUtils
,ScriptFactoryPostProcessor
Constructor Summary
Constructors Constructor Description JRubyScriptFactory(String scriptSourceLocator, Class<?>... scriptInterfaces)
Deprecated.Create a new JRubyScriptFactory for the given script source.
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Object
getScriptedObject(ScriptSource scriptSource, Class<?>... actualInterfaces)
Deprecated.Load and parse the JRuby script via JRubyScriptUtils.Class<?>
getScriptedObjectType(ScriptSource scriptSource)
Deprecated.Determine the type of the scripted Java object.Class<?>[]
getScriptInterfaces()
Deprecated.Return the business interfaces that the script is supposed to implement.String
getScriptSourceLocator()
Deprecated.Return a locator that points to the source of the script.boolean
requiresConfigInterface()
Deprecated.JRuby scripts do require a config interface.boolean
requiresScriptedObjectRefresh(ScriptSource scriptSource)
Deprecated.Determine whether a refresh is required (e.g.void
setBeanClassLoader(ClassLoader classLoader)
Deprecated.Callback that supplies the beanclass loader
to a bean instance.String
toString()
Deprecated.
Constructor Detail
JRubyScriptFactory
public JRubyScriptFactory(String scriptSourceLocator, Class<?>... scriptInterfaces)
Deprecated.Create a new JRubyScriptFactory for the given script source.- Parameters:
scriptSourceLocator
- a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.scriptInterfaces
- the Java interfaces that the scripted object is supposed to implement
Method Detail
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
Deprecated.Description copied from interface:BeanClassLoaderAware
Callback that supplies the beanclass loader
to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean's
InitializingBean.afterPropertiesSet()
method or a custom init-method.- Specified by:
setBeanClassLoader
in interfaceBeanClassLoaderAware
- Parameters:
classLoader
- the owning class loader; may benull
in which case a defaultClassLoader
must be used, for example theClassLoader
obtained viaClassUtils.getDefaultClassLoader()
getScriptSourceLocator
public String getScriptSourceLocator()
Deprecated.Description copied from interface:ScriptFactory
Return a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.Typical supported locators are Spring resource locations (such as "file:C:/myScript.bsh" or "classpath:myPackage/myScript.bsh") and inline scripts ("inline:myScriptText...").
- Specified by:
getScriptSourceLocator
in interfaceScriptFactory
- Returns:
- the script source locator
- See Also:
ScriptFactoryPostProcessor.convertToScriptSource(java.lang.String, java.lang.String, org.springframework.core.io.ResourceLoader)
,ResourceLoader
getScriptInterfaces
public Class<?>[] getScriptInterfaces()
Deprecated.Description copied from interface:ScriptFactory
Return the business interfaces that the script is supposed to implement.Can return
null
if the script itself determines its Java interfaces (such as in the case of Groovy).- Specified by:
getScriptInterfaces
in interfaceScriptFactory
- Returns:
- the interfaces for the script
requiresConfigInterface
public boolean requiresConfigInterface()
Deprecated.JRuby scripts do require a config interface.- Specified by:
requiresConfigInterface
in interfaceScriptFactory
- Returns:
- whether the script requires a generated config interface
- See Also:
ScriptFactory.getScriptInterfaces()
getScriptedObject
public Object getScriptedObject(ScriptSource scriptSource, Class<?>... actualInterfaces) throws IOException, ScriptCompilationException
Deprecated.Load and parse the JRuby script via JRubyScriptUtils.- Specified by:
getScriptedObject
in interfaceScriptFactory
- Parameters:
scriptSource
- the actual ScriptSource to retrieve the script source text from (nevernull
)actualInterfaces
- the actual interfaces to expose, including script interfaces as well as a generated config interface (if applicable; may benull
)- Returns:
- the scripted Java object
- Throws:
IOException
- if script retrieval failedScriptCompilationException
- if script compilation failed- See Also:
JRubyScriptUtils.createJRubyObject(String, Class[], ClassLoader)
getScriptedObjectType
public Class<?> getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException
Deprecated.Description copied from interface:ScriptFactory
Determine the type of the scripted Java object.Implementations are encouraged to cache script metadata such as a generated script class. Note that this method may be invoked concurrently and must be implemented in a thread-safe fashion.
- Specified by:
getScriptedObjectType
in interfaceScriptFactory
- Parameters:
scriptSource
- the actual ScriptSource to retrieve the script source text from (nevernull
)- Returns:
- the type of the scripted Java object, or
null
if none could be determined - Throws:
IOException
- if script retrieval failedScriptCompilationException
- if script compilation failed
requiresScriptedObjectRefresh
public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)
Deprecated.Description copied from interface:ScriptFactory
Determine whether a refresh is required (e.g. through ScriptSource'sisModified()
method).- Specified by:
requiresScriptedObjectRefresh
in interfaceScriptFactory
- Parameters:
scriptSource
- the actual ScriptSource to retrieve the script source text from (nevernull
)- Returns:
- whether a fresh
ScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class<?>...)
call is required - See Also:
ScriptSource.isModified()