├── LICENSE
├── NOTICE
├── README.md
├── build-docs.xml
├── build-templates
├── MANIFEST.MF
└── build-template.xml
├── build.properties
├── build.xml
├── core
├── build.xml
├── pom.xml
└── src
│ ├── conf
│ └── scriptella
│ │ └── dtd
│ │ └── etl.dtd
│ ├── java
│ └── scriptella
│ │ ├── configuration
│ │ ├── ConfigurationEl.java
│ │ ├── ConfigurationException.java
│ │ ├── ConfigurationFactory.java
│ │ ├── ConnectionEl.java
│ │ ├── ContentEl.java
│ │ ├── DialectBasedContentEl.java
│ │ ├── FallbackEl.java
│ │ ├── IncludeEl.java
│ │ ├── Location.java
│ │ ├── OnErrorEl.java
│ │ ├── PropertiesEl.java
│ │ ├── QueryEl.java
│ │ ├── RequiredAttributeException.java
│ │ ├── ScriptEl.java
│ │ ├── ScriptingElement.java
│ │ ├── StringResource.java
│ │ ├── XmlConfigurable.java
│ │ ├── XmlConfigurableBase.java
│ │ ├── XmlElement.java
│ │ └── package.html
│ │ ├── core
│ │ ├── ConnectionInterceptor.java
│ │ ├── ConnectionManager.java
│ │ ├── ContentExecutor.java
│ │ ├── DriverClassLoader.java
│ │ ├── DriverFactory.java
│ │ ├── DynamicContext.java
│ │ ├── DynamicContextDecorator.java
│ │ ├── ElementInterceptor.java
│ │ ├── EtlCancelledException.java
│ │ ├── EtlVariable.java
│ │ ├── ExceptionInterceptor.java
│ │ ├── ExecutableElement.java
│ │ ├── IfInterceptor.java
│ │ ├── OnErrorHandler.java
│ │ ├── QueryExecutor.java
│ │ ├── RuntimeIOException.java
│ │ ├── ScriptExecutor.java
│ │ ├── Session.java
│ │ ├── StatisticInterceptor.java
│ │ ├── SystemException.java
│ │ ├── ThreadSafe.java
│ │ ├── TxInterceptor.java
│ │ └── package.html
│ │ ├── execution
│ │ ├── EtlContext.java
│ │ ├── EtlExecutor.java
│ │ ├── EtlExecutorException.java
│ │ ├── ExecutionStatistics.java
│ │ ├── ExecutionStatisticsBuilder.java
│ │ ├── JmxEtlManager.java
│ │ ├── JmxEtlManagerMBean.java
│ │ ├── SilentExecutionStatisticsBuilder.java
│ │ └── package.html
│ │ ├── expression
│ │ ├── Expression.java
│ │ ├── JexlExpression.java
│ │ ├── LineIterator.java
│ │ ├── PropertiesSubstitutor.java
│ │ └── package.html
│ │ ├── interactive
│ │ ├── ConsoleProgressIndicator.java
│ │ ├── LoggingConfigurer.java
│ │ ├── ProgressCallback.java
│ │ ├── ProgressIndicator.java
│ │ ├── ProgressIndicatorBase.java
│ │ ├── SwingProgressIndicator.java
│ │ └── package.html
│ │ ├── jdbc
│ │ ├── CachedSqlTokenizer.java
│ │ ├── GenericDriver.java
│ │ ├── JdbcConnection.java
│ │ ├── JdbcException.java
│ │ ├── JdbcTypesConverter.java
│ │ ├── JdbcUtils.java
│ │ ├── Lobs.java
│ │ ├── ParametersParser.java
│ │ ├── ResultSetAdapter.java
│ │ ├── SqlExecutor.java
│ │ ├── SqlParserBase.java
│ │ ├── SqlReaderTokenizer.java
│ │ ├── SqlTokenizer.java
│ │ ├── StatementCache.java
│ │ ├── StatementWrapper.java
│ │ └── package.html
│ │ ├── spi
│ │ ├── AbstractConnection.java
│ │ ├── AbstractScriptellaDriver.java
│ │ ├── Connection.java
│ │ ├── ConnectionParameters.java
│ │ ├── DialectIdentifier.java
│ │ ├── DriverContext.java
│ │ ├── NativeConnectionProvider.java
│ │ ├── ParametersCallback.java
│ │ ├── ProviderException.java
│ │ ├── QueryCallback.java
│ │ ├── Resource.java
│ │ ├── ScriptellaDriver.java
│ │ ├── package.html
│ │ └── support
│ │ │ ├── HierarchicalParametersCallback.java
│ │ │ ├── MapParametersCallback.java
│ │ │ └── NullParametersCallback.java
│ │ ├── text
│ │ ├── PropertyFormat.java
│ │ ├── PropertyFormatInfo.java
│ │ ├── PropertyFormatter.java
│ │ ├── TimestampValueFormat.java
│ │ ├── TypedPropertiesSource.java
│ │ ├── ValueFormatBuilder.java
│ │ └── package.html
│ │ └── util
│ │ ├── CollectionUtils.java
│ │ ├── ColumnsMap.java
│ │ ├── ExceptionUtils.java
│ │ ├── IOUtils.java
│ │ ├── LRUMap.java
│ │ ├── PropertiesMap.java
│ │ ├── StringUtils.java
│ │ ├── UrlPathTokenizer.java
│ │ └── package.html
│ └── test
│ └── scriptella
│ ├── AbstractTestCase.java
│ ├── ConditionsTest.java
│ ├── ConditionsTest.xml
│ ├── DBTableCopyTest.java
│ ├── DBTableCopyTest.xml
│ ├── DBTableCopyTest2.xml
│ ├── DBTestCase.java
│ ├── DialectsTest.java
│ ├── DialectsTest.xml
│ ├── DialectsTest2.xml
│ ├── FilePropertiesTest.java
│ ├── FilePropertiesTest.xml
│ ├── JDBCEscapingTest.java
│ ├── JDBCEscapingTest.xml
│ ├── NestedQueryTest.java
│ ├── NestedQueryTest.xml
│ ├── NestedQueryTest2.xml
│ ├── NestedQueryTestRownum.xml
│ ├── OnErrorTest.java
│ ├── OnErrorTest.xml
│ ├── OnErrorTest2.xml
│ ├── OnErrorTest3.xml
│ ├── PropertiesTest.java
│ ├── PropertiesTest.properties
│ ├── PropertiesTest.xml
│ ├── SQLParametersTest.java
│ ├── SQLParametersTest.xml
│ ├── SQLParametersTest2.xml
│ ├── SQLSupportPerfTest.java
│ ├── SQLSupportPerfTest.xml
│ ├── TestLoggingConfigurer.java
│ ├── TxTest.java
│ ├── TxTest.xml
│ ├── TxTest2.xml
│ ├── TxTest3.xml
│ ├── configuration
│ ├── ContentElTest.java
│ ├── ContentElTest.xml
│ ├── DialectBasedContentElTest.java
│ ├── DynamicIncludeITest.java
│ ├── DynamicIncludeITest.xml
│ ├── DynamicIncludeITest1.sql
│ ├── DynamicIncludeITest2.sql
│ ├── MockConnectionEl.java
│ ├── ValidationTest.java
│ ├── ValidationTest.xml
│ ├── ValidationTest2.xml
│ ├── XIncludeTest.java
│ ├── XIncludeTest.sql
│ ├── XIncludeTest.xml
│ ├── XmlElementTest.java
│ └── xinctst
│ │ └── XIncludeTest.sql
│ ├── core
│ ├── DriverFactoryTest.java
│ ├── DriversClassLoaderTest.java
│ ├── EtlExecutorTest.java
│ ├── EtlExecutorTestRunCall.xml
│ ├── EtlVariableTest.java
│ └── SqlTestHelper.java
│ ├── execution
│ ├── CancellationTest.java
│ ├── CancellationTest.xml
│ ├── ExecutionStatisticsTest.java
│ ├── ExecutionStatisticsTest.xml
│ ├── ExecutionStatisticsTest2.xml
│ ├── ExecutionStatisticsTest3.xml
│ ├── JmxEtlManagerITest.java
│ ├── JmxEtlManagerITest.xml
│ ├── JmxEtlManagerTest.java
│ ├── LazyInitConnectionTest.java
│ ├── LazyInitConnectionTest.xml
│ └── TestableEtlExecutor.java
│ ├── expression
│ ├── LineIteratorPerfTest.java
│ ├── LineIteratorTest.java
│ ├── PropertiesSubstitutorPerfTest.java
│ └── PropertiesSubstitutorTest.java
│ ├── jdbc
│ ├── AutocommitITest.java
│ ├── AutocommitITest.xml
│ ├── CachedSqlTokenizerTest.java
│ ├── ColumnAliasITest.java
│ ├── ColumnAliasITest.xml
│ ├── JdbcConnectionITest.java
│ ├── JdbcConnectionITest.xml
│ ├── LobsTest.java
│ ├── NestedElementsPerfTest.java
│ ├── NestedElementsPerfTest.xml
│ ├── ParametersParserTest.java
│ ├── QueryHelper.java
│ ├── SQLParserBaseTest.java
│ ├── SqlTokenizerITest.java
│ ├── SqlTokenizerITest.xml
│ ├── SqlTokenizerPerfTest.java
│ ├── SqlTokenizerTest.java
│ ├── StatementCachePerfTest.java
│ ├── StatementCacheTest.java
│ ├── StatementWrapperTest.java
│ └── StatementWrapperTest.xml
│ ├── spi
│ ├── ConnectionParametersTest.java
│ ├── IndexedQueryCallback.java
│ ├── MockConnectionParameters.java
│ ├── MockDriverContext.java
│ └── MockParametersCallbacks.java
│ ├── text
│ ├── PropertyFormatInfoTest.java
│ ├── PropertyFormatTest.java
│ ├── PropertyFormatterTest.java
│ ├── TimestampValueFormatTest.java
│ ├── TypedPropertiesSourceTest.java
│ └── ValueFormatBuilderTest.java
│ └── util
│ ├── ColumnsMapPerfTest.java
│ ├── ColumnsMapTest.java
│ ├── ExceptionUtilsTest.java
│ ├── IOUtilsTest.java
│ ├── PropertiesMapTest.java
│ ├── ProxyAdapter.java
│ ├── RepeatingInputStream.java
│ ├── StringUtilsTest.java
│ └── UrlPathTokenizerTest.java
├── coverage.xml
├── drivers
├── build.xml
├── pom.xml
└── src
│ ├── conf
│ └── scriptella
│ │ └── driver
│ │ ├── auto
│ │ └── url.properties
│ │ └── spring
│ │ └── beanFactory.xml
│ ├── java
│ └── scriptella
│ │ └── driver
│ │ ├── as400
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── auto
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── csv
│ │ ├── CsvConnection.java
│ │ ├── CsvConnectionParameters.java
│ │ ├── CsvProviderException.java
│ │ ├── CsvQuery.java
│ │ ├── Driver.java
│ │ ├── opencsv
│ │ │ ├── CSVReader.java
│ │ │ ├── CSVWriter.java
│ │ │ └── package.html
│ │ └── package.html
│ │ ├── cubrid
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── db2
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── derby
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── h2
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── hsqldb
│ │ ├── Driver.java
│ │ ├── HsqlConnection.java
│ │ └── package.html
│ │ ├── janino
│ │ ├── CodeCompiler.java
│ │ ├── Driver.java
│ │ ├── JaninoConnection.java
│ │ ├── JaninoProviderException.java
│ │ ├── JaninoQuery.java
│ │ ├── JaninoScript.java
│ │ └── package.html
│ │ ├── jexl
│ │ ├── Driver.java
│ │ ├── JexlConnection.java
│ │ ├── JexlContextMap.java
│ │ ├── JexlProviderException.java
│ │ └── package.html
│ │ ├── jndi
│ │ ├── Driver.java
│ │ ├── JndiProviderException.java
│ │ └── package.html
│ │ ├── ldap
│ │ ├── Driver.java
│ │ ├── LdapConnection.java
│ │ ├── LdapProviderException.java
│ │ ├── LdifScript.java
│ │ ├── SearchFilterQuery.java
│ │ ├── ldif
│ │ │ ├── Entry.java
│ │ │ ├── LdifParseException.java
│ │ │ ├── LdifReader.java
│ │ │ ├── TrackingLineIterator.java
│ │ │ └── Utils.java
│ │ └── package.html
│ │ ├── mail
│ │ ├── Driver.java
│ │ ├── MailConnection.java
│ │ ├── MailProviderException.java
│ │ └── package.html
│ │ ├── mssql
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── mysql
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── odbc
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── oracle
│ │ ├── Driver.java
│ │ ├── OracleConnection.java
│ │ └── package.html
│ │ ├── package.html
│ │ ├── postgresql
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── script
│ │ ├── BindingsParametersCallback.java
│ │ ├── Driver.java
│ │ ├── MissingQueryNextCallDetector.java
│ │ ├── NashornBindingsParametersCallback.java
│ │ ├── ParametersCallbackMap.java
│ │ ├── ScriptConnection.java
│ │ ├── ScriptEngineWrapper.java
│ │ ├── ScriptProviderException.java
│ │ └── package.html
│ │ ├── scriptella
│ │ ├── Driver.java
│ │ ├── ScriptellaConnection.java
│ │ ├── ScriptellaProviderException.java
│ │ └── package.html
│ │ ├── shell
│ │ ├── Driver.java
│ │ ├── ShellCommandRunner.java
│ │ ├── ShellConnection.java
│ │ ├── ShellConnectionParameters.java
│ │ ├── ShellOs.java
│ │ ├── ShellProviderException.java
│ │ ├── ShellQueryExecutor.java
│ │ ├── ShellScriptExecutor.java
│ │ └── package.html
│ │ ├── spring
│ │ ├── BatchEtlExecutorBean.java
│ │ ├── Driver.java
│ │ ├── EtlExecutorBean.java
│ │ ├── SpringProviderException.java
│ │ └── package.html
│ │ ├── sybase
│ │ ├── Driver.java
│ │ └── package.html
│ │ ├── text
│ │ ├── AbstractTextConnection.java
│ │ ├── ConsoleAdapters.java
│ │ ├── Driver.java
│ │ ├── TextConnection.java
│ │ ├── TextConnectionParameters.java
│ │ ├── TextProviderException.java
│ │ ├── TextQueryExecutor.java
│ │ ├── TextScriptExecutor.java
│ │ └── package.html
│ │ ├── velocity
│ │ ├── Driver.java
│ │ ├── VelocityConnection.java
│ │ ├── VelocityProviderException.java
│ │ └── package.html
│ │ ├── xls
│ │ ├── Driver.java
│ │ └── package.html
│ │ └── xpath
│ │ ├── Driver.java
│ │ ├── NodeVariable.java
│ │ ├── XPathConnection.java
│ │ ├── XPathExpressionCompiler.java
│ │ ├── XPathProviderException.java
│ │ ├── XPathQueryExecutor.java
│ │ └── package.html
│ └── test
│ └── scriptella
│ └── driver
│ ├── alljdbc
│ ├── AllJDBCDriversTest.java
│ ├── AllJDBCDriversTest.xml
│ ├── h2.types.properties
│ ├── hsqldb.types.properties
│ ├── oracle.types.properties
│ ├── schema.xml
│ └── test.properties
│ ├── auto
│ ├── AutoDriverTest.java
│ ├── AutodiscoveryITest.java
│ └── AutodiscoveryITest.xml
│ ├── csv
│ ├── CsvConnectionPerfTest.java
│ ├── CsvConnectionTest.java
│ ├── CsvFormattingITest.java
│ ├── CsvFormattingITest.xml
│ ├── CsvQueryTest.java
│ ├── CsvScriptTest.java
│ └── CsvScriptTest.xml
│ ├── h2
│ ├── H2ScriptTest.java
│ └── H2ScriptTest.xml
│ ├── hsqldb
│ ├── LobsITest.java
│ ├── LobsITest.xml
│ └── ShutdownOnExitTest.java
│ ├── janino
│ ├── JaninoBaseClassesTest.java
│ ├── JaninoConnectionTest.java
│ ├── JaninoGetNativeDbConnectionITest.java
│ ├── JaninoGetNativeDbConnectionITest.xml
│ └── JaninoPerfTest.java
│ ├── jexl
│ ├── EtlVariableITest.java
│ ├── EtlVariableITest.xml
│ ├── JexlConnectionPerfTest.java
│ ├── JexlConnectionTest.java
│ ├── JexlDriverITest.java
│ ├── JexlDriverITest.xml
│ ├── JexlQueryITest.java
│ └── JexlQueryITest.xml
│ ├── jndi
│ └── JNDIDriverTest.java
│ ├── ldap
│ ├── LdapConnectionTest.java
│ ├── LdifScriptTest.java
│ ├── SearchFilterQueryTest.java
│ └── ldif
│ │ ├── LdifReaderTest.java
│ │ └── SubstitutingLineReaderTest.java
│ ├── mail
│ ├── MaiConnectionTest.java
│ └── MailDriverTest.java
│ ├── script
│ ├── MissingQueryNextCallDetectorTest.java
│ ├── ParametersCallbackMapTest.java
│ ├── ScriptConnectionPerfTest.java
│ ├── ScriptConnectionTest.java
│ ├── ScriptDriverITest.java
│ ├── ScriptDriverITest.xml
│ ├── ScriptingQueryITest.java
│ └── ScriptingQueryITest.xml
│ ├── scriptella
│ ├── ScriptellaDriverITest.java
│ ├── ScriptellaDriverITest.xml
│ ├── ScriptellaDriverPerfTest.java
│ ├── ScriptellaDriverPerfTest.xml
│ ├── file1.xml
│ ├── file2.xml
│ └── perf.xml
│ ├── shell
│ ├── ShellCommandRunnerTest.java
│ ├── ShellConnectionParametersTest.java
│ ├── ShellConnectionTest.java
│ ├── ShellDriverITest.java
│ └── ShellDriverITest.xml
│ ├── spring
│ ├── SpringDriverTest.java
│ ├── SpringDriverTest.xml
│ ├── autostart.etl.xml
│ ├── batch1.etl.xml
│ ├── batch2.etl.xml
│ ├── bug4648.etl.xml
│ └── springbeans.xml
│ ├── text
│ ├── TextConnectionPerfTest.java
│ ├── TextConnectionTest.java
│ ├── TextFormattingITest.java
│ ├── TextFormattingITest.xml
│ ├── TextQueryExecutorTest.java
│ ├── TextQueryITest.java
│ ├── TextQueryITest.xml
│ ├── TextScriptExecutorTest.java
│ ├── TextScriptITest.java
│ └── TextScriptITest.xml
│ ├── velocity
│ ├── VelocityConnectionTest.java
│ ├── VelocityPerfTest.java
│ ├── VelocityScriptTest.java
│ └── VelocityScriptTest.xml
│ └── xpath
│ ├── XPathConnectionPerfTest.java
│ ├── XPathDriverITest.java
│ ├── XPathDriverITest.xml
│ ├── XPathQueryExecutorTest.java
│ ├── excel.xml
│ ├── xml1.xml
│ └── xml2.xml
├── forrest
├── README
├── cli.xconf
├── forrest.properties
├── src
│ └── documentation
│ │ ├── README.txt
│ │ ├── classes
│ │ └── CatalogManager.properties
│ │ ├── content
│ │ └── xdocs
│ │ │ ├── download.xml
│ │ │ ├── faq.xml
│ │ │ ├── favicon.ico
│ │ │ ├── howto
│ │ │ ├── initialize-database.xml
│ │ │ └── migrate-from-ant.xml
│ │ │ ├── images
│ │ │ ├── blob_insert.png
│ │ │ ├── howto
│ │ │ │ ├── db-auto-init.png
│ │ │ │ └── imagedb-schema.png
│ │ │ ├── icon.png
│ │ │ ├── reference
│ │ │ │ ├── example1.png
│ │ │ │ ├── intro.png
│ │ │ │ └── jmxconsole.png
│ │ │ ├── scriptella-powered.gif
│ │ │ ├── site-logo.png
│ │ │ ├── table_copy.png
│ │ │ └── usemap.gif
│ │ │ ├── index.xml
│ │ │ ├── license.xml
│ │ │ ├── links.xml
│ │ │ ├── reference
│ │ │ ├── drivers.xml
│ │ │ └── index.xml
│ │ │ ├── site.xml
│ │ │ ├── support.xml
│ │ │ ├── tabs.xml
│ │ │ └── tutorial.xml
│ │ ├── resources
│ │ ├── schema
│ │ │ ├── catalog.xcat
│ │ │ └── hello-v10.dtd
│ │ └── stylesheets
│ │ │ └── hello2document.xsl
│ │ └── skinconf.xml
└── status.xml
├── lib
├── commons-jexl.jar
├── commons-jexl.license.txt
├── commons-logging.jar
├── commons-logging.license.txt
├── h2.jar
├── h2.license.txt
├── hsqldb.jar
├── hsqldb.license.txt
├── j2ee
│ ├── activation.jar
│ └── mail.jar
├── janino-commons-compiler.jar
├── janino.jar
├── janino.license.txt
├── junit.jar
├── lucene.license.txt
├── spring.jar
├── spring.license.txt
├── velocity-dep.jar
└── versions.properties
├── pom.xml
├── samples
├── ant
│ ├── build.xml
│ ├── etl.properties
│ └── etl.xml
├── benchmark
│ ├── build.xml
│ ├── createcsv.etl.xml
│ ├── exportcsv.etl.xml
│ └── importcsv.etl.xml
├── csv
│ ├── bugs-in.csv
│ ├── build.xml
│ ├── etl.xml
│ ├── hsqldb
│ │ ├── bugs-in.csv
│ │ ├── build.xml
│ │ ├── csv2db.etl.xml
│ │ ├── db2csv.etl.xml
│ │ └── fields.sql
│ ├── readme.txt
│ └── text
│ │ ├── build.xml
│ │ └── etl.xml
├── dbupgrade
│ ├── 1-2.sql
│ ├── 2-1.sql
│ ├── 2-3.sql
│ ├── 3-2.sql
│ ├── build.xml
│ ├── dbinit.etl.xml
│ ├── dbinit.properties
│ ├── dbupdate.etl.xml
│ ├── dbupdate.properties
│ └── readme.txt
├── ldap
│ ├── build.xml
│ ├── db2ldap.etl.xml
│ ├── dbschema.sql
│ ├── init.ldif
│ ├── jdbc
│ │ ├── build.xml
│ │ ├── db2ldap.etl.xml
│ │ ├── ldap2db.etl.xml
│ │ └── readme.txt
│ ├── ldap2db.etl.xml
│ └── readme.txt
├── lib
│ └── readme.txt
├── mail
│ ├── etl.xml
│ ├── mail.properties
│ ├── readme.txt
│ └── users.sql
├── musicstore
│ ├── build.xml
│ ├── etl.properties
│ ├── etl.xml
│ ├── run.bat
│ ├── song1.mp3
│ └── song2.mp3
├── odbc
│ ├── build.xml
│ ├── etl.xml
│ └── readme.txt
├── primes
│ ├── build.xml
│ ├── etl.properties
│ ├── etl.xml
│ ├── footer.vm
│ ├── header.vm
│ ├── readme.txt
│ └── scriptella-powered.gif
└── xml
│ ├── build.xml
│ ├── cd_catalog.xml
│ ├── etl.xml
│ └── readme.txt
└── tools
├── build.xml
├── pom.xml
└── src
├── bin
├── scriptella.bat
└── scriptella.sh
├── conf
├── antscriptella.properties
└── scriptella
│ └── tools
│ ├── ant
│ └── antlib.xml
│ └── template
│ ├── dataMigrator.etl.properties
│ ├── dataMigrator.etl.xml
│ ├── dataMigratorBlock.etl.xml
│ ├── default.etl.properties
│ └── default.etl.xml
├── java
└── scriptella
│ └── tools
│ ├── ant
│ ├── AntHandler.java
│ ├── EtlExecuteTask.java
│ ├── EtlTaskBase.java
│ ├── EtlTemplateTask.java
│ └── package.html
│ ├── launcher
│ ├── BugReport.java
│ ├── EtlLauncher.java
│ └── package.html
│ └── template
│ ├── DataMigrator.java
│ ├── TemplateManager.java
│ └── package.html
└── test
└── scriptella
└── tools
├── ant
├── EtlTaskBaseTest.java
└── EtlTemplateTaskTest.java
├── launcher
├── BugReportTest.java
├── EtlLauncherTest.etl.xml
├── EtlLauncherTest.java
└── EtlLauncherTestJmx.etl.xml
└── template
├── DataMigratorITest.java
├── DataMigratorITest.xml
└── TemplateManagerTest.java
/NOTICE:
--------------------------------------------------------------------------------
1 | =========================================================================
2 | == NOTICE file corresponding to the section 4 d of ==
3 | == the Apache License, Version 2.0, ==
4 | == in this case for the Scriptella distribution. ==
5 | =========================================================================
6 |
7 | This product includes software developed by
8 | The Apache Software Foundation (http://www.apache.org/).
9 |
10 | This product also includes software developed by :
11 | - The HSQLDB Development Group (http://www.hsqldb.org)
12 | - Thomas Mueller (http://h2database.com)
13 | - Arno Unkrig (http://janino.net)
14 | - The Spring Framework Project (http://www.springframework.org)
15 |
16 | Please read the different license files present in the lib directory of
17 | this distribution.
18 |
19 | The names "Scriptella" and "The Scriptella Project Team" must not be used to
20 | endorse or promote products derived from this software without prior
21 | written permission. For written permission, please contact
22 | scriptella@gmail.com
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Scriptella
2 | =======
3 |
4 | # What is it?
5 |
6 | Open source ETL (Extract-Transform-Load) and script execution tool
7 | written in Java. Its primary focus is simplicity. It doesn't
8 | require the user to learn another complex XML-based language to
9 | use it, but allows the use of SQL or another scripting language
10 | suitable for the data source to perform required transformations.
11 |
12 | **Note:** This project is no longer actively developed. For commercial support, please contact: scriptella@gmail.com
13 |
14 |
15 | # Latest Version
16 |
17 | Details of the latest version can be found on
18 | http://scriptella.org
19 |
20 |
21 | # Documentation
22 |
23 | Documentation is available in the docs/ directory.
24 | Up to date reference manual is available at
25 | http://scriptella.org/reference
26 |
27 | Guidelines for developers available at
28 | https://github.com/scriptella/scriptella-etl/wiki
29 |
30 |
31 | # Licensing
32 |
33 | This software is licensed under the terms you may find in the file named "LICENSE" in this directory.
34 |
35 | Thank you for using Scriptella!
36 |
37 | The Scriptella Project Team
38 | [http://scriptella.org](http://scriptella.org)
39 |
--------------------------------------------------------------------------------
/build-templates/MANIFEST.MF:
--------------------------------------------------------------------------------
1 | Specification-Title: Scriptella ETL and Scripts Execution Tool.
2 | Specification-Vendor: The Scriptella Project Team
3 | Implementation-Vendor: The Scriptella Project Team
4 | Implementation-Title: Scriptella ETL and Scripts Execution Tool.
5 | Implementation-Version: ${version}
6 | Build-Date: ${TODAY}
--------------------------------------------------------------------------------
/build.properties:
--------------------------------------------------------------------------------
1 | #Uncomment to turn off clean during build
2 | #noclean=on
3 | #Specify path to cobertura to produce test coverage reports
4 | #cobertura.dir=path/to/cobertura
5 | #Specify path to DTDDoc installation to produce DTD documentation
6 | #dtddoc.dir=path/to/DTDDoc
7 | #forrest.dir=path/to/forrest
8 | #Path to ant.jar file
9 | ant.jar=${ant.home}/lib/ant.jar
10 |
11 | # properties to deploy to Maven repository: see http://nexus.sonatype.org/oss-repository-hosting.html
12 | #path to maven-ant-tasks.jar
13 | #maven-ant-tasks.jar=path/to/maven-ant-tasks.jar
14 | # gpg key to sign artifacts
15 | #gpg.key=70161C62
16 | # gpg keyring passphrase
17 | #gpg.passphrase=...
--------------------------------------------------------------------------------
/core/build.xml:
--------------------------------------------------------------------------------
1 |
For now only XML format is supported
4 | 5 |To create configuration from XML file use the following code:
6 |
11 |
12 |
7 | ConfigurationFactory factory = new ConfigurationFactory();
8 | factory.setResourceURL(resourceURL);
9 | Configuration configration = cf.createConfiguration();
10 |
This exception is handled by a core execution engine and should be 21 | * propagated by drivers. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class EtlCancelledException extends SystemException { 27 | public EtlCancelledException() { 28 | super("ETL Cancelled"); 29 | } 30 | 31 | /** 32 | * A helper method which check if the current thread is interrupted 33 | * @throws EtlCancelledException if ETL operation is cancelled. 34 | */ 35 | public static void checkEtlCancelled() throws EtlCancelledException { 36 | if (Thread.interrupted()) { 37 | throw new EtlCancelledException(); 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /core/src/java/scriptella/core/ExecutableElement.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.core; 17 | 18 | 19 | /** 20 | * Represents executable element like {@link QueryExecutor query} or {@link ScriptExecutor script}. 21 | *
{@link ElementInterceptor Interceptors} also implement this interface to act as proxies. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public interface ExecutableElement { 27 | /** 28 | * Executes the element. 29 | *
Note: the context may be decorated by {@link DynamicContextDecorator}. 30 | * 31 | * @param ctx context to use. 32 | */ 33 | void execute(final DynamicContext ctx); 34 | } 35 | -------------------------------------------------------------------------------- /core/src/java/scriptella/core/RuntimeIOException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.core; 17 | 18 | import java.io.IOException; 19 | 20 | /** 21 | * Runtime wrapper for IO exceptions propagation. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class RuntimeIOException extends SystemException { 27 | 28 | public RuntimeIOException(IOException cause) { 29 | super(cause.getMessage(), cause); 30 | } 31 | 32 | public final Throwable initCause(Throwable cause) { 33 | throw new UnsupportedOperationException("Method not supported"); 34 | } 35 | 36 | public IOException getCause() { 37 | return (IOException) super.getCause(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /core/src/java/scriptella/core/SystemException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.core; 17 | 18 | 19 | /** 20 | * Base class for all scriptella runtime exceptions. 21 | * 22 | * @author Fyodor Kupolov 23 | * @version 1.0 24 | */ 25 | public class SystemException extends RuntimeException { 26 | public SystemException() { 27 | } 28 | 29 | public SystemException(String message) { 30 | super(message); 31 | } 32 | 33 | public SystemException(String message, Throwable cause) { 34 | super(message, cause); 35 | } 36 | 37 | public SystemException(Throwable cause) { 38 | super(cause); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /core/src/java/scriptella/core/ThreadSafe.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.core; 17 | 18 | import java.lang.annotation.ElementType; 19 | import java.lang.annotation.Retention; 20 | import java.lang.annotation.RetentionPolicy; 21 | import java.lang.annotation.Target; 22 | 23 | /** 24 | * Indicates thread safety 25 | * 26 | * @author Fyodor Kupolov 27 | * @version 1.0 28 | */ 29 | @Target({ElementType.METHOD, ElementType.TYPE}) 30 | @Retention(RetentionPolicy.SOURCE) 31 | public @interface ThreadSafe { 32 | } 33 | -------------------------------------------------------------------------------- /core/src/java/scriptella/core/package.html: -------------------------------------------------------------------------------- 1 |
2 | Core classes for scripts execution. 3 | -------------------------------------------------------------------------------- /core/src/java/scriptella/execution/SilentExecutionStatisticsBuilder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.execution; 17 | 18 | import scriptella.configuration.Location; 19 | import scriptella.spi.Connection; 20 | 21 | 22 | /** 23 | * A minimized version of {@link ExecutionStatisticsBuilder} optimized for performance. 24 | * 25 | * @author Fyodor Kupolov 26 | * @version 1.0 27 | */ 28 | public class SilentExecutionStatisticsBuilder extends ExecutionStatisticsBuilder { 29 | 30 | @Override 31 | /** 32 | * Called when new element execution started. 33 | * 34 | * @param loc element location. 35 | */ 36 | public void elementStarted(final Location loc, Connection connection) { 37 | //Do nothing 38 | } 39 | 40 | @Override 41 | public void elementExecuted() { 42 | //Do nothing 43 | } 44 | 45 | 46 | @Override 47 | public void elementFailed() { 48 | //Do nothing 49 | } 50 | 51 | } -------------------------------------------------------------------------------- /core/src/java/scriptella/execution/package.html: -------------------------------------------------------------------------------- 1 | 2 | Facade classes for xml scripts execution. 3 | -------------------------------------------------------------------------------- /core/src/java/scriptella/expression/package.html: -------------------------------------------------------------------------------- 1 | 2 | Classes for working with expressions and properties substitution. 3 | -------------------------------------------------------------------------------- /core/src/java/scriptella/interactive/ProgressIndicator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.interactive; 17 | 18 | 19 | /** 20 | * Script execution progress indicator. 21 | * 22 | * @author Fyodor Kupolov 23 | * @version 1.0 24 | */ 25 | public interface ProgressIndicator { 26 | /** 27 | * Invoked when script execution progress has been changed. 28 | * 29 | * @param progress progress value between 0 and 1 inclusive. 30 | * @param message completed event description. 31 | */ 32 | void showProgress(final double progress, final String message); 33 | } 34 | -------------------------------------------------------------------------------- /core/src/java/scriptella/interactive/package.html: -------------------------------------------------------------------------------- 1 | 2 | Progress Indicators and other classes related to user interaction. 3 | -------------------------------------------------------------------------------- /core/src/java/scriptella/spi/NativeConnectionProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.spi; 17 | 18 | /** 19 | * Optional interface implemented by {@link Connection} classes. It is introduced as a separate interface for 20 | * preserving backwards compatibility. 21 | *22 | * Represents a Scriptella object which is able to return the native connection used to talk with the 23 | * datasource. It is up to the driver to decide which object is returned. 24 | * For example Scriptella adapters for JDBC drivers return an instance of 25 | * {@link java.sql.Connection}. 26 | * 27 | * 28 | * 29 | * @author Fyodor Kupolov 30 | * @since 1.2 31 | * @see Connection 32 | */ 33 | public interface NativeConnectionProvider { 34 | /** 35 | * Returns the native connection which is wrapped by this object or null if this information is not 36 | * available. 37 | * 38 | * @return native connection which is wrapped by this object. 39 | */ 40 | public Object getNativeConnection(); 41 | } 42 | -------------------------------------------------------------------------------- /core/src/java/scriptella/spi/QueryCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.spi; 17 | 18 | 19 | /** 20 | * Callback interface for query result set iteration. 21 | * 22 | * @author Fyodor Kupolov 23 | * @version 1.0 24 | */ 25 | public interface QueryCallback { 26 | /** 27 | * Called for each row in a result set. 28 | * 29 | * @param parameters parameters to get column values and other properties. 30 | */ 31 | void processRow(final ParametersCallback parameters); 32 | } 33 | -------------------------------------------------------------------------------- /core/src/java/scriptella/spi/Resource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.spi; 17 | 18 | import java.io.IOException; 19 | import java.io.Reader; 20 | 21 | 22 | /** 23 | * Represents reference to a text resource capable of creating new readers. 24 | * 25 | * @author Fyodor Kupolov 26 | * @version 1.0 27 | */ 28 | public interface Resource { 29 | /** 30 | * Opens a resource and returns a content reader. 31 | *
The returned reader implementation should be effective enough to allow usage without 32 | * extra buffering, etc. 33 | * 34 | * @return resource content reader 35 | * @throws IOException if I/O error occurs. 36 | */ 37 | Reader open() throws IOException; 38 | 39 | /** 40 | * @return location of content or meaningful description. 41 | */ 42 | String toString(); 43 | } 44 | -------------------------------------------------------------------------------- /core/src/java/scriptella/spi/ScriptellaDriver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.spi; 17 | 18 | /** 19 | * Service Provider Interface for integrating third-party systems with Scriptella. 20 | * Implementing class must have public no-args constructor. 21 | * 22 | * @author Fyodor Kupolov 23 | * @version 1.0 24 | */ 25 | public interface ScriptellaDriver { 26 | /** 27 | * Implementor should create a new connection based on specified parameters. 28 | * 29 | * @param connectionParameters connection parameters defined in <connection> element. 30 | * @return new connection. 31 | */ 32 | Connection connect(ConnectionParameters connectionParameters); 33 | 34 | 35 | /** 36 | * @return Driver's meaningful name 37 | */ 38 | String toString(); 39 | } 40 | -------------------------------------------------------------------------------- /core/src/java/scriptella/spi/support/MapParametersCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.spi.support; 17 | 18 | import scriptella.spi.ParametersCallback; 19 | 20 | import java.util.Map; 21 | 22 | /** 23 | * Map-based parameters callback implementation. 24 | * 25 | * @author Fyodor Kupolov 26 | * @version 1.0 27 | */ 28 | public class MapParametersCallback implements ParametersCallback { 29 | private Map map; 30 | 31 | public MapParametersCallback(Map map) { 32 | this.map = map; 33 | } 34 | 35 | public Object getParameter(final String name) { 36 | return map.get(name); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /core/src/java/scriptella/spi/support/NullParametersCallback.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.spi.support; 17 | 18 | import scriptella.spi.ParametersCallback; 19 | 20 | /** 21 | * Null-object constant for {@link ParametersCallback}. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class NullParametersCallback implements ParametersCallback { 27 | public static final ParametersCallback INSTANCE = new NullParametersCallback(); 28 | 29 | /** 30 | * Singleton. 31 | */ 32 | private NullParametersCallback() { 33 | } 34 | 35 | 36 | /** 37 | * Always return null. 38 | * 39 | * @param name parameter name. 40 | * @return null. 41 | */ 42 | public Object getParameter(final String name) { 43 | return null; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /core/src/java/scriptella/text/TimestampValueFormat.java: -------------------------------------------------------------------------------- 1 | package scriptella.text; 2 | 3 | import java.sql.Timestamp; 4 | import java.text.DateFormat; 5 | import java.text.FieldPosition; 6 | import java.text.ParsePosition; 7 | import java.util.Date; 8 | 9 | /** 10 | * Format class to work with dates represented in JDBC escape syntax. 11 | * 12 | * @author Fyodor Kupolov 13 | * @since 1.1 14 | */ 15 | public class TimestampValueFormat extends DateFormat { 16 | @Override 17 | public StringBuffer format(Date date, StringBuffer out, FieldPosition fieldPosition) { 18 | out.append(new Timestamp(date.getTime()).toString()); 19 | return out; 20 | } 21 | 22 | @Override 23 | public Date parse(String source, ParsePosition pos) { 24 | Date result = null; 25 | result = Timestamp.valueOf(source.substring(pos.getIndex())); 26 | pos.setIndex(source.length() - 1); 27 | return result; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /core/src/java/scriptella/text/package.html: -------------------------------------------------------------------------------- 1 | 16 |
17 | Classes for formatting and parsing text. 18 | 19 | -------------------------------------------------------------------------------- /core/src/java/scriptella/util/package.html: -------------------------------------------------------------------------------- 1 | 2 | Miscellaneous utility classes. 3 | -------------------------------------------------------------------------------- /core/src/test/scriptella/ConditionsTest.xml: -------------------------------------------------------------------------------- 1 | 2 |For configuration details and examples see overview page. 24 | * 25 | * @author Kirill Volgin 26 | * @version 1.0 27 | */ 28 | public class Driver extends GenericDriver { 29 | public static final String AS400_DRIVER_NAME = "com.ibm.as400.access.AS400JDBCDriver"; 30 | 31 | 32 | public Driver() { 33 | loadDrivers(AS400_DRIVER_NAME); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/as400/package.html: -------------------------------------------------------------------------------- 1 |
2 | AS/400 Driver Adapter for Scriptella. 3 |See Overview of JDBC package for a description of common features and connection properties.
4 |Driver class: | scriptella.driver.as400.Driver |
8 |
URL: | Same as for AS400 JDBC Driver. |
11 |
Runtime dependencies: | 14 |jt400.jar |
15 |
Name | 21 |Description | 22 |Required | 23 |
---|
28 | <connection id="c1" driver="as400" url="jdbc:as400://your_server;naming=system;translate binary=true" user="username" password="password" classpath="lib_dir/jt400.jar">
29 | </connection>
30 |
31 |
35 |
36 | <connection id="c1" url="jdbc:as400://your_server;naming=system;translate binary=true" user="username" password="password" classpath="lib_dir/jt400.jar">
37 | </connection>
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/csv/Driver.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.csv;
17 |
18 | import scriptella.spi.AbstractScriptellaDriver;
19 | import scriptella.spi.Connection;
20 | import scriptella.spi.ConnectionParameters;
21 | import scriptella.spi.DialectIdentifier;
22 |
23 | /**
24 | * Scriptella driver for CSV files.
25 | * For configuration details and examples see overview page. 26 | * 27 | * @author Fyodor Kupolov 28 | * @version 1.0 29 | */ 30 | public class Driver extends AbstractScriptellaDriver { 31 | static final DialectIdentifier DIALECT = new DialectIdentifier("CSV", "1.0"); 32 | 33 | public Connection connect(ConnectionParameters connectionParameters) { 34 | return new CsvConnection(connectionParameters); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/csv/opencsv/package.html: -------------------------------------------------------------------------------- 1 |
2 |For configuration details and examples see overview page. 23 | * 24 | * @author Arnia Software 25 | * @version 1.0 26 | */ 27 | public class Driver extends GenericDriver { 28 | public static final String CUBRID_DRIVER_NAME = "cubrid.jdbc.driver.CUBRIDDriver"; 29 | 30 | public Driver() { 31 | loadDrivers(CUBRID_DRIVER_NAME); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/cubrid/package.html: -------------------------------------------------------------------------------- 1 |
2 | Cubrid Driver Adapter for Scriptella. 3 |Note: The driver tries to load Cubrid JDBC driver. 4 | 5 |
Driver class: | 9 |scriptella.driver.cubrid.Driver |
10 |
URL: | 13 |Same as for Cubrid JDBC Driver. Ex:jdbc:CUBRID:127.0.0.1:30000:demodb::: |
14 |
Runtime dependencies: | 17 |cubrid-connector-java.jar |
18 |
Name | 24 |Description | 25 |Required | 26 |
---|---|---|
Broker Port | 29 |The port number used for connection | 30 |Yes | 31 |
36 | <connection url="jdbc:CUBRID:127.0.0.1:30000:demodb:::" user="dba" password="">
37 | </connection>
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/db2/Driver.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.db2;
17 |
18 | import scriptella.jdbc.GenericDriver;
19 |
20 | /**
21 | * Scriptella Adapter for DB2 database.
22 | *
23 | * For configuration details and examples see overview page. 24 | * 25 | * @author Kirill Volgin 26 | * @version 1.0 27 | */ 28 | public class Driver extends GenericDriver { 29 | public static final String DB2_DRIVER_NAME = "com.ibm.db2.jcc.DB2Driver"; 30 | 31 | 32 | public Driver() { 33 | loadDrivers(DB2_DRIVER_NAME); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/db2/package.html: -------------------------------------------------------------------------------- 1 |
2 | DB2 Driver Adapter for Scriptella. 3 |See Overview of JDBC package for a description of common features and connection properties.
4 |Driver class: | scriptella.driver.db2.Driver |
8 |
URL: | Same as for DB2 JDBC Driver. |
11 |
Runtime dependencies: | 14 |db2jcc.jar;db2jcc_license_cu.jar |
15 |
Name | 21 |Description | 22 |Required | 23 |
---|
28 | <connection id="c1" driver="db2" url="jdbc:db2://localhost:50000/sample" user="username" password="password">
29 | </connection>
30 |
31 |
32 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/derby/package.html:
--------------------------------------------------------------------------------
1 |
2 | Derby Driver Adapter for Scriptella.
3 | See Overview of JDBC package for a description of common features and connection properties.
4 |Driver class: | scriptella.driver.derby.Driver |
8 |
URL: | Same as for Derby JDBC Driver. |
11 |
Runtime dependencies: | 14 |clientDerby.jar;derby.jar |
15 |
Name | 21 |Description | 22 |Required | 23 |
---|
28 | <connection id="c1" driver="derby" url="jdbc:derby://localhost/sample" user="username" password="password">
29 | </connection>
30 |
31 |
32 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/h2/package.html:
--------------------------------------------------------------------------------
1 |
2 | H2 Database Driver Adapter for Scriptella.
3 | See Overview of JDBC package for a description of common features and connection properties.
4 |Driver class: | scriptella.driver.h2.Driver |
8 |
URL: | Same as for H2. No URL means private in-memory database. |
11 |
Runtime dependencies: | h2.jar |
14 |
Name | 20 |Description | 21 |Required | 22 |
---|
27 | <connection driver="h2" url="jdbc:h2:file:database" user="sa">
28 | </connection>
29 |
30 | <!--empty URL attribute means private In-Memory database -->
31 | <connection driver="h2"/>
32 |
33 |
34 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/hsqldb/package.html:
--------------------------------------------------------------------------------
1 |
2 | HSLQDB Driver Adapter for Scriptella.
3 | Adds a possibility to control database shutdown. See Overview of JDBC package for a description of common features and connection properties.
4 |Driver class: | scriptella.driver.hsqldb.Driver |
8 |
URL: | Same as for HSQLDB |
11 |
Runtime dependencies: | hsqldb.jar |
14 |
Name | 20 |Description | 21 |Required | 22 |
---|---|---|
hsql.shutdown_on_exit | 25 |True if SHUTDOWN command should be automatically executed before last connection closed. In 1.7.2, 26 | in-process databases are no longer closed when the last connection to the database is explicitly closed via 27 | JDBC, 28 | a SHUTDOWN is required | 29 |No, default value is true |
30 |
36 | <connection driver="hsqldb" url="jdbc:hsqldb:file:db" user="sa">
37 | hsql.shutdown_on_exit=true;
38 | </connection>
39 |
40 |
41 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/jexl/Driver.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.jexl;
17 |
18 | import scriptella.spi.AbstractScriptellaDriver;
19 | import scriptella.spi.Connection;
20 | import scriptella.spi.ConnectionParameters;
21 | import scriptella.spi.DialectIdentifier;
22 |
23 | /**
24 | * Driver for JEXL.
25 | * For configuration details and examples see overview page. 26 | * 27 | * @author Fyodor Kupolov 28 | * @version 1.0 29 | */ 30 | public class Driver extends AbstractScriptellaDriver { 31 | static final DialectIdentifier DIALECT = new DialectIdentifier("JEXL", "2.0"); 32 | 33 | public Connection connect(ConnectionParameters connectionParameters) { 34 | return new JexlConnection(connectionParameters); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/jexl/JexlProviderException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * $Header: $ 3 | * $Revision: $ 4 | * $Date: $ 5 | * 6 | * Copyright 2003-2005 7 | * All rights reserved. 8 | */ 9 | package scriptella.driver.jexl; 10 | 11 | import scriptella.spi.ProviderException; 12 | 13 | /** 14 | * Thrown to indicate a problem with JEXL script. 15 | * 16 | * @author Fyodor Kupolov 17 | * @version 1.0 18 | */ 19 | public class JexlProviderException extends ProviderException { 20 | public JexlProviderException() { 21 | } 22 | 23 | public JexlProviderException(String message) { 24 | super(message); 25 | } 26 | 27 | public JexlProviderException(String message, Throwable cause) { 28 | super(message, cause); 29 | } 30 | 31 | public JexlProviderException(Throwable cause) { 32 | super(cause); 33 | } 34 | 35 | public String getProviderName() { 36 | return Driver.DIALECT.getName(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/jndi/JndiProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.jndi; 17 | 18 | import scriptella.jdbc.JdbcException; 19 | 20 | /** 21 | * Thrown to indicate JNDI provider failure. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class JndiProviderException extends JdbcException { 27 | public JndiProviderException(String message, Throwable cause) { 28 | super(message, cause); 29 | } 30 | 31 | public JndiProviderException(String message) { 32 | super(message); 33 | } 34 | 35 | public String getProviderName() { 36 | return "JNDI"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/jndi/package.html: -------------------------------------------------------------------------------- 1 |
2 | JNDI Datasource Driver for Scriptella. 3 |This driver allows to work with JNDI-bound datasource connections, 4 | useful in J2EE environment
5 |This driver acts as a proxy and relies on JDBC Bridge.
6 | 7 |Driver class: | scriptella.driver.jndi.Driver |
11 |
Driver alias name: | jndi |
14 |
URL: | JNDI name of the datasource |
17 |
Runtime dependencies: | None |
20 |
Depending on your environment you may need to specify additional JNDI properties 24 | inside a connection element. These settings will take precedence over jndi.properties and System properties.
25 | 26 |
28 | <connection driver="jndi" url="ds/appDataSource">
29 | #Default settings should work in J2EE environment, but you may reconfigure JNDI here
30 | #java.naming.factory.initial=jndi.provider.Factory
31 | </connection>
32 |
33 |
34 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/ldap/ldif/LdifParseException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.ldap.ldif;
17 |
18 | import scriptella.driver.ldap.LdapProviderException;
19 |
20 | /**
21 | * Thrown to indicate a parse excpetion.
22 | *
23 | * @author Fyodor Kupolov
24 | * @version 1.0
25 | */
26 | public class LdifParseException extends LdapProviderException {
27 | public LdifParseException(String message) {
28 | super(message);
29 | }
30 |
31 | public LdifParseException(String message, String errorStatement) {
32 | super(message, errorStatement);
33 | }
34 |
35 | public LdifParseException(String message, String errorStatement, Throwable cause) {
36 | super(message, errorStatement, cause);
37 | }
38 |
39 | public LdifParseException(String message, Throwable cause) {
40 | super(message, cause);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/mail/MailProviderException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.mail;
17 |
18 | import scriptella.spi.ProviderException;
19 |
20 | /**
21 | * Thrown to indicate a problem with EMail producing/sending.
22 | *
23 | * @author Fyodor Kupolov
24 | * @version 1.0
25 | */
26 | public class MailProviderException extends ProviderException {
27 |
28 | public MailProviderException() {
29 | }
30 |
31 | public MailProviderException(String message) {
32 | super(message);
33 | }
34 |
35 | public MailProviderException(String message, Throwable cause) {
36 | super(message, cause);
37 | }
38 |
39 | public MailProviderException(Throwable cause) {
40 | super(cause);
41 | }
42 |
43 |
44 | public String getProviderName() {
45 | return Driver.DIALECT.getName();
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/mysql/Driver.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.mysql;
17 |
18 | import scriptella.jdbc.GenericDriver;
19 |
20 | /**
21 | * Scriptella Adapter for MySQL database.
22 | * For configuration details and examples see overview page. 23 | * 24 | * @author Kirill Volgin 25 | * @version 1.0 26 | */ 27 | public class Driver extends GenericDriver { 28 | public static final String MYSQL_DRIVER_NAME = "com.mysql.jdbc.Driver"; 29 | 30 | 31 | public Driver() { 32 | loadDrivers(MYSQL_DRIVER_NAME); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/odbc/Driver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.odbc; 17 | 18 | import scriptella.jdbc.GenericDriver; 19 | 20 | /** 21 | * Scriptella Adapter for Sun's JDBC-ODBC driver. 22 | * 23 | *
For configuration details and examples see overview page. 24 | * 25 | * @author Fyodor Kupolov 26 | * @version 1.0 27 | */ 28 | public class Driver extends GenericDriver { 29 | public static final String ODBC_DRIVER_NAME = "sun.jdbc.odbc.JdbcOdbcDriver"; 30 | 31 | public Driver() { 32 | loadDrivers(ODBC_DRIVER_NAME); 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/odbc/package.html: -------------------------------------------------------------------------------- 1 |
2 |See Overview of JDBC package for a description of common features and connection properties.
5 |Driver class: | scriptella.driver.odbc.Driver |
9 |
URL: | Same as for Sun's JDBC-ODBC Bridge. |
12 |
Runtime dependencies: | None |
15 |
Name | 21 |Description | 22 |Required | 23 |
---|
28 | <connection url="jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=Northwind.mdb"/>
29 |
30 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/package.html:
--------------------------------------------------------------------------------
1 |
2 | Parent package for Scriptella Drivers.
3 |
4 | This package is a recommended namespace for various drivers. 5 | Scriptella drivers lookup mechanism automatically searches driver classes inside this 6 | package without a necessity to specify a full class name. The search procedure is 7 | described in DriverFactory class. 8 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/postgresql/Driver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.postgresql; 17 | 18 | import scriptella.jdbc.GenericDriver; 19 | 20 | /** 21 | * Scriptella Adapter for PostgreSQL database. 22 | * 23 | *
For configuration details and examples see overview page. 24 | * 25 | * NOTE: Problems during migration from/to Oracle(and DB2) RDBMS could be occurred due to not supported Bit/Boolean 26 | * data types equality by Postgre SQL DB 27 | * 28 | * @author Kirill Volgin 29 | * @version 1.0 30 | */ 31 | public class Driver extends GenericDriver { 32 | public static final String POSTGRESQL_DRIVER_NAME = "org.postgresql.Driver"; 33 | 34 | public Driver() { 35 | loadDrivers(POSTGRESQL_DRIVER_NAME); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/postgresql/package.html: -------------------------------------------------------------------------------- 1 |
2 | PostgreSQL Driver Adapter for Scriptella. 3 |See Overview of JDBC package for a description of common features and connection properties.
4 |Driver class: | scriptella.driver.postgresql.Driver |
8 |
URL: | Same as for PostgreSQL JDBC Driver. |
11 |
Runtime dependencies: | 14 |postgresql-8x.jdbc3.jar |
15 |
Name | 21 |Description | 22 |Required | 23 |
---|
28 | <connection url="jdbc:postgresql://localhost:5432/test" user="username" password="password">
29 | </connection>
30 |
31 |
32 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/script/BindingsParametersCallback.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.script;
17 |
18 | import scriptella.spi.ParametersCallback;
19 | import scriptella.spi.QueryCallback;
20 |
21 | import javax.script.Bindings;
22 |
23 | /**
24 | * {@link javax.script.Bindings} implementation for
25 | * integration into Scriptella execution environment.
26 | * This class simply declare {@link javax.script.Bindings} interface from Java SE 6. 27 | * 28 | * @author Fyodor Kupolov 29 | * @version 1.0 30 | */ 31 | public class BindingsParametersCallback extends ParametersCallbackMap implements Bindings { 32 | public BindingsParametersCallback(ParametersCallback parentParameters) { 33 | super(parentParameters); 34 | } 35 | 36 | 37 | public BindingsParametersCallback(ParametersCallback parentParameters, QueryCallback queryCallback) { 38 | super(parentParameters, queryCallback); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/script/ScriptProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.script; 17 | 18 | import scriptella.spi.ProviderException; 19 | 20 | /** 21 | * Thrown to indicate an error in scripting engine. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class ScriptProviderException extends ProviderException { 27 | public ScriptProviderException(String message, Throwable cause) { 28 | super(message, cause); 29 | } 30 | 31 | public ScriptProviderException(String message, Throwable cause, String errorStatement) { 32 | super(message, cause); 33 | setErrorStatement(errorStatement); 34 | } 35 | 36 | 37 | public String getProviderName() { 38 | return "javax.script"; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/scriptella/Driver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.scriptella; 17 | 18 | import scriptella.spi.AbstractScriptellaDriver; 19 | import scriptella.spi.Connection; 20 | import scriptella.spi.ConnectionParameters; 21 | import scriptella.spi.DialectIdentifier; 22 | 23 | /** 24 | * This driver allows execution of external ETL files. 25 | *
For configuration details and examples see overview page. 26 | * 27 | * @author Fyodor Kupolov 28 | * @version 1.0 29 | */ 30 | public class Driver extends AbstractScriptellaDriver { 31 | static final DialectIdentifier DIALECT = new DialectIdentifier(getScriptellaTitle(), getScriptellaVersion()); 32 | 33 | public Connection connect(ConnectionParameters connectionParameters) { 34 | return new ScriptellaConnection(connectionParameters); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/scriptella/ScriptellaProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.scriptella; 17 | 18 | import scriptella.jdbc.JdbcException; 19 | 20 | /** 21 | * Thrown to indicate Spring provider failure. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class ScriptellaProviderException extends JdbcException { 27 | public ScriptellaProviderException(String message, Throwable cause) { 28 | super(message, cause); 29 | } 30 | 31 | public ScriptellaProviderException(String message) { 32 | super(message); 33 | } 34 | 35 | public String getProviderName() { 36 | return "Scriptella"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/shell/Driver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2020 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.shell; 17 | 18 | import scriptella.spi.AbstractScriptellaDriver; 19 | import scriptella.spi.Connection; 20 | import scriptella.spi.ConnectionParameters; 21 | 22 | /** 23 | * Shell scripts driver. 24 | *
For configuration details and examples see overview page. 25 | * 26 | * @author Fyodor Kupolov 27 | * @version 1.0 28 | */ 29 | public class Driver extends AbstractScriptellaDriver { 30 | 31 | public Connection connect(ConnectionParameters connectionParameters) { 32 | return new ShellConnection(new ShellConnectionParameters(connectionParameters)); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/shell/ShellOs.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2020 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.shell; 17 | 18 | /** 19 | * Represents target shell OS 20 | */ 21 | public enum ShellOs { 22 | LINUX, MAC, WINDOWS; 23 | 24 | public static ShellOs fromOsNameVersion(String osName, String osVersion) { 25 | if (osName.toLowerCase().startsWith("mac")) { 26 | return MAC; 27 | } else if (osName.toLowerCase().startsWith("windows")) { 28 | return WINDOWS; 29 | } 30 | return LINUX; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/shell/ShellProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2020 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.shell; 17 | 18 | import scriptella.spi.ProviderException; 19 | 20 | /** 21 | * Thrown to indicate a problem with shell script execution. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class ShellProviderException extends ProviderException { 27 | public ShellProviderException() { 28 | } 29 | 30 | public ShellProviderException(String message) { 31 | super(message); 32 | } 33 | 34 | public ShellProviderException(String message, Throwable cause) { 35 | super(message, cause); 36 | } 37 | 38 | public ShellProviderException(Throwable cause) { 39 | super(cause); 40 | } 41 | 42 | public String getProviderName() { 43 | return "Shell"; 44 | } 45 | 46 | 47 | } 48 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/spring/SpringProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.spring; 17 | 18 | import scriptella.jdbc.JdbcException; 19 | 20 | /** 21 | * Thrown to indicate Spring provider failure. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class SpringProviderException extends JdbcException { 27 | public SpringProviderException(String message, Throwable cause) { 28 | super(message, cause); 29 | } 30 | 31 | public SpringProviderException(String message) { 32 | super(message); 33 | } 34 | 35 | public String getProviderName() { 36 | return "Spring"; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/sybase/package.html: -------------------------------------------------------------------------------- 1 |
2 | Scriptella Driver Adapter for Sybase ASE and ASA. 3 |Note: The driver tries to load any of the known JDBC drivers in the following order: 4 |
See Overview of JDBC package for a description of common features and connection properties.
9 |Driver class: | scriptella.driver.sybase.Driver |
13 |
URL: | Same as for Sybase JDBC Driver. |
16 |
Runtime dependencies: | 19 |jconn3.jar
20 | or jtds-VERSION.jar .
21 | |
22 |
Name | 28 |Description | 29 |Required | 30 |
---|
35 | <connection driver="sybase" url="jdbc:sybase:Tds:localhost:2638/tst" user="username" password="password">
36 | </connection>
37 |
38 |
39 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/text/Driver.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.text;
17 |
18 | import scriptella.spi.AbstractScriptellaDriver;
19 | import scriptella.spi.Connection;
20 | import scriptella.spi.ConnectionParameters;
21 | import scriptella.spi.DialectIdentifier;
22 |
23 | /**
24 | * Represents a Text file driver.
25 | * For configuration details and examples see overview page. 26 | * 27 | * @author Fyodor Kupolov 28 | * @version 1.0 29 | */ 30 | public class Driver extends AbstractScriptellaDriver { 31 | static final DialectIdentifier DIALECT = new DialectIdentifier("Text", "1.0"); 32 | 33 | public Connection connect(ConnectionParameters connectionParameters) { 34 | return new TextConnection(connectionParameters); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/text/TextProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.text; 17 | 18 | import scriptella.spi.ProviderException; 19 | 20 | /** 21 | * Thrown to indicate a problem with Text file processing. 22 | * 23 | * @author Fyodor Kupolov 24 | * @version 1.0 25 | */ 26 | public class TextProviderException extends ProviderException { 27 | public TextProviderException() { 28 | } 29 | 30 | public TextProviderException(String message) { 31 | super(message); 32 | } 33 | 34 | public TextProviderException(String message, Throwable cause) { 35 | super(message, cause); 36 | } 37 | 38 | public TextProviderException(Throwable cause) { 39 | super(cause); 40 | } 41 | 42 | public String getProviderName() { 43 | return Driver.DIALECT.getName(); 44 | } 45 | 46 | 47 | } 48 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/velocity/VelocityProviderException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.velocity; 17 | 18 | import scriptella.spi.ProviderException; 19 | 20 | /** 21 | * Thrown by Velocity Provider to indicate velocity failure. 22 | */ 23 | public class VelocityProviderException extends ProviderException { 24 | public VelocityProviderException() { 25 | } 26 | 27 | public VelocityProviderException(String message) { 28 | super(message); 29 | } 30 | 31 | public VelocityProviderException(String message, Throwable cause) { 32 | super(message, cause); 33 | } 34 | 35 | public VelocityProviderException(Throwable cause) { 36 | super(cause); 37 | } 38 | 39 | public String getProviderName() { 40 | return Driver.DIALECT.getName(); 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/xls/Driver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.xls; 17 | 18 | import scriptella.jdbc.GenericDriver; 19 | 20 | /** 21 | * Scriptella Adapter for SQLScheet. 22 | * 23 | *
For configuration details and examples see overview page. 24 | * 25 | * @author Kirill Volgin 26 | * @version 1.0 27 | */ 28 | public class Driver extends GenericDriver { 29 | public static final String XLS_DRIVER_NAME = "net.pcal.sqlsheet.XlsDriver"; 30 | 31 | 32 | public Driver() { 33 | loadDrivers(XLS_DRIVER_NAME); 34 | } 35 | 36 | } -------------------------------------------------------------------------------- /drivers/src/java/scriptella/driver/xpath/Driver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2006-2012 The Scriptella Project Team. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package scriptella.driver.xpath; 17 | 18 | import scriptella.spi.AbstractScriptellaDriver; 19 | import scriptella.spi.Connection; 20 | import scriptella.spi.ConnectionParameters; 21 | import scriptella.spi.DialectIdentifier; 22 | 23 | /** 24 | * Represents a driver for querying XML files with XPath expressions. 25 | *
For configuration details and examples see overview page.
26 | *
27 | * @author Fyodor Kupolov
28 | * @version 1.0
29 | */
30 | public class Driver extends AbstractScriptellaDriver {
31 | static final DialectIdentifier DIALECT = new DialectIdentifier("XPath", "1.0");
32 |
33 | public Connection connect(ConnectionParameters connectionParameters) {
34 | return new XPathConnection(connectionParameters);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/drivers/src/java/scriptella/driver/xpath/XPathProviderException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2006-2012 The Scriptella Project Team.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package scriptella.driver.xpath;
17 |
18 | import scriptella.spi.ProviderException;
19 |
20 | /**
21 | * Thrown to indicate a problem with XML file querying.
22 | *
23 | * @author Fyodor Kupolov
24 | * @version 1.0
25 | */
26 | public class XPathProviderException extends ProviderException {
27 | public XPathProviderException() {
28 | }
29 |
30 | public XPathProviderException(String message) {
31 | super(message);
32 | }
33 |
34 | public XPathProviderException(String message, Throwable cause) {
35 | super(message, cause);
36 | }
37 |
38 | public XPathProviderException(Throwable cause) {
39 | super(cause);
40 | }
41 |
42 | public String getProviderName() {
43 | return Driver.DIALECT.getName();
44 | }
45 |
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/drivers/src/test/scriptella/driver/alljdbc/AllJDBCDriversTest.xml:
--------------------------------------------------------------------------------
1 |
2 |
Column1 | Column2 | 7 |
---|---|
1 | 2 | 10 |
3 | 4 | 13 |
![]() |
7 | Generated by scriptella ETL using Velocity, JEXL and HSQLDB. | 8 |