Git Product home page Git Product logo

marklogic-spring-batch's Introduction

GitHub version

Branch Status
master master
dev dev

MarkLogic Spring Batch

The MarkLogic Spring Batch project is an extension of the CORE and INFRASTRUCTURE components of Spring Batch to make it easier to write batch processing programs using MarkLogic.

Start with the project home page to get started.

Prerequisites

  • MarkLogic 8+
  • JDK 1.8+

Installing the Test Environment

Open $PROJECT_ROOT/gradle.properties. Review the mlHost, mlRestPort, mlJobRepoPort properties to confirm there are no conflicts

gradlew mlDeploy

This command will set up your test database and application server.

Running the tests

Review the host/port/user credentials properties for the following property files.

  • ./core/src/test/resources/job.properties
  • ./infrastructure/src/test/resources/job.properties
  • ./rdf/src/test/resources/job.properties
  • ./samples/src/test/resources/job.properties

Run the following command to execute all project tests. All tests should pass.

 gradlew test

Coding Style Tests

This project uses both checkstyle and PMD.

 gradlew check

Deployment

The product of this project are jar files that are published to bintray. The following libraries are created.

Group Artifact
com.marklogic marklogic-spring-batch-core
com.marklogic marklogic-spring-batch-test
com.marklogic spring-batch-http
com.marklogic spring-batch-rdbms
com.marklogic spring-batch-file

The gradle bintray plugin is used to publish to bintray.

 gradlew :core:bintrayUpload
 gradlew :file:bintrayUpload
 gradlew :test:bintrayUpload
 gradlew :http:bintrayUpload
 gradlew :rdbms:bintrayUpload

How do I use these libraries?

Gradle

dependencies {
    compile 'com.marklogic:marklogic-spring-batch-core:1.+'
    testCompile 'com.marklogic:marklogic-spring-batch-test:1.+'
}

Maven

<dependencies>
    <dependency>
        <groupId>com.marklogic</groupId>
        <artifactId>marklogic-spring-batch-core</artifactId>
        <version>1.5.0</version>
    </dependency>
</dependencies>

How can I contribute to the project?

Please read CONTRIBUTING.md for details on how to contribute code to this project and the process for submitting pull requests to us.

What license does MarkLogic Spring Batch use?

See the LICENSE.md file for details

marklogic-spring-batch's People

Contributors

audarth avatar chunyuwilson avatar fsnow avatar gmarintes avatar mchiarelli avatar paxtonhare avatar rjrudin avatar sanjuthomas avatar sastafford avatar venuiyengar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

marklogic-spring-batch's Issues

Load ML config and modules from test directory

