Refactor to clean up packages in the t-model and to introduce a simpler to implement t-engine base.
The new t-engines (tika, imagemagick, libreoffice, pdfrenderer, misc, aio, aspose) and t-router may be used in combination with older components as the API between the content Repo and between components has not changed. As far as possible the same artifacts are created (the -boot projects no longer exist). They may be used with older ACS repo versions.
The main changes to look for are:
* The introduction of TransformEngine and CustomTransformer interfaces to be implemented.
* The removal in t-engines and t-router of the Controller, Application, test template page, Controller tests and application config, as this is all now done by the t-engine base package.
* The t-router now extends the t-engine base, which also reduced the amount of duplicate code.
* The t-engine base provides the test page, which includes drop downs of known transform options. The t-router is able to use pipeline and failover transformers. This was not possible to do previously as the router had no test UI.
* Resources including licenses are automatically included in the all-in-one t-engine, from the individual t-engines. They just need to be added as dependencies in the pom.
* The ugly code in the all-in-one t-engine and misc t-engine to pick transformers has gone, as they are now just selected by the transformRegistry.
* The way t-engines respond to http or message queue transform requests has been combined (eliminates the similar but different code that existed before).
* The t-engine base now uses InputStream and OutputStream rather than Files by default. As a result it will be simpler to avoid writing content to a temporary location.
* A number of the Tika and Misc CustomTransforms no longer use Files.
* The original t-engine base still exists so customers can continue to create custom t-engines the way they have done previously. the project has just been moved into a folder called deprecated.
* The folder structure has changed. The long "alfresco-transform-..." names have given way to shorter easier to read and type names.
* The t-engine project structure now has a single project rather than two.
* The previous config values still exist, but there are now a new set for config values for in files with names that don't misleadingly imply they only contain pipeline of routing information.
* The concept of 'routing' has much less emphasis in class names as the code just uses the transformRegistry.
* TransformerConfig may now be read as json or yaml. The restrictions about what could be specified in yaml has gone.
* T-engines and t-router may use transform config from files. Previously it was just the t-router.
* The POC code to do with graphs of possible routes has been removed.
* All master branch changes have been merged in.
* The concept of a single transform request which results in multiple responses (e.g. images from a video) has been added to the core processing of requests in the t-engine base.
* Many SonarCloud linter fixes.
* Merge alfresco-transform-model project into alfresco-transform-core - WITHOUT the git history
* Simplify Maven dependencies and build project
* Unify release process of combined t-model and t-core
The bulk of the changes in this PR are to do with adding a coreVersion element to the transform element in the T-Engine config. For more detail see the class header of CoreVersionDecorator.
* Support the use of coreVersion so that it is possible to upgrade pods in any order
* Moved the majority of the RequestParamMap static finals to alfresco-transform-model and added a new one: "includeCoreVersion" parameter.
* ACS-2499 Delete company release build stage.
This never uploaded any software, and so was not particularly useful. The software and license report should be
uploaded to S3 as part of the transform-service build.
Also skip uploading anything to staging bucket.
- use QUAY_USERNAME (set to "alfresco+travis_ci")
- (instead of old hard-coded "alfresco+bamboo" robot account that no longer exists)
- update settings.xml to use env vars for usernames (consistent with other projects)
* ATS-718: Tweak Veracode SAST to only upload & scan delivered artefacts
- ie. only upload runnable jars (Spring Boot apps) x6 (= x1 AIO core T-Engine + x5 individual core T-Engines)
- see also ATS-711 / ATS-696 / ATS-468
* ATS-718: Tweak Veracode SAST to only run scan on master for now
- also logged ATS-721
* ATS-695/ATS-675 Add aio boot project
- Added the bare bones of a spring boot project to be used by aio. Currently based loosely on transform-misc.
* ATS-674/ATS-695 Add forms for each transformer.
* ATS-675/ATS-695 add empty test to pass build during dev
* ATS-695 remove maven profile to fix build
* ATS-675 Define interface and the aio transformer
* Fix formatting and rename the module as per review comments
* ATS-675/ATS-695 Add ProbeTestTransformation
Currenly uses MiscController implementation.
* ATS-675/ATS-695 Add logger method,
This will be code repeated in the local transform method and the processTransform method
* ATS-675/ATS-695 Implement local transform method
Minimum implementation for transform method.
* ATS-675/ATS-695 Implement processTransform
* ATS-675/ATS-695 Rename project to alfresco-transform-core-aio-boot
Add alfresco-transform-core-aio dependencies
* ATS-675/ATS-695 Fix build
Update project location
Update imports and variable declarations in TODOs
Add error handling.
Formatting.
* ATS-693: Update transform-misc Dockerfile with newly reserved uid
* Revert "ATS-691: Combine the win/linux pathToFile logic"
This reverts commit 61fe4820
* ATS-693: Update transform-misc Dockerfile with newly reserved uid
* "ATS-693: Add Dockerfile to aio-boot module"
* ATS-675/ATS-695 Add resource required for ProbeTestTrasform
* ATS-675/ATS-695 Remove test resources, to be added in test implementation
* ATS-693: Fix path to jar resources
* ATS-675/ATS-703 Moved Options builder to non boot jar.
* ATS-675/ATS-703 Rename OptionsBuilder to PdfRendererOptionsBuilder
This is to avoid confilct with OptionsBuilders in other T-engines.
* ATS-675/ATS-695 Added PdfRendererApadpter.java
Added dependency to pom.xml
Required transformation of String to Long, method added to Util.java
* ATS-675/ ATS-704
Implemented LibreOfficeAdapter
* ATS-675 Parity with base aio naming convention
* ATS-675/ATS-705 Implemented ImageMagickAdapter
Moved and renamed OptionsBuilder. Moved to alfresco-transform-imagemagick, renamed ImageMagickOptionsBuilder.
Added dependencies to pom.xml
* ATS-693: Implement maven docker build
* Initial tests
* Add initial tests for config aggregation
* Update AbstractTransformerControllerTest to use the new engine config names
* Fix up controller
* Fix travis tests (#205)
* Fix engine specific properties for engine config location
* Temporarily add engine configs to test resources for the boot modules. Will need to fix this properly
* Resolve some review comments
* ATS-675 - Move static strings to util class
* Refactor classes for simpler design (#210)
* ATS-702 Fix error handling
(cherry picked from commit e30cb5fda6ba2ae09c91ef61e69cba4689bcc8d9)
* ATS-675 Rename test class (fixes typo)
* ATS-675: Add aio transformer to static scan
Each transform engine project has been separated into 2 modules so that an executable and non-executable jar can be created.
Modules have been renamed such that *docker* has been removed from the artifactIds and project names.
Co-authored-by: Erik Knizat <erik.knizat@alfresco.com>
Co-authored-by: David Edwards <david.edwards@alfresco.com>
- add SCA & SAST
- use wildcards to reference jars' locations - a single static scan will be triggered
- use sandbox based on git branch
- use maven plugin for source clear scans
- filter logs
- update settings.xml with missing servers
- remove *install* phase from *company_release* jobs
- use regex for matching support branches
- update deploy tasks
- fix multiple Misc Transformer bugs related to file mimeTypes
- remove usage of 'source/targetMimetype' as transform options/parameters
- add 'source/targetMimetype' arguments to the 'processTransform' method
- remove unnecessary code (e.g. useless overridden methods)
- add quick* test resource files
- add integration test for 'Local Transformations' on the Misc engine
- set up Integration Tests POM configuration for all T-Engine modules
* ATS-400 : Build improvements for TravisCI
Building the LibreOffice docker image takes a long time due to the
large packages that need to be downloaded and installed. This results
in more than 10 minutes of inactivity in the build log and TravisCI
kills the job.
Improvements:
- remove and replace unnecessary steps in Docker builds
- cache LibreOffice GZIP distribution in Travis
* ATS-421 : ATS-400: Create Travis build for "alfresco-transform-core"
- rename mvn profile from 'enterpriseDocker' to 'local'
- add config to publish docker image on both Quay and Docker
- remove unused 'master' profile - similar to ATS, publish images only from master branch and on Release
- update <distributionManagement> to publish artefacts to Nexus public (rather than Enterprise Releases)
- add travis build configs
- include SP branches to travis build
- add documentation on build&release process