JSR-223 based StandardScriptFactory (including <lang:std> support)
This commit also completes 4.2 schema variants in spring-context. Issue: SPR-5215
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:lang="http://www.springframework.org/schema/lang"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.2.xsd">
|
||||
|
||||
<lang:std id="messenger" script-source="classpath:org/springframework/scripting/groovy/Messenger.groovy">
|
||||
<lang:property name="message" value="Hello World!"/>
|
||||
</lang:std>
|
||||
|
||||
<lang:std id="messengerWithInterface" script-source="classpath:org/springframework/scripting/groovy/Messenger.groovy"
|
||||
script-interfaces="org.springframework.scripting.Messenger"/>
|
||||
|
||||
<lang:std id="refreshableMessenger" refresh-check-delay="5000"
|
||||
script-source="classpath:org/springframework/scripting/groovy/Messenger.groovy">
|
||||
<lang:property name="message" value="Hello World!"/>
|
||||
</lang:std>
|
||||
|
||||
<lang:std id="inlineMessenger" engine="Groovy">
|
||||
<lang:inline-script>
|
||||
package org.springframework.scripting.groovy;
|
||||
import org.springframework.scripting.Messenger
|
||||
class GroovyMessenger implements Messenger {
|
||||
def String message;
|
||||
}
|
||||
return new GroovyMessenger();
|
||||
</lang:inline-script>
|
||||
</lang:std>
|
||||
|
||||
<lang:std id="inlineMessengerWithInterface" engine="Groovy" script-interfaces="org.springframework.scripting.Messenger">
|
||||
<lang:inline-script>
|
||||
package org.springframework.scripting.groovy;
|
||||
import org.springframework.scripting.Messenger
|
||||
class GroovyMessenger implements Messenger {
|
||||
def String message;
|
||||
}
|
||||
return new GroovyMessenger();
|
||||
</lang:inline-script>
|
||||
</lang:std>
|
||||
|
||||
</beans>
|
||||
@@ -3,12 +3,11 @@
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:lang="http://www.springframework.org/schema/lang"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
|
||||
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.1.xsd">
|
||||
|
||||
<lang:groovy id="refreshableMessenger" refresh-check-delay="5000" proxy-target-class="true"
|
||||
script-source="classpath:org/springframework/scripting/groovy/Messenger.groovy">
|
||||
<lang:property name="message" value="Hello World!" />
|
||||
script-source="classpath:org/springframework/scripting/groovy/Messenger.groovy">
|
||||
<lang:property name="message" value="Hello World!"/>
|
||||
</lang:groovy>
|
||||
|
||||
</beans>
|
||||
|
||||
@@ -33,7 +33,7 @@ class GroovyCalculator implements Calculator {
|
||||
return x + y;
|
||||
}
|
||||
}
|
||||
</lang:inline-script>
|
||||
</lang:inline-script>
|
||||
</lang:groovy>
|
||||
|
||||
<lang:groovy id="customizer">
|
||||
|
||||
@@ -10,8 +10,7 @@
|
||||
|
||||
<bean class="org.springframework.scripting.support.ScriptFactoryPostProcessor"/>
|
||||
|
||||
<bean id="calculator"
|
||||
class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<bean id="calculator" class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<constructor-arg>
|
||||
<value>inline:
|
||||
package org.springframework.scripting.groovy;
|
||||
@@ -25,28 +24,24 @@ class GroovyCalculator implements Calculator {
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="messenger"
|
||||
class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<bean id="messenger" class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<constructor-arg value="classpath:org/springframework/scripting/groovy/Messenger.groovy"/>
|
||||
<property name="message" value="Hello World!"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messengerPrototype"
|
||||
class="org.springframework.scripting.groovy.GroovyScriptFactory"
|
||||
<bean id="messengerPrototype" class="org.springframework.scripting.groovy.GroovyScriptFactory"
|
||||
scope="prototype">
|
||||
<constructor-arg value="classpath:org/springframework/scripting/groovy/Messenger.groovy"/>
|
||||
<property name="message" value="Hello World!"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messengerInstance"
|
||||
class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<bean id="messengerInstance" class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<constructor-arg value="classpath:org/springframework/scripting/groovy/MessengerInstance.groovy"/>
|
||||
<property name="message" ref="myMessage"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messengerInstanceInline"
|
||||
class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<constructor-arg>
|
||||
<bean id="messengerInstanceInline" class="org.springframework.scripting.groovy.GroovyScriptFactory">
|
||||
<constructor-arg>
|
||||
<value>inline:
|
||||
package org.springframework.scripting.groovy;
|
||||
import org.springframework.scripting.Messenger
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:lang="http://www.springframework.org/schema/lang"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd"
|
||||
default-lazy-init="true">
|
||||
|
||||
<bean class="org.springframework.scripting.support.ScriptFactoryPostProcessor"/>
|
||||
|
||||
<bean id="calculator" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="Groovy"/>
|
||||
<constructor-arg>
|
||||
<value>inline:
|
||||
package org.springframework.scripting.groovy;
|
||||
import org.springframework.scripting.Calculator
|
||||
class GroovyCalculator implements Calculator {
|
||||
int add(int x, int y) {
|
||||
return x + y;
|
||||
}
|
||||
}
|
||||
</value>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="messenger" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="classpath:org/springframework/scripting/groovy/Messenger.groovy"/>
|
||||
<property name="message" value="Hello World!"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messengerPrototype" class="org.springframework.scripting.support.StandardScriptFactory"
|
||||
scope="prototype">
|
||||
<constructor-arg value="classpath:org/springframework/scripting/groovy/Messenger.groovy"/>
|
||||
<property name="message" value="Hello World!"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messengerInstance" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="classpath:org/springframework/scripting/groovy/MessengerInstance.groovy"/>
|
||||
<property name="message" ref="myMessage"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messengerInstanceInline" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="Groovy"/>
|
||||
<constructor-arg>
|
||||
<value>inline:
|
||||
package org.springframework.scripting.groovy;
|
||||
import org.springframework.scripting.Messenger
|
||||
class GroovyMessenger implements Messenger {
|
||||
def String message;
|
||||
}
|
||||
return new GroovyMessenger();
|
||||
</value>
|
||||
</constructor-arg>
|
||||
<property name="message" ref="myMessage"/>
|
||||
</bean>
|
||||
|
||||
<bean id="myMessage" class="java.lang.String">
|
||||
<constructor-arg value="Hello World!"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,25 @@
|
||||
require 'java'
|
||||
|
||||
class RubyMessenger
|
||||
include org.springframework.scripting.ConfigurableMessenger
|
||||
|
||||
@@message = "Hello World!"
|
||||
|
||||
def setMessage(message)
|
||||
@@message = message
|
||||
end
|
||||
|
||||
def getMessage
|
||||
@@message
|
||||
end
|
||||
|
||||
def setTestBean(testBean)
|
||||
@@testBean = testBean
|
||||
end
|
||||
|
||||
def getTestBean
|
||||
@@testBean
|
||||
end
|
||||
end
|
||||
|
||||
RubyMessenger.new
|
||||
@@ -0,0 +1,11 @@
|
||||
require 'java'
|
||||
|
||||
class RubyPrinter
|
||||
include org.springframework.scripting.jruby.Printer
|
||||
|
||||
def print(obj)
|
||||
puts obj.getContent
|
||||
end
|
||||
end
|
||||
|
||||
RubyPrinter.new
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:lang="http://www.springframework.org/schema/lang"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
|
||||
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.2.xsd">
|
||||
|
||||
<lang:std id="messenger"
|
||||
script-source="classpath:org/springframework/scripting/jruby/MessengerWithInstance.rb">
|
||||
</lang:std>
|
||||
|
||||
<lang:std id="calculator" engine="jruby">
|
||||
<lang:inline-script>
|
||||
require 'java'
|
||||
|
||||
class RubyCalculator
|
||||
include org.springframework.scripting.Calculator
|
||||
|
||||
def add(x, y)
|
||||
x + y
|
||||
end
|
||||
end
|
||||
|
||||
RubyCalculator.new
|
||||
</lang:inline-script>
|
||||
</lang:std>
|
||||
|
||||
<lang:std id="refreshableMessenger"
|
||||
script-source="classpath:org/springframework/scripting/jruby/MessengerWithInstance.rb"
|
||||
refresh-check-delay="5000">
|
||||
</lang:std>
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean class="org.springframework.scripting.support.ScriptFactoryPostProcessor"/>
|
||||
|
||||
<bean id="calculator" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="jruby"/>
|
||||
<constructor-arg>
|
||||
<value>inline:
|
||||
require 'java'
|
||||
|
||||
class RubyCalculator
|
||||
include org.springframework.scripting.Calculator
|
||||
|
||||
def add(x, y)
|
||||
x + y
|
||||
end
|
||||
end
|
||||
|
||||
RubyCalculator.new
|
||||
</value>
|
||||
</constructor-arg>
|
||||
<constructor-arg value="org.springframework.scripting.Calculator"/>
|
||||
</bean>
|
||||
|
||||
<bean id="messenger" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="jruby"/>
|
||||
<constructor-arg value="classpath:org/springframework/scripting/jruby/MessengerWithInstance.rb"/>
|
||||
<constructor-arg value="org.springframework.scripting.Messenger"/>
|
||||
</bean>
|
||||
|
||||
<bean id="printer" class="org.springframework.scripting.support.StandardScriptFactory">
|
||||
<constructor-arg value="jruby"/>
|
||||
<constructor-arg value="classpath:org/springframework/scripting/jruby/PrinterWithInstance.rb"/>
|
||||
<constructor-arg value="org.springframework.scripting.jruby.Printer"/>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1 @@
|
||||
function getMessage() { return "Hello World!" }
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:lang="http://www.springframework.org/schema/lang"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
|
||||
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-4.2.xsd">
|
||||
|
||||
<lang:std id="messengerWithInterface" script-source="classpath:org/springframework/scripting/support/Messenger.js"
|
||||
script-interfaces="org.springframework.scripting.Messenger"/>
|
||||
|
||||
<lang:std id="refreshableMessengerWithInterface" refresh-check-delay="5000"
|
||||
script-source="classpath:org/springframework/scripting/support/Messenger.js"
|
||||
script-interfaces="org.springframework.scripting.Messenger">
|
||||
</lang:std>
|
||||
|
||||
<lang:std id="inlineMessengerWithInterface" engine="JavaScript"
|
||||
script-interfaces="org.springframework.scripting.Messenger">
|
||||
<lang:inline-script>
|
||||
function getMessage() { return "Hello World!" }
|
||||
</lang:inline-script>
|
||||
</lang:std>
|
||||
|
||||
</beans>
|
||||
Reference in New Issue
Block a user