As an MSB user
I want to TITLE
So that it's clear that the ml-config and ml-modules are used for testing and are not part of the distributable library

  • ml-config can be moved to src/test/ml-config - just set "mlConfigDir" to "src/test/ml-config" in gradle.properties

  • ml-modules can be moved to src/test/ml-modules. To tell ml-gradle to find modules there, just add the following to build.gradle (I'm adding a ticket to ml-app-deployer to allow this to be defined via a property):

    ext { mlAppConfig { modulePaths = ["src/test/ml-modules"] } }

Provide configurable way of adding triples to documents during SQL migration

In the MySQL Sakila dataset, there are a number of associations that could benefit from triples linking documents together as opposed to just having elements that refer to the ID of another document. For example, actors and films are related to each other.

It would be very convenient if there was a way to configure when triples should be added when using the SqlMigrator tool. I don't think there's a way to do that nicely via the SQL query, so it would be another parameter to the migrate method.

Unable to read REST configuration from file: src\main\ml-modules\rest-properties.json

I get the following error when I call 'gradle mlDeploy' with the following gradle.properties:

# Publishing configuration
name=data-migrator
group=com.marklogic
version=0.1

# Configuration for the test app
mlHost=localhost
mlAppName=spring-batch
mlRestPort=8200
mlTestRestPort=8201
mlUsername=admin
mlPassword=admin
mlRestAdminUsername=admin
mlRestAdminPassword=admin
mlManageUsername=admin
mlManagePassword=admin
mlAdminUsername=admin
mlAdminPassword=admin
mlContentForestsPerHost=1
14:25:33.447 [DEBUG] [com.marklogic.client.modulesloader.impl.PropertiesModuleManager] Loading properties from: E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\build\ml-last-configured-timestamps.properties
14:25:33.454 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Writing REST server configuration
14:25:33.454 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Default document read transform: null
14:25:33.454 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Transform all documents on read: false
14:25:33.454 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Validate query options: true
14:25:33.454 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Validate queries: true
14:25:33.455 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Output debugging: true
14:25:33.455 [INFO] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Update policy: VERSION_OPTIONAL
14:25:33.455 [INFO] [com.marklogic.client.impl.ServerConfigurationManagerImpl] Writing server configuration
14:25:33.456 [DEBUG] [com.marklogic.client.impl.JerseyServices] Putting config/properties/null
14:25:33.513 [DEBUG] [org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Get connection: {}->http://localhost:8200, timeout = 0
14:25:33.513 [DEBUG] [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] [{}->http://localhost:8200] total kept alive: 0, total issued: 0, total allocated: 0 out of 200
14:25:33.513 [DEBUG] [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] No free connections [{}->http://localhost:8200][null]
14:25:33.513 [DEBUG] [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] Available capacity: 100 out of 100 [{}->http://localhost:8200][null]
14:25:33.513 [DEBUG] [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] Creating new connection [{}->http://localhost:8200]
14:25:33.544 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnectionOperator] Connecting to localhost:8200
14:25:34.560 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnectionOperator] Connect to localhost:8200 timed out. Connection will be retried using another IP address
14:25:34.560 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnectionOperator] Connecting to localhost:8200
14:25:35.575 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Connection org.apache.http.impl.conn.DefaultClientConnection@53d9af1 closed
14:25:35.575 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Connection org.apache.http.impl.conn.DefaultClientConnection@53d9af1 shut down
14:25:35.575 [DEBUG] [org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Released connection is not reusable.
14:25:35.575 [DEBUG] [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] Releasing connection [{}->http://localhost:8200][null]
14:25:35.575 [DEBUG] [org.apache.http.impl.conn.DefaultClientConnection] Connection org.apache.http.impl.conn.DefaultClientConnection@53d9af1 closed
14:25:35.575 [DEBUG] [org.apache.http.impl.conn.tsccm.ConnPoolByRoute] Notifying no-one, there are no waiting threads
14:25:35.575 [INFO] [com.marklogic.client.impl.DatabaseClientImpl] Releasing connection
14:25:35.575 [DEBUG] [com.marklogic.client.impl.JerseyServices] Releasing connection
14:25:35.575 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':mlDeployApp'
14:25:35.575 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :mlDeployApp FAILED
14:25:35.575 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :mlDeployApp (Thread[main,5,main]) completed. Took 20.143 secs.
14:25:35.575 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 20.205 secs, idle: 0.0 secs
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter]
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter]
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':mlDeployApp'.
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter] > Unable to read REST configuration from file: E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\src\main\ml-modules\rest-properties.json
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter]
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter] * Try:
14:25:35.591 [ERROR] [org.gradle.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.
14:25:35.591 [LIFECYCLE] [org.gradle.BuildResultLogger]
14:25:35.591 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
14:25:35.591 [LIFECYCLE] [org.gradle.BuildResultLogger]
14:25:35.591 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 28.831 secs
14:25:35.622 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Cache task history cache (E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\.gradle\2.12\taskArtifacts) was closed 0 times.
14:25:35.622 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on cp_proj class cache for build file 'E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\build.gradle' (C:\Users\Sam\.gradle\caches\2.12\scripts\build_b0a1q6p13n5dqo2n98dhbvce3\cp_proj).
14:25:35.622 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on proj class cache for build file 'E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\build.gradle' (C:\Users\Sam\.gradle\caches\2.12\scripts\build_b0a1q6p13n5dqo2n98dhbvce3\proj).
14:25:35.622 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.memcache.InMemoryCachedRepositoryFactory] In-memory dependency metadata cache closed. Repos cached: 1, cache instances: 1, modules served from cache: 0, artifacts: 0
14:25:35.622 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.CachedStoreFactory] Resolution result cache closed. Cache reads: 0, disk reads: 0 (avg: 0.0 secs, total: 0.0 secs)
14:25:35.622 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.CachedStoreFactory] Resolution result cache closed. Cache reads: 0, disk reads: 0 (avg: 0.0 secs, total: 0.0 secs)
14:25:35.622 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.ResolutionResultsStoreFactory] Deleted 2 resolution results binary files in 0.0 secs
14:25:35.622 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Closing cache module-metadata.bin (C:\Users\Sam\.gradle\caches\modules-2\metadata-2.16\module-metadata.bin)
14:25:35.622 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Closing cache artifact-at-repository.bin (C:\Users\Sam\.gradle\caches\modules-2\metadata-2.16\artifact-at-repository.bin)
14:25:35.622 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on artifact cache (C:\Users\Sam\.gradle\caches\modules-2).
14:25:35.638 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Closing cache plugin-use-metadata.bin (C:\Users\Sam\.gradle\caches\2.12\plugin-resolution\plugin-use-metadata.bin)
14:25:35.638 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on Plugin Resolution Cache (C:\Users\Sam\.gradle\caches\2.12\plugin-resolution).
14:25:35.638 [DEBUG] [org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonManager] Stopping 0 compiler daemon(s).
14:25:35.638 [INFO] [org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonManager] Stopped 0 compiler daemon(s).

