List of usage examples for org.springframework.scripting.groovy GroovyScriptFactory getScriptedObject
@Override @Nullable public Object getScriptedObject(ScriptSource scriptSource, @Nullable Class<?>... actualInterfaces) throws IOException, ScriptCompilationException
From source file:org.springframework.integration.groovy.GroovyExpressionTests.java
@Test public void testScriptFactoryCustomizer() throws Exception { Customizer customizer = new Customizer(Collections.singletonMap("name", (Object) "foo")); GroovyScriptFactory factory = new GroovyScriptFactory("Groovy Script", customizer); ResourceScriptSource scriptSource = new ResourceScriptSource( new NamedByteArrayResource("\"name=${name}\"".getBytes(), "InlineScript")); Object scriptedObject = factory.getScriptedObject(scriptSource, null); assertEquals("name=foo", scriptedObject.toString()); customizer.setMap(Collections.singletonMap("name", (Object) "bar")); scriptedObject = factory.getScriptedObject(scriptSource, null); assertEquals("name=bar", scriptedObject.toString()); }
From source file:org.springframework.integration.groovy.GroovyExpressionTests.java
@Test public void testScriptFactoryCustomizerThreadSafety() throws Exception { final Customizer customizer = new Customizer(Collections.singletonMap("name", (Object) "foo")); final GroovyScriptFactory factory = new GroovyScriptFactory("Groovy Script", customizer); final ResourceScriptSource scriptSource = new ResourceScriptSource( new NamedByteArrayResource("\"name=${name}\"".getBytes(), "InlineScript")); Object scriptedObject = factory.getScriptedObject(scriptSource, null); assertEquals("name=foo", scriptedObject.toString()); CompletionService<String> completionService = new ExecutorCompletionService<String>( Executors.newFixedThreadPool(10)); for (int i = 0; i < 100; i++) { final String name = "bar" + i; completionService.submit(new Callable<String>() { public String call() throws Exception { Object scriptedObject; synchronized (customizer) { customizer.setMap(Collections.singletonMap("name", (Object) name)); scriptedObject = factory.getScriptedObject(scriptSource, null); }/* ww w .j a v a2 s . c o m*/ String result = scriptedObject.toString(); logger.debug("Result=" + result + " with name=" + name); if (!("name=" + name).equals(result)) { throw new IllegalStateException("Wrong value (" + result + ") for: " + name); } return name; } }); } Set<String> set = new HashSet<String>(); for (int i = 0; i < 100; i++) { set.add(completionService.take().get()); } assertEquals(100, set.size()); }
From source file:org.springframework.integration.groovy.GroovyExpressionTests.java
@Test public void testScriptFactoryCustomizerStatic() throws Exception { final Customizer customizer = new Customizer(Collections.singletonMap("name", (Object) "foo")); final GroovyScriptFactory factory = new GroovyScriptFactory("Groovy Script", customizer); final ResourceScriptSource scriptSource = new ResourceScriptSource( new NamedByteArrayResource("\"name=${name}\"".getBytes(), "InlineScript")); Object scriptedObject = factory.getScriptedObject(scriptSource, null); assertEquals("name=foo", scriptedObject.toString()); CompletionService<String> completionService = new ExecutorCompletionService<String>( Executors.newFixedThreadPool(10)); for (int i = 0; i < 100; i++) { final String name = "bar" + i; completionService.submit(new Callable<String>() { public String call() throws Exception { Object scriptedObject = factory.getScriptedObject(scriptSource, null); String result = scriptedObject.toString(); logger.debug("Result=" + result + " with name=" + name); if (!("name=foo").equals(result)) { throw new IllegalStateException("Wrong value (" + result + ") for: " + name); }//from w w w .jav a 2 s . c om return name; } }); } Set<String> set = new HashSet<String>(); for (int i = 0; i < 100; i++) { set.add(completionService.take().get()); } assertEquals(100, set.size()); }
From source file:org.springframework.integration.groovy.GroovyExpressionTests.java
@Test public void testScriptFactoryCustomizerThreadSafetyWithNewScript() throws Exception { final Customizer customizer = new Customizer(Collections.singletonMap("name", (Object) "foo")); final GroovyScriptFactory factory = new GroovyScriptFactory("Groovy Script", customizer); CompletionService<String> completionService = new ExecutorCompletionService<String>( Executors.newFixedThreadPool(5)); for (int i = 0; i < 100; i++) { final String name = "Bar" + i; completionService.submit(new Callable<String>() { public String call() throws Exception { Object scriptedObject; synchronized (customizer) { customizer.setMap(Collections.singletonMap("name", (Object) name)); ResourceScriptSource scriptSource = new ResourceScriptSource( new NamedByteArrayResource("\"name=${name}\"".getBytes(), "InlineScript" + name)); scriptedObject = factory.getScriptedObject(scriptSource, null); }/*from www.jav a 2 s . c om*/ String result = scriptedObject.toString(); logger.debug("Result=" + result + " with name=" + name); if (!("name=" + name).equals(result)) { throw new IllegalStateException("Wrong value (" + result + ") for: " + name); } return name; } }); } Set<String> set = new HashSet<String>(); for (int i = 0; i < 100; i++) { set.add(completionService.take().get()); } assertEquals(100, set.size()); }