Commit Graph

19 Commits

Author SHA1 Message Date
Artem Bilan
f0c4bdb756 INT-3166: Improve Groovy Processor Performance
Previously, there was a `synchronized` block in the `GroovyScriptExecutingMessageProcessor`
to achieve thread-safety around script variables.
In addition, the parsing and executing logic was delegated to `GroovyScriptFactory`, who, in turn,
has its own `synchronized` around script parsing.
This causes a bottleneck in a messaging architecture.

* Introduce `GroovyScriptExecutor implements ScriptExecutor`
to encapsulate Groovy parsing and executing logic
* synchronize via `ReentrantLock` only when script resource `isModified()`

JIRA: https://jira.springsource.org/browse/INT-3166

INT-3166: Fixes and Polishing

INT-3166: add synchronized double check

INT-3166: Remove `GroovyScriptExecutor`

Polishing tests and logic around exceptions

Fix up some white space issues in Groovy*Tests
2013-10-24 16:20:24 -04:00
Artem Bilan
7b2ba3e0a3 INT-3162 Fix AbstractScriptExecutor Thread-Safety
JIRA: https://jira.springsource.org/browse/INT-3162
2013-10-11 11:17:05 -04:00
Artem Bilan
a7a722a59e INT-3164: Fix Scripting Refresh
Previously, there was no logic to check, if a JSR223 script
was modified should be refreshed from the external resource.

* Fix `RefreshableResourceScriptSource` to take care of refreshing
on call `isModified()`
* Add `scriptSource.isModified()` before getting script text
* Introduce `ScriptSourceFactoryBean` to avoid I/O operations, when
there is need to refresh script resource - `refreshDelay < 0`

JIRA: https://jira.springsource.org/browse/INT-3164

INT-3164: change the refresh mutation logic

Remove factory bean - no longer needed.
2013-10-11 09:58:28 -04:00
Artem Bilan
0f3ac4d867 INT-3126: Document DefaultScriptVariableGenerator
JIRA: https://jira.springsource.org/browse/INT-3126
2013-10-09 14:10:44 -04:00
Artem Bilan
09be87551b INT-2867: Add Script Support to inbound-c-a
* Add `<script>` and `<expression>` to `<int:inbound-channel-adapter>`
* Refactoring for `DefaultInboundChannelAdapterParser`
* Introduce `ScriptExecutingMessageSource` to allow scripts' `MessageProcessor`
implementations work as a source for polling endpoint

JIRA: https://jira.springsource.org/browse/INT-2867

INT-2867: documentation

In addition the tests for Lifecycle attributes

Polishing
2013-09-19 16:55:32 -04:00
David Turanski
67fd4a5a60 INT-3051 Derive Script Language from Extension
Make 'lang' attribute optional on a script element and
attempt to derive the language from the file extension.

Change return value on ScriptParser.deriveLanguageFromExtension to the language name

Polishing (PR Comments)
2013-08-20 14:40:07 -04:00
Stefan Reuter
e890020a1b INT-3011 Groovy Classloader and BeanFactory Fixes
See: https://jira.springsource.org/browse/INT-3011

INT-3011 Pass BeanClassLoader and BeanFactory to GroovyScriptFactory

INT-3011 Move 'implements BeanFactoryAware, BeanClassLoaderAware'
to AbstractScriptExecutingMessageProcessor and GroovyControlBusFactory
2013-05-20 17:46:48 -04:00
Gary Russell
451beb424a INT-2873 Create 3.0 Schemas
Copy schemas, cleanup whitespace, update spring.schemas files,
update version in AbstractIntegrationNamespaceHandler.

For each schema compared the 2.2 version with the 3.0 version
(diff -w), ensuring the only difference is the import of
3.0 schemas (where appropriate) instead of 2.2.
2013-01-25 16:12:00 -05:00
David Turanski
50bea87e0e INT-2859 Fix Python OOM Error
INT-2859 - Remove Unnecessary Guard Condition
2013-01-14 12:06:20 -05:00
Gary Russell
95cd202be6 INT-2536 Create 2.2 Schemas
Add 2.2 versions of module schemas.

JMX is already covered by an existing pull request.

INT-2536 Schema Check

Bump version for schema check in
AbstractIntegrationNamespaceHandler.

INT-2536 Remove Schema Versions

Some test config files had 2.1 versioned schemas.
2012-05-04 10:04:01 -04:00
Gary Russell
b59ee8e352 INT-2369 package-info IP
INT-2360 package-info Core

INT-2361 package-info AMQP

INT-2362 package-info Event

INT-2363 package-info Feed

INT-2364 package-info File

INT-2365 INT-2380 package-info (S)FTP

INT-2366 package-info GemFire

INT-2367 package-info Groovy

INT-2368 package-info Http

INT-2378 package-info Scripting

INT-2372 package-info JMS
2012-01-05 14:42:24 -05:00
Mark Fisher
6c1454ae3d INT-2238 removing warnings in JavaDoc 2011-11-22 21:48:34 -05:00
David Turanski
eebb51f38a INT-2177. Improved exception handling. Made ScriptExecutorFactory abstract 2011-10-15 13:59:43 -04:00
David Turanski
a0e7b3cd78 INT-2177 - Added python support and related refactoring 2011-10-15 13:59:43 -04:00
Mark Fisher
3060030787 Create ScriptEngine per execution 2011-09-30 10:27:19 -04:00
David Turanski
a5ac75ea43 Corrected concurrency issues with JRuby 2011-09-30 09:54:44 -04:00
David Turanski
08f81ae51d Moved scripting support from core to scripting
spring-integration-test: Enhanced RequestResponseScenario test framework

 changed scripting namespace URIs to standard pattern
2011-09-23 09:07:42 -04:00
David Turanski
3d683b6134 Removed Jsr223 from classnames 2011-09-02 12:16:44 -04:00
David Turanski
207f043587 INT-1576,INT-1579,INT-2025: added spring-integration-scripting and fixed HeaderEnricher issue 2011-08-03 15:16:19 +05:30