I can see that I have the file in question:

$ ls src/main/ml-modules/ -al
total 1
drwxrwx---+ 1 Sam None   0 May 18 14:26 .
drwxrwx---+ 1 Sam None   0 May 18 13:33 ..
drwxrwx---+ 1 Sam None   0 May 18 13:33 ext
-rwxrwx---+ 1 Sam None 157 May 18 13:33 rest-properties.json

Create MarkLogic DAO objects

I noticed a few DAO interfaces in the Spring Batch core repository source code. If I implement these, then I can run the SimpleJobRepository instead of a custom one.

Simplify ml-config for testing

I recommend just using admin/admin for everything for deploying the test application and running the tests. You can use other users to verify certain things in a test, but otherwise, I don't think there's any harm in using admin for deploying the app and being the default user for tests.

So "simplify" means:

  1. In gradle.properties, only define mlUsername and mlPassword. Let the admin user take care of everything - using the Manage API and using the REST API to load modules.
  2. Drop every role/user except for ones that are used for specific tests - i.e. to verify that a certain capability in marklogic-spring-batch requires a certain role/privilege.
  3. I'd drop rest-api.json, it's only needed if you need to override something in it. Otherwise, ml-gradle will generate a vanilla one for you on the fly.
  4. Do you need the protected-collection - is it a requirement that marklogic-spring-batch depends on a protected-collection?

Ingest RDBMS data into MarkLogic via Hibernate

Given the familiarity most Java developers have with Hibernate it's likely that they would feel more comfortable using it as part of a MarkLogic data import strategy. If feasible, it's likely there would be a trade off in the form of ease of use for operational efficiency. However, it's also likely that in certain situations this would be acceptable.

This issue serves as a marker for investigating Hibernate's feasibility as part of a MarkLogic data import strategy with ml-spring-batch.

Should we use the following package naming construct?

I was reviewing how Spring Batch names their packages. All ItemReader and ItemWriters are located under the following package

org.springframework.batch.item

ItemReader and ItemWriters are going to be the reusable piece parts that people will use to construct Steps and Jobs. I propose that we rearrange our current ItemReaders and ItemWriters into the following package.

org.springframework.batch.item.marklogic

I also recommend that we rename the following classes and put into this package.

  • CorbReader -> UriItemReader
  • CorbWriter -> ProcessUriWriter
  • DeleteUriWriter -> DeleteUriItemWriter
  • CollectionUrisReader -> CollectionUriItemReader
  • DocumentItemWriter
  • DocumentItemReader

Load XML files from filesystem into MarkLogic

This MarkLogic batch process will mimic the Loading Documents from a Directory features of MarkLogic Content Pump.

Scenario 1

Given a single file in a directory
When I run the LoadDocsFromDirectory Job
Then the file is loaded into MarkLogic

Scenario 2

Given multiple files within a directory

Scenario 3

Given multiple files within a directory
When I specify a file filter
Then only the filtered files are loaded into MarkLogic

Generalize how data is read from two joined tables

I'd like to take the UserWriter and try to generalize it into something that will work for any set of two tables that have a parent/child relationship, where the children should all be merged into the parent document. This will also have a default way of generating XML (and later, JSON) based on the columns in a table so that there's no need to create e.g. a User object.

