Migrate Zip extension to Spring Integration Core
This commit is contained in:
3
spring-integration-zip/README.adoc
Normal file
3
spring-integration-zip/README.adoc
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
= Spring Integration for Zip Support
|
||||||
|
|
||||||
|
Starting with Spring Integration `6.1` this extension has been absorbed by the https://docs.spring.io/spring-integration/docs/current/reference/html/zip.html#zip[core project].
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
Spring Integration Zip Support
|
|
||||||
==============================
|
|
||||||
|
|
||||||
Build Status : [](https://build.spring.io/browse/INTEXT-ZIP)
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
This *Spring Integration Extension* provides [Zip][] (un-) compression support. The following components are provided:
|
|
||||||
|
|
||||||
* Zip Transformer
|
|
||||||
* UnZip Transformer
|
|
||||||
* UnZip Result Splitter
|
|
||||||
|
|
||||||
## ZIP Compression Support
|
|
||||||
|
|
||||||
The following input data types can be **compressed**:
|
|
||||||
|
|
||||||
* File
|
|
||||||
* String
|
|
||||||
* byte[]
|
|
||||||
* Iterable
|
|
||||||
|
|
||||||
In input data types can be mixed as part of an Iterable. E.g. you should be
|
|
||||||
easily able to compress a collection containing Strings, byte arrays and Files.
|
|
||||||
It is important to note that nested Iterables are *NOT SUPPORTED* at present time.
|
|
||||||
|
|
||||||
The zip transformer can be customized by setting several properties:
|
|
||||||
|
|
||||||
### compressionLevel
|
|
||||||
|
|
||||||
Sets the compression level. Default is `Deflater#DEFAULT_COMPRESSION`
|
|
||||||
|
|
||||||
### useFileAttributes
|
|
||||||
|
|
||||||
Specifies whether the name of the file shall be used for the zip entry.
|
|
||||||
|
|
||||||
## ZIP Un-compression Support
|
|
||||||
|
|
||||||
The following input data types can be **decompressed**:
|
|
||||||
|
|
||||||
* File
|
|
||||||
* InputStream
|
|
||||||
* byte[]
|
|
||||||
|
|
||||||
When unzipping data, you can also specify a property **expectSingleResult**. If set
|
|
||||||
to *true* and more than *1* zip entry were detected, a **MessagingException** will be raised.
|
|
||||||
This property also influences the return type of the payload. If set to *false* (the *default*),
|
|
||||||
then the payload will be of type *SortedMap*, if *true*, however, the actual zip
|
|
||||||
entry will be returned.
|
|
||||||
|
|
||||||
Othe properties that can be set on the UnZipTransformer:
|
|
||||||
|
|
||||||
### deleteFiles
|
|
||||||
|
|
||||||
If the payload is an instance of `File`, this property specifies whether to delete the File after transformation. Default is *false*.
|
|
||||||
|
|
||||||
### workDirectory
|
|
||||||
|
|
||||||
Set the work-directory. The work directory is used when the ZipResultType is set to ZipResultType.FILE.
|
|
||||||
By default this property is set to the System temporary directory containing a sub-directory "ziptransformer".
|
|
||||||
|
|
||||||
### ZipResultType
|
|
||||||
|
|
||||||
Defines the format of the data returned after transformation. Available options are:
|
|
||||||
|
|
||||||
* File
|
|
||||||
* byte[]
|
|
||||||
|
|
||||||
## UnZipResultSplitter
|
|
||||||
|
|
||||||
The `UnZipResultSplitter` is useful in cases where Zip files contain more than *1*
|
|
||||||
zip entry.
|
|
||||||
|
|
||||||
## Zipping and Unzipping Large Files
|
|
||||||
|
|
||||||
TBD
|
|
||||||
|
|
||||||
## Java Package Structure
|
|
||||||
|
|
||||||
### Base package
|
|
||||||
|
|
||||||
The base package `org.springframework.integration.zip` contains the *ZipHeaders* class which defines the *Spring Integration* message headers that are specific to the Zip module.
|
|
||||||
|
|
||||||
### config.xml
|
|
||||||
|
|
||||||
This package contains the parser classes for the XML Namespace support.
|
|
||||||
|
|
||||||
### transformer
|
|
||||||
|
|
||||||
Contain the classes responsible for the actual (un-) zip operation:
|
|
||||||
|
|
||||||
* ZipTransformer
|
|
||||||
* UnZipTransformer
|
|
||||||
|
|
||||||
## Namespace Support
|
|
||||||
|
|
||||||
Full XML namespace support is provided.
|
|
||||||
|
|
||||||
## Building the Project
|
|
||||||
|
|
||||||
To build and install jars into your local Maven cache, please execute:
|
|
||||||
|
|
||||||
./gradlew install
|
|
||||||
|
|
||||||
If you encounter out of memory errors during the build, increase available heap and permgen for Gradle:
|
|
||||||
|
|
||||||
GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m'
|
|
||||||
|
|
||||||
To build api Javadoc (results will be in `build/api`):
|
|
||||||
|
|
||||||
./gradlew api
|
|
||||||
|
|
||||||
To build complete distribution including `-dist` and `-schema` zip files (results will be in `build/distributions`)
|
|
||||||
|
|
||||||
./gradlew dist
|
|
||||||
|
|
||||||
# IDE Support
|
|
||||||
|
|
||||||
While your custom Spring Integration Adapter is initially created with SpringSource Tool Suite, you in fact end up with a Gradle-based project.
|
|
||||||
As such, the created project can be imported into other IDEs as well.
|
|
||||||
|
|
||||||
## Using Spring Tool Suite
|
|
||||||
|
|
||||||
Gradle projects can be directly imported into STS. But please make sure that you have the Gradle support installed.
|
|
||||||
|
|
||||||
## Using Plain Eclipse
|
|
||||||
|
|
||||||
To generate Eclipse metadata (*.classpath* and *.project* files), do the following:
|
|
||||||
|
|
||||||
./gradlew eclipse
|
|
||||||
|
|
||||||
Once complete, you may then import the project into Eclipse as usual:
|
|
||||||
|
|
||||||
*File -> Import -> Existing projects into workspace*
|
|
||||||
|
|
||||||
Browse to the root directory of the project and it should import free of errors.
|
|
||||||
|
|
||||||
## Using IntelliJ IDEA
|
|
||||||
|
|
||||||
To generate IDEA metadata (.iml and .ipr files), do the following:
|
|
||||||
|
|
||||||
./gradlew idea
|
|
||||||
|
|
||||||
# Further Resources
|
|
||||||
|
|
||||||
## Getting support
|
|
||||||
|
|
||||||
Check out the [spring-integration][spring-integration tag] tag on [Stack Overflow][].
|
|
||||||
|
|
||||||
## Related GitHub projects
|
|
||||||
|
|
||||||
* [Spring Integration][]
|
|
||||||
* [Spring Integration Samples][]
|
|
||||||
|
|
||||||
For more information, please also don't forget to visit the [Spring Integration][] website.
|
|
||||||
|
|
||||||
[Spring Integration]: https://github.com/spring-projects/spring-integration
|
|
||||||
[spring-integration tag]: https://stackoverflow.com/questions/tagged/spring-integration
|
|
||||||
[Spring Integration Samples]: https://github.com/spring-projects/spring-integration-samples
|
|
||||||
[Stack Overflow]: https://stackoverflow.com/faq
|
|
||||||
|
|
||||||
[Zip]: https://en.wikipedia.org/wiki/Zip_%28file_format%29
|
|
||||||
Reference in New Issue
Block a user