The data I'll use for this will be an in-memory HSQL database with a User table and an Address table, with a one-to-many between User and Address.

Spring JDBC has a ColumnMapRowMapper that converts a SQL row into a Map<String, Object>. I think we can have a "ColumnMapItemWriter" that extends AbstractDocumentWriter (which provides some general support for writing documents to ML) and provides at least the following features:

  1. Assumes the first key (they're linked by ColumnMapRowMapper, it uses a LinkedCaseInsensitiveMap) is the ID column, but provide a property to override this
  2. Group records by ID before writing to the database. This will require some logic that looks at all the column values and assumes that any values that differ should go into a parent element with multiple child elements - e.g. when joining a user row with many address rows, the address city/state/etc columns will differ across rows, but the user ID/name/email columns will not differ.
  3. Provide a strategy interface for customizing how XML element names are generated from SQL columns.

In a future ticket, we can provide the ability to transform the XML that's first generated into the precise XML that a developer wants to load into ML.

Exporting Documents as Files

Use case is - customer wants to specify a search query, and any document that matches it should be written to a directory or to a zip file. And while this is happening, the customer wants status on the job - which Spring Batch should be able to provide very easily.

Ingest shapefiles into MarkLogic

As a developer
I want to TITLE
So that I can run geoqueries on ESRI shapefiles

  1. ItemReader - read shapefiles from a directory
  2. ItemProcessor - bounce them against either the Ogre web service or the Ogre command line
  3. ItemWriter - write them to MarkLogic as GeoJSON files (either JSON or XML).

JobExecution Idea
That could be packaged up as a single executable JAR via Spring Boot, and versioned too.
Now someone could download a single JAR and run it to quickly ingest shapefiles into ML:
java -jar marklogic-shapefile-ingestor.jar ~/my-shapefiles

Load triples

As a developer
I want to TITLE
So that I can create a Spring Batch job that will read in triples and ingest the data into MarkLogic

Given a single file containing triples in Turtle format
When the job is executed with the following parameters

  • input_file_path = directory that contains the file
  • input_file_type = rdf
    Then the triples are ingested into MarkLogic

Guidance

  • Assume the triples are in turtle format in a single text file
  • Don't worry about performance at this point, just get the data in and ingested
  • No-op your ItemProcessor, no need to transform

This is a project that might provide some assistance.
https://github.com/marklogic/marklogic-jena

You may need to create a different type of ItemWriter.

Use ml-gradle to stand up test app

I noticed the config defaults to faa/8100. Would be nice to have a simple ml-gradle setup to stand up a basic REST API server with the corb modules loaded.

Unable to insert content at URI: /ext/corb/process.xqy; cause: Need privilege

I got the following error when I attempted 'gradle mlDeploy' with gradle.properties mlRestAdminUsername=rest-admin

I was able to resolve this by using the admin user.

13:41:59.925 [INFO] [com.sun.jersey.spi.service.ServiceFinder] Running in a non-OSGi environment
13:41:59.941 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface com.sun.jersey.client.proxy.ViewProxyProvider
13:41:59.941 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface com.sun.jersey.spi.inject.InjectableProvider
13:41:59.972 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.multipart.impl.MultiPartConfigProvider
13:41:59.972 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.SAXParserContextProvider
13:41:59.972 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.XMLStreamReaderContextProvider
13:41:59.972 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.DocumentBuilderFactoryProvider
13:41:59.972 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.TransformerFactoryProvider
13:42:00.019 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface javax.ws.rs.ext.MessageBodyReader
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.multipart.impl.MultiPartReaderClientSide
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.StringProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FileProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.InputStreamProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DataSourceProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$Text
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ReaderProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DocumentProvider
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$App
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$Text
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
13:42:00.066 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.EntityHolderReader
13:42:00.144 [INFO] [com.sun.jersey.core.spi.component.ProviderFactory] A dependent class, javax/mail/MessagingException, of the component class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider is not found. The component is ignored.
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface javax.ws.rs.ext.MessageBodyWriter
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.multipart.impl.MultiPartWriter
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.StringProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FileProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.InputStreamProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DataSourceProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$Text
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ReaderProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DocumentProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider
13:42:00.253 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
13:42:00.269 [INFO] [com.sun.jersey.core.spi.component.ProviderFactory] A dependent class, javax/mail/MessagingException, of the component class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider is not found. The component is ignored.
13:42:00.316 [INFO] [com.marklogic.appdeployer.command.schemas.LoadSchemasCommand] Loading schemas database data from path: src/main/ml-schemas
13:42:00.347 [INFO] [com.marklogic.client.impl.DatabaseClientImpl] Releasing connection
13:42:00.347 [DEBUG] [com.marklogic.client.impl.JerseyServices] Releasing connection
13:42:00.347 [INFO] [com.marklogic.appdeployer.impl.SimpleAppDeployer] Finished executing command [com.marklogic.appdeployer.command.schemas.LoadSchemasCommand]

13:42:00.347 [INFO] [com.marklogic.appdeployer.impl.SimpleAppDeployer] Executing command [com.marklogic.appdeployer.command.modules.LoadModulesCommand] with sort order [400]
13:42:00.347 [DEBUG] [com.marklogic.client.DatabaseClientFactory] Creating new database client for server at localhost:8200
13:42:00.347 [DEBUG] [com.marklogic.client.impl.JerseyServices] Connecting to localhost at 8200 as rest-admin
13:42:00.347 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface com.sun.jersey.client.proxy.ViewProxyProvider
13:42:00.347 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface com.sun.jersey.spi.inject.InjectableProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.multipart.impl.MultiPartConfigProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.SAXParserContextProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.XMLStreamReaderContextProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.DocumentBuilderFactoryProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.xml.TransformerFactoryProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface javax.ws.rs.ext.MessageBodyReader
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.multipart.impl.MultiPartReaderClientSide
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.StringProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FileProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.InputStreamProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DataSourceProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$Text
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ReaderProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DocumentProvider
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$App
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$Text
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
13:42:00.363 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.EntityHolderReader
13:42:00.441 [DEBUG] [org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager] Shutting down
13:42:00.441 [INFO] [com.marklogic.client.impl.DatabaseClientImpl] Releasing connection
13:42:00.456 [INFO] [com.sun.jersey.core.spi.component.ProviderFactory] A dependent class, javax/mail/MessagingException, of the component class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider is not found. The component is ignored.
13:42:00.535 [INFO] [com.sun.jersey.core.spi.component.ProviderServices] Searching for providers that implement: interface javax.ws.rs.ext.MessageBodyWriter
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.multipart.impl.MultiPartWriter
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.StringProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FileProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.InputStreamProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DataSourceProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.FormMultivaluedMapProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$Text
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$App
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$Text
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$App
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$Text
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.ReaderProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.DocumentProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.StreamingOutputProvider
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderServices]     Provider found: class com.sun.jersey.core.impl.provider.entity.SourceProvider$SourceWriter
13:42:00.550 [INFO] [com.sun.jersey.core.spi.component.ProviderFactory] A dependent class, javax/mail/MessagingException, of the component class com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider is not found. The component is ignored.
13:42:00.566 [INFO] [com.marklogic.appdeployer.command.modules.LoadModulesCommand] Loading asset modules from dir: src/main/ml-modules
13:42:00.566 [DEBUG] [com.marklogic.client.modulesloader.impl.DefaultModulesLoader] Loading modules from base directory: E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\src\main\ml-modules
13:42:00.566 [DEBUG] [com.marklogic.client.modulesloader.impl.XccAssetLoader] Initializing XCC session; host: localhost; username: rest-admin; database name: spring-batch-modules
13:42:00.581 [DEBUG] [com.marklogic.xcc.spi.ConnectionProvider] constructing new SocketPoolProvider
13:42:00.597 [DEBUG] [com.marklogic.client.modulesloader.impl.XccAssetLoader] Loading assets from path: E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\src\main\ml-modules\ext
13:42:00.613 [DEBUG] [com.marklogic.client.modulesloader.impl.XccAssetLoader] Visiting directory: E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\src\main\ml-modules\ext
13:42:00.613 [DEBUG] [com.marklogic.client.modulesloader.impl.XccAssetLoader] Visiting directory: E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\src\main\ml-modules\ext\corb
13:42:00.628 [INFO] [com.marklogic.client.modulesloader.impl.XccAssetLoader] Inserting module with URI: /ext/corb/process.xqy
13:42:00.800 [DEBUG] [com.marklogic.client.modulesloader.impl.XccAssetLoader] Closing XCC session
13:42:00.800 [INFO] [com.marklogic.client.impl.DatabaseClientImpl] Releasing connection
13:42:00.800 [DEBUG] [com.marklogic.client.impl.JerseyServices] Releasing connection
13:42:00.800 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':mlDeployApp'
13:42:00.800 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :mlDeployApp FAILED
13:42:00.816 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :mlDeployApp (Thread[main,5,main]) completed. Took 17.04 secs.
13:42:00.816 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 17.118 secs, idle: 0.0 secs
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter]
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception.
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter]
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':mlDeployApp'.
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter] > Unable to insert content at URI: /ext/corb/process.xqy; cause: Need privilege
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter]
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter] * Try:
13:42:00.816 [ERROR] [org.gradle.BuildExceptionReporter] Run with --stacktrace option to get the stack trace.
13:42:00.816 [LIFECYCLE] [org.gradle.BuildResultLogger]
13:42:00.816 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
13:42:00.816 [LIFECYCLE] [org.gradle.BuildResultLogger]
13:42:00.816 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 27.083 secs
13:42:00.831 [DEBUG] [org.gradle.cache.internal.DefaultCacheAccess] Cache task history cache (E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\.gradle\2.12\taskArtifacts) was closed 0 times.
13:42:00.847 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on cp_proj class cache for build file 'E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\build.gradle' (C:\Users\Sam\.gradle\caches\2.12\scripts\build_b0a1q6p13n5dqo2n98dhbvce3\cp_proj).
13:42:00.847 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on proj class cache for build file 'E:\installs\marklogic\marklogic-spring-batch-0.2.4-alpha\build.gradle' (C:\Users\Sam\.gradle\caches\2.12\scripts\build_b0a1q6p13n5dqo2n98dhbvce3\proj).
13:42:00.847 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Closing cache module-metadata.bin (C:\Users\Sam\.gradle\caches\modules-2\metadata-2.16\module-metadata.bin)
13:42:00.847 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Closing cache artifact-at-repository.bin (C:\Users\Sam\.gradle\caches\modules-2\metadata-2.16\artifact-at-repository.bin)
13:42:00.847 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on artifact cache (C:\Users\Sam\.gradle\caches\modules-2).
13:42:00.863 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.memcache.InMemoryCachedRepositoryFactory] In-memory dependency metadata cache closed. Repos cached: 1, cache instances: 1, modules served from cache: 0, artifacts: 0
13:42:00.863 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.CachedStoreFactory] Resolution result cache closed. Cache reads: 0, disk reads: 0 (avg: 0.0 secs, total: 0.0 secs)
13:42:00.863 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.CachedStoreFactory] Resolution result cache closed. Cache reads: 0, disk reads: 0 (avg: 0.0 secs, total: 0.0 secs)
13:42:00.863 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.store.ResolutionResultsStoreFactory] Deleted 2 resolution results binary files in 0.0 secs
13:42:00.863 [DEBUG] [org.gradle.cache.internal.btree.BTreePersistentIndexedCache] Closing cache plugin-use-metadata.bin (C:\Users\Sam\.gradle\caches\2.12\plugin-resolution\plugin-use-metadata.bin)
13:42:00.863 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on Plugin Resolution Cache (C:\Users\Sam\.gradle\caches\2.12\plugin-resolution).
13:42:00.878 [DEBUG] [org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonManager] Stopping 0 compiler daemon(s).
13:42:00.878 [INFO] [org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonManager] Stopped 0 compiler daemon(s).

Create command line MSB application launcher

As a user
I want to TITLE
So that I can launch a Spring Batch job from the command line

Initially let's support a unix only command line utility. The name of the script should be msb.sh

The first accepted parameter would be the name of the job. This would load the appropriate job spring configuration and run the specified job with parameters.

Here are a couple of examples
msb -job corb -username admin -password admin -host localhost -port 8100 -uris /ext/uris.xqy -transform /ext/transform.xqy

msb -job loadFiles ... -input_file_path /tmp